目录
一、FTP文件传输协议
1.1、FTP工作原理
1.2、FTP状态码
1.3、FTP用户类型
1.4、FTP软件vsftpd
1.4.1、安装vsftpd
1.4.2、vsftpd配置文件
二、NFS网络文件系统
2.1、NFS工作原理
2.2、NFS软件
2.3、NFS共享配置文件格式
2.4、NFS相关命令
2.4.1、exportfs
2.4.2、showmount
2.5、NFS模拟实操
2.5.1、服务器安装软件并进行配置
2.5.2、客户端进行挂载
一、FTP文件传输协议
FTP 是一种用于在网络上进行文件传输的协议,通常用于从远程服务器下载文件或向服务器上传文件。它工作在客户端-服务器架构下,客户端通过 FTP 客户端程序连接到 FTP 服务器进行文件操作。
1.1、FTP工作原理
FTP 使用TCP协议进行通信,通过21端口进行控制连接,数据传输默认使用20端口。FTP主要有两种模式:
- 主动模式:服务器主动连接客户端的数据端口。
- 被动模式:客户端请求服务器打开一个端口并进行数据连接。
1.2、FTP状态码
- 1XX:信息 125: 数据连接打开
- 2XX:成功类状态 200:命令OK 230:登录成功
- 3XX:补充类 331:用户名OK
- 4XX:客户端错误 425:不能打开数据连接
- 5XX:服务器错误 530:不能登录
1.3、FTP用户类型
- 匿名用户:anonymous,对应Linux用户ftp。
- 系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow。
- 虚拟用户:特定服务的专用用户,独立的用户/密码文件(这个用户不在 /etc/passwd 中,只是用来登录ftp的)
1.4、FTP软件vsftpd
1.4.1、安装vsftpd
[root@localhost ~]# yum install vsftpd -y //安装vsftpd软件
[root@localhost ~]# systemctl start vsftpd //开启软件
[root@localhost ~]# rpm -qc vsftpd //查看配置文件
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
1.4.2、vsftpd配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
//通过以下选项,可以对ftp协议做自定义设置
listen_port=xxx //默认端口为21,可改成指定端口
connect_from_port_20=YES //主动模式端口为20
ftp_data_port=20 //指定主动模式的端口pasv_min_port=6000 //被动模式,0为随机分配,端口范围会影响客户端的并发数
pasv_max_port=6010 //被动模式anonymous_enable=YES //支持匿名用户,CentOS8 默认不允许匿名
no_anon_password=YES //匿名用户略过口令检查 , 默认NOanon_upload_enable=YES //匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES //匿名建目录local_enable=YES //是否允许linux用户登录
write_enable=YES //允许linux用户上传文件
local_umask=022 //指定系统用户上传文件的默认权限对应umaskchroot_local_user=YES //禁锢系统用户,默认NO,即不禁锢
chroot_list_enable=YES //禁锢白名单,默认是NO
chroot_list_file=/etc/vsftpd/chroot_list //禁锢黑名单,当前为默认值
二、NFS网络文件系统
Network File System网络文件系统,允许在网络中不同的计算机之间共享文件系统。NFS使得远程的计算机能够像访问本地文件一样访问网络中的共享文件,非常适合在局域网(LAN)中进行文件共享。
2.1、NFS工作原理
- NFS服务器:提供文件系统资源并将其共享给客户端
- NFS客户端:通过网络访问并操作 NFS 服务器上的文件系统,客户端通过挂载共享的远程目录来访问远程文件。
2.2、NFS软件
- 软件包:nfs-utils (包括服务器和客户端)
- 关联软件包:rpcbind(必须,不必单独启动,会自动启动,centos7之前版本需要提前启动)
- 端口:2049(nfsd), 其它端口由portmap(111)分配。
- NFS服务主要进程:
- rpc.nfsd:最主要的NFS进程,管理客户端是否可登录
- rpc.mountd:挂载和卸载NFS文件系统,包括权限管理
- rpc.lockd:非必要,管理文件锁,避免同时写出错
- rpc.statd:非必要,检查文件一致性,可修复文件
- 日志:/var/lib/nfs/
2.3、NFS共享配置文件格式
配置文件路径为/etc/exports
[root@localhost ~]# vim /etc/exports//共享目录 共享的主机1(权限) 共享的主机2(权限)
/dir 主机1(opt1,opt2) 主机2(opt1,opt2)... //主要格式默认选项:(ro,sync,root_squash,no_all_squash)
ro,rw 只读和读写async 异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性
低sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS 7以前的版本为nfsnobodyno_root_squash 远程root映射成NFS服务器的root用户all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobodyno_all_squash (默认)保留共享文件的UID和GIDanonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用
2.4、NFS相关命令
2.4.1、exportfs
功能是管理NFS共享文件系统列表。
-v | 显示共享目录 | -r | 重新共享所有目录 |
-a | 打开或取消所有共享目录 | -u | 取消一个或多个共享目录 |
2.4.2、showmount
功能是显示NFS服务器的共享信息。
-e | 显示NFS服务器上所有的共享目录 |
2.5、NFS模拟实操
2.5.1、服务器安装软件并进行配置
[root@localhost ~]# systemctl stop firewalld.service //关闭防火墙
[root@localhost ~]# setenforce 0 //关闭selinux
[root@localhost ~]# yum install nfs-utils rpcbind -y //安装软件更新完毕:nfs-utils.x86_64 1:1.3.0-0.68.el7.2 完毕![root@localhost ~]# mkdir /data //创建需要共享的文件夹
[root@localhost ~]# vim /etc/exports /data 192.168.153.0/24 //新增共享配置[root@localhost ~]# exportfs -r //刷新NFS配置
exportfs: No options for /data 192.168.153.0/24: suggest 192.168.153.0/24(sync) to avoid warning
[root@localhost ~]# exportfs -v //查看配置
/data 192.168.153.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,root_squash,no_all_squash)
[root@localhost ~]# systemctl start nfs //启动rpcbind软件
[root@localhost ~]# systemctl start rpcbind //启动rpcbind软件
2.5.2、客户端进行挂载
[root@localhost ~]# systemctl stop firewalld.service //关闭防火墙
[root@localhost ~]# setenforce 0 //关闭selinux
[root@localhost ~]# showmount -e 192.168.153.223 //查看共享信息
Export list for 192.168.153.223:
/data 192.168.153.0/24
[root@localhost ~]# mount 192.168.153.223:/data /mnt //临时挂载,可通过fstab永久挂载[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls //共享文件成功
for.sh testread.sh vs.sh