FTP、NFS以及SAMBA服务

一、FTP服务

1、Linux下ftp客户端管理工具

ftp、lftp都是Linux下ftp的客户端管理工具,但是需要独立安装

# yum install ftp lftp -y

☆ ftp工具

# ftp 10.1.1.10
Connected to 10.1.1.10 (10.1.1.10).
220 (vsFTPd 3.0.2)
Name (10.1.1.10:root): 输入FTP的账号
​
331 Please specify the password.
Password: 输入FTP账号对应的密码
​
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

求帮助:

ftp> ?或help
Commands may be abbreviated.  Commands are:
​
!               debug           mdir            sendport        site
$               dir             mget            put             size
account         disconnect      mkdir           pwd             status
append          exit            mls             quit            struct
ascii           form            mode            quote           system
bell            get             modtime         recv            sunique
binary          glob            mput            reget           tenex
bye             hash            newer           rstatus         tick
case            help            nmap            rhelp           trace
cd              idle            nlist           rename          type
cdup            image           ntrans          reset           user
chmod           lcd             open            restart         umask
close           ls              prompt          rmdir           verbose
cr              macdef          passive         runique         ?
delete          mdelete         proxy           send

第一个命令:ls命令

ftp> ls

查看当前连接的FTP目录下有哪些文件。

第二个命令(快捷键):Ctrl + Shift + L

Ctrl + Shift + L代表清屏命令

第三个命令:help命令

ftp> help put
put             send one file

第四个命令:put与get命令

ftp> put 本地文件路径+名称   上传
ftp> get 远程文件路径+名称   下载

第五个命令:批量上传或下载多个文件

ftp> mput 文件名称1 文件名称2 文件名称3 ...
ftp> mget 文件名称1 文件名称2 文件名称3 ...

第六个命令:prompt屏蔽批量输出信息

ftp> prompt
Interactive mode on.    => 开启提示
​
ftp> prompt
Interactive mode off.   => 关闭提示

第七个命令:quit命令

ftp> quit

☆ lftp工具:批量操作

# lftp 用户名称@远程IP地址
Password:用户名称对应的密码

求帮助:help

lftp> help

针对某个命令求帮助:help + 命令

lftp> help mirror

案例:批量上传(把shop文件夹上传到FTP服务器端)

lftp> mirror -R 本地文件夹名称

案例:批量下载(把整个FTP下载到本地)

lftp> mirror 远程FTP路径

2、FTP知识点补充

☆ FTP访问对象控制(黑名单)

ftpusers 黑名单

user_list 默认是黑名单(可以成为白名单)

案例:默认情况下,root账号是否允许登录FTP服务器

[root@localhost ftp]# ftp 10.1.1.10
Connected to 10.1.1.10 (10.1.1.10).
220 (vsFTPd 3.0.2)
Name (10.1.1.10:root): root
530 Permission denied.
Login failed.
ftp>
原因:root用户在黑名单里/etc/vsftpd/ftpusers黑名单中

案例:ftpusers 与 user_list黑名单效果不同点

ftpusers:
[root@localhost ftp]# ftp 10.1.1.10
Connected to 10.1.1.10 (10.1.1.10).
220 (vsFTPd 3.0.2)
Name (10.1.1.10:root): kefu
331 Please specify the password.
Password:
530 Login incorrect.            =>       ftpusers被禁用,可以输入密码,返回530
Login failed.
​
​
user_list:
[root@localhost ftp]# ftp 10.1.1.10
Connected to 10.1.1.10 (10.1.1.10).
220 (vsFTPd 3.0.2)
Name (10.1.1.10:root): kefu
530 Permission denied.
Login failed.
原因:默认情况下user_list文件也是黑名单,如果在该文件里直接拒绝,不给输入密码的机会。

案例:user_list可以从黑名单变成白名单(允许某个用户登录FTP系统服务器)

user_list要成为白名单,需要再配置文件里增加:
userlist_deny=NO
注意:如果user_list是白名单,那么必须在该文件里的用户才可以访问ftp服务。

总结:

  1. 用户在ftpusers文件中,那么用户不能访问ftp服务器

  2. 用户在user_list文件中,如果该文件是白名单,那么====在该文件中的用户可以访问ftp服务

  3. 如果user_list文件是白名单,用户即在ftpusers中又在user_list中,那么ftpusers拒绝优先

☆ FTP网络访问控制(限IP+限速)

FTP必须支持tcp_wrappers

/etc/hosts.allow 允许

/etc/hosts.deny 拒绝

☆ 限制IP地址

案例:如何禁止某个IP或IP网段

# vim /etc/hosts.deny
服务程序:主机
vsftpd:all                        全部拒绝
vsftpd:all EXCEPT 192.168.0.2    拒绝所有除了192.168.0.2  
vsftpd:192.168.0.254              拒绝单个IP地址
​
vsftpd:192.168.0.254:allow  
//以上是允许192.168.0.254访问,类似/etc/hosts.allow里增加vsftpd:192.168.0.254
​
vsftpd:192.168.0.0/255.255.255.0   拒绝某个网段
vsftpd:192.168.0.0/255.255.255.0 EXCEPT 192.168.0.254   拒绝某个网段,但是除了某个ip地址
注意:子网掩码不支持192.168.0.0/24这种写法
​
vim /etc/hosts.deny
vsftpd,sshd:10.1.1.1

案例:如何判断某个服务是否支持tcp_wrappers

1)./configure ==--enable-libwrap== 表示支持tcp_wrappers访问控制(源码安装看配置项)

2)rpm安装(也包括yum安装)

# ldd命令 +二进制程序,查询某个软件包含哪些模块

案例:查询vsftpd与sshd是否支持tcp_wrappers

# ldd /usr/sbin/vsftpd |grep libwrap*libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f2956480000)
​
# ldd /usr/sbin/sshd |grep libwrap*libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f015ff29000)
☆ 限制FTP流量
# vim /etc/vsftpd/vsftpd.conf
local_max_rate=0
0代表不限速
​
local_max_rate=数值 + 字节

3、使用第三方平台视频

第一步:在Linux电脑中安装httpd(阿帕奇)

# yum install httpd -y

第二步:启动httpd

# systemctl start httpd

第三步:在/var/www/html项目目录中创建一个demo.html文件

# vim /var/www/html/demo.html
<iframe height=498 width=815 src='https://player.youku.com/embed/XNDU4OTM3NzM0NA==' frameborder=0 'allowfullscreen'></iframe>

二、NFS服务概述

1、任务背景

① 搭建NFS服务器(用于静态资源的存储如图片、视频、附件)

② 使用mount指定对NFS服务器进行挂载,挂载到Web服务器中

③ 对NFS服务器中的静态资源进行实时备份(inotify + rsync)

2、环境准备

编号主机名称FQDNIP地址作用
1web.itcast.cn10.1.1.11Web服务器
2nfs.itcast.cn10.1.1.12NFS服务器
3backup.itcast.cn10.1.1.13Backup服务器

第一步:设置计算机的在主机名称

Web# hostnamectl set-hostname web.itcast.cn
NFS# hostnamectl set-hostname nfs.itcast.cn
Backup# hostnamectl set-hostname backup.itcast.cn

第二步:设置IP地址

# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
IPADDR=10.1.1.11   /10.1.1.13   /10.1.1.13
NETMASK=255.255.255.0
GATEWAY=10.1.1.2
DNS1=119.29.29.29
DNS2=114.114.114.114
​
UUID必须是唯一的,所以要么删除,要么更改UUID的值(更改后3位)

第三步:关闭防火墙与SELinux

关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
​
关闭SELinux
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

第四步:配置YUM源

# yum clean all
# yum mackecache

3、NFS概述

NFS(Network File System)网络文件系统,主要用于Linux系统上实现文件共享的一种协议,其客户端主要是Linux

没有用户认证机制,且数据在网络上传送的时候是明文传送,一般只能在局域网中使用

支持多节点同时挂载及并发写入

企业应用:为集群中的web server提供后端存储(做静态资源服务器)

4、NFS组成

rpcbind : 负责NFS的数据传输,远程过程调用 ==tcp/udp协议 端口111==

nfs-utils :控制共享哪些文件,权限管理

RPC(Remote Procedure Call Protocol): 远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议。

5、与NFS相关的软件包

nfs-utils-1.2.3-26.el6.x86_64       nfs服务的一个脚本控制工具(服务端与客户端)
nfs4-acl-tools-0.3.3-6.el6.x86_64   acl 工具包
nfs-utils-lib-1.1.5-4.el6.x86_64    nfs 库文件

6、安装NFS软件

# yum install rpcbind nfs-utils -y
​
# rpm -q rpcbind
# rpm -aq|grep ^nfs

7、NFS的配置文件

# vim /etc/exports
共享目录   共享选项
/share    *(ro,sync)
/public   *(ro,sync)
​
共享主机:
*   :代表所有主机
192.168.0.0/24:代表共享给某个网段192.168.0.1 ~ 192.168.0.254
192.168.0.0/24(rw) 192.168.1.0/24(ro) :代表共享给不同网段
192.168.0.254:共享给某个IP
*.itcast.cn:代表共享给某个域下的所有主机
​
共享选项:
ro:只读
rw:读写
sync:实时同步,直接写入磁盘(安全性最高)
async:异步,先缓存数据在内存然后再同步磁盘(效率最高,但是有丢失文件风险)
anonuid:设置访问nfs服务的用户的uid,uid需要在/etc/passwd中存在
anongid:设置访问nfs服务的用户的gid
root_squash :默认选项 root用户创建的文件的属主和属组都变成nfsnobody,其他人nfs-server端是它自己,client端是nobody。(访问NFS服务器时,映射为匿名账号)
no_root_squash:root用户创建的文件属主和属组还是root,其他人server端是它自己uid,client端是nobody。(访问NFS服务器时,映射为root管理员账号)
all_squash: 不管是root还是其他普通用户创建的文件的属主和属组都是nfsnobody
​
说明:
anonuid和anongid参数和all_squash一起使用。
all_squash表示不管是root还是其他普通用户从客户端所创建的文件在服务器端的拥有者和所属组都是nfsnobody;服务端为了对文件做相应管理,可以设置anonuid和anongid进而指定文件的拥有者和所属组

三、NFS任务解决方案

1、搭建NFS服务器

第一步:安装软件

# yum install rpcbind nfs-utils -y

第二步:创建一个共享目录,如/share

# mkdir /share

2、编写NFS主配置文件

# vim /etc/exports
共享目录   共享选项
/share    10.1.1.0/24(rw,sync)

3、启动相关的NFS服务

# systemctl start rpcbind
# systemctl start nfs
​
# ss -naltp |grep 111       111端口

4、搭建Web服务器

# yum install httpd -y
# systemctl start httpd

当Apache软件启动完毕后,会自动占用计算机的80端口。

80端口指向Web服务器的目录 => /var/www/html

所以项目源代码都可以直接存放于/var/www/html目录下

# echo "NFS实战演练" > /var/www/html/index.html

5、在Web服务器中挂载NFS

# mkdir /var/www/html/media
​
​
# mount -t nfs 10.1.1.12:/share /var/www/html/media 
或
# mount.nfs 10.1.1.12:/share /var/www/html/media
​
​
# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  5.1G   12G  30% /
devtmpfs                 894M     0  894M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M   11M  900M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M  18% /boot
tmpfs                    182M   28K  182M   1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0 100% /run/media/itheima/CentOS 7 x86_64
tmpfs                    182M     0  182M   0% /run/user/0
10.1.1.12:/share          17G  5.1G   12G  30% /var/www/html/media
​
如果客户端没有安装nfs工具可能导致挂载失败:
yum -y install nfs-utils nfs-utils-lib nfs4-acl-tools

6、上传aws.mp4视频到NFS服务器的/share

第一步:使用MX上传aws.mp4到/share目录(NFS服务器)

第二步:在Web服务器中,ll /var/www/html/media目录

# ll /var/www/html/media
aws.mp4

7、在html网页中调用aws.mp4文件

# vim /var/www/html/index.html
<video width="800" height="450" controls><source src="media/aws.mp4">
</video>

8、对NFS服务器进行实时备份

NFS服务器:/share目录有变化,马上rsync进行同步Backup备份服务器的/backup目录

第一步:安装inotify工具(NFS服务器)

# tar xf inotify-tools-3.14.tar.gz
# cd inotify-tools-3.14
# ./configure && make && make install

第二步:编写rsync.sh脚本,监控/share目录的变化

# vim rsync.sh
#!/bin/bash
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /share |while read events
dorsync -a --delete /share/ 10.1.1.13:/backup/echo "`date +%F\ %T`出现事件$events" >> /var/log/rsync.log 2>&1
done

第三步:给rsync添加x权限

# chmod +x rsync.sh

第四步:把NFS服务器与Backup备份服务器进行免密登录

# ssh-keygen
# ssh-copy-id root@10.1.1.13

第五步:在Backup服务器中创建一个/backup目录,用于实时备份

# mkdir /backup

第六步:在NFS服务器中执行rsync脚本

# nohup ./rsync.sh &

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/187978.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏公司数据分析师必备知识(持续补充中...)

1.如何撰写专题报告&#xff1f; ①原则 只有一个主题&#xff1a;即使不讲ppt&#xff0c;业务方也能看得懂行文通俗简单易懂&#xff1a;学习产品经理平常是如何写报告的明确的数据结论和落地项先行&#xff1a;跟业务方多沟通数据结论&#xff0c;让他们给出落地项 ②结构…

【星海随笔】git的使用

1.在终端&#xff0c;检查git是否安装 git --version 2.没有安装的话去&#xff0c;官网&#xff0c;下载git 3.一直点下一步即可 4.安装后在终端检查git是否安装好 5.设置用户名和邮件地址(最好和GitHub的用户名/邮箱保持一致) git config --global user.name “自己的用户名”…

Linux编写一个极简版本的Shell

Linux编写一个极简版本的Shell &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容在Linux环境下&#xff…

Markdown使用教程

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

笔记本电脑的麦克风没有声音

笔记本电脑的麦克风没有声音是一个常见的问题&#xff0c;可能是由于以下几个原因导致的&#xff1a; 第一&#xff0c;麦克风没有启用或者被禁用了。在Windows系统中&#xff0c;右键单击任务栏上的音量图标&#xff0c;选择“录音设备”&#xff0c;在弹出窗口中找到麦克风&a…

Python+Appium自动化测试-编写自动化脚本

一&#xff0c;连接测试手机&#xff0c;获取测试机及被测APP配置 配置信息如下&#xff1a; {"platformName": "Android","platformVersion": "10","deviceName": "PCT_AL10","appPackage": "c…

【技术支持】DevTools中重写覆盖源js文件

sources面板下&#xff0c;左侧overrides标签下添加一个文件夹&#xff0c;并同意。 勾选Enable Local overrides 然后在page标签下&#xff0c;修改文件后ctrls保存 直接就保存在overrides的文件夹下了 或者文件上右键Override content

【leaflet】1. 初见

▒ 目录 ▒ &#x1f6eb; 导读需求开发环境 1️⃣ 概念概念解释特点 2️⃣ 学习路线图3️⃣ html示例&#x1f6ec; 文章小结&#x1f4d6; 参考资料 &#x1f6eb; 导读 需求 要做游戏地图了&#xff0c;看到大量产品都使用的leaflet&#xff0c;所以开始学习这个。 开发环境…

【操作系统内核】线程

【操作系统内核】线程 为什么需要线程 比如我要做一个视频播放器&#xff0c;就需要实现三个功能&#xff1a; ① 从磁盘读取视频数据 ② 对读取到的视频数据进行解码 ③ 对解码的数据进行播放 如果串行执行&#xff08;通过一个进程来执行&#xff09;&#xff1a; 那么…

redis配置文件详解

一、配置文件位置 以配置文件启动 Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf ( Windows名为redis.windows. conf) 例: # 这里要改成你自己的安装目录 cd ./redis-6.0.8 vim redis.conf redis对配置文件对大小写不敏感 二、配置文件 1、获取当前服务的…

CSS特效第一弹:右上角tag标志纯代码前端实现(非图片)

&#x1f60e;效果&#xff1a; &#x1f937;‍♂️思路&#xff1a; 分为2个部分&#xff1a; 1.文字方块右下角折角 文字方块用绝对定位z-index让文字方块悬浮在右上角的位置 2.右下角折角通过before伪元素border属性实现(三角形实现方法&#xff09; &#x1f44d;核心代…

15 # 手写 throttle 节流方法

什么是节流 节流是限制事件触发的频率&#xff0c;当持续触发事件时&#xff0c;在一定时间内只执行一次事件&#xff0c;这个效果跟英雄联盟里的闪现技能释放差不多。 函数防抖关注一定时间连续触发的事件只在最后执行一次&#xff0c;而函数节流侧重于一段时间内只执行一次…

现在个人想上架微信小游戏已经这么难了吗...

点击上方亿元程序员关注和★星标 引言 大家好&#xff0c;最近我突然想起来我还有一款微信小游戏还没有上架&#xff0c;于是捣鼓了一天把游戏完善了一下&#xff0c;然后准备提交审核&#xff0c;却发现异常的艰难… 1.为什么难&#xff1f; 相信大家都大概知道&#xff0c…

畅通工程之局部最小花费问题 (C++)

目录 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 结果 题目&#xff1a; 思路&#xff1a; 详细思路都在代码注释里 。 代码&#xff1a; #include<iostream>//无向图邻接矩阵 #include<map> #include<algorithm> #define mvnum 1005 using …

yo!这里是STL::unordered系列简单模拟实现

目录 前言 相关概念介绍 哈希概念 哈希冲突与哈希函数 闭散列 框架 核心函数 开散列 框架 核心函数 哈希表&#xff08;开散列&#xff09;的修改 迭代器实现 细节修改 unordered系列封装 后记 前言 我们之前了解过map和set知道&#xff0c;map、set的底层结构是…

基于PHP的设云尘资讯网站设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

K8s----资源管理

目录 一、Secret 1、创建 Secret 1.1 用kubectl create secret命令创建Secret 1.2 内容用 base64 编码&#xff0c;创建Secret 2、使用方式 2.1 将 Secret 挂载到 Volume 中&#xff0c;以 Volume 的形式挂载到 Pod 的某个目录下 2.2 将 Secret 导出到环境变量中 二、Co…

Win11专业版安装Docker Desktop,并支持映射主机的gpu

一、Windows环境下安装 Docker 必须满足: 1. 64位Windows 11 Pro(专业版和企业版都可以) 2. Microsoft Hyper-V,Hyper-V是微软的虚拟机,在win11上是自带的,我们只需要启动就可以了 二、下载Docker Desktop安装包 方式一:进入官网下载 https://docs.docker.com/desktop…

IDEA调试总结

前言 由于 IDEA 每个人使用的版本不同以及快捷键的设置不同&#xff0c;所以忽略了快捷键的使用。如果不知道快捷键请在 IDEA 工具栏里面点开 Run 菜单即可知悉 图标介绍 下面咱们进入看图说话环节&#xff0c;下列图标小伙伴知道是啥功能么&#xff1f;日常开发进行 Debug 使…

逐步学习 Swagger enum:从入门到精通

enum 是 Swagger 规范中用来定义枚举类型的一种方式。它允许开发者在 API 文档中明确列出该接口的参数、返回值或请求体中可接受的枚举值。通过使用 Swagger enum&#xff0c;开发者可以更清晰地描述 API 的输入和输出&#xff0c;提高 API 文档的可读性和可维护性。 enum 使用…