目录
一.NFS远程共享存储
NFS远程共享
二.FTP文件服务
1.准备工作
2.安装配置服务端
3.编辑配置文件
4.本地测试
5.安装配置客户端
三.ftp配置本地用户登录
1.创建aren用户密码为123
2.配置本地用户文件
3.本地测试
4.客户端安装配置
一.NFS远程共享存储
.NFS介绍
NFS(Network File System)即网络文件系统,NFS 和其他文件系统一样,是在 Linux 内核中实现的,因此 NFS 很难做到与 Windows 兼容。NFS 共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用。
NFS 文件系统仅支持基于 IP 的用户访问控制,NFS 的客户端主要为Linux。
因为NFS有很多功能,不同的功能需要使用不同的端口。因此NFS无法固定端口。而RPC会记录NFS端口的信息,这样就能够通过RPC实现服务端和客户端的RPC来沟通端口信息。
那RPC和NFS之间又是如何之间相互通讯的?
首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口。RPC就会记录下这些端口。并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。
NFS远程共享
1.实验环境部署
准备两台实验机器:
服务端server 10.36.192.203 客户端client 10.36.192.88
关闭两台机器防火墙和selinux:
[root@testhost ~]# systemctl stop firewalld
[root@testhost ~]# systemctl disable firewalld
[root@testhost ~]# setenforce 0
setenforce: SELinux is disabled
2.server端配置与部署
安装必要的软件包并启动
[root@testhost ~]# yum -y install rpcbind #安装rpc软件包
[root@testhost ~]# yum -y install nfs-utils #安装nfs服务
[root@testhost ~]# systemctl start rpcbind
[root@testhost ~]# systemctl start nfs
创建共享存储目录并用新的磁盘挂载
[root@testhost ~]# mkdir /data/
[root@testhost ~]# mkfs.ext4 /dev/sdb #格式化磁盘
[root@testhost ~]# mount /dev/sdb /data/ #挂载
[root@testhost ~]# vim /etc/fstab #配置开机自动挂载
/dev/sdb /data ext4 defaults 0 0
[root@testhost ~]# echo 'test' >> /data/test #写入文件
编辑共享文件/etc/exports添加以下内容
[root@testhost ~]# vim /etc/exports
/data 10.36.192.0/24(ro,no_root_squash,sync)
可选参数:
ro:只读
rw:读写
*:表示共享给全网段。
sync:所有数据在请求时写入。
root_squash: 对于使用分享目录的使用者如果是root用户,那么这个使用者的权限将被压缩成为匿名使用者,只读权限。
no_root_squash:使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限。
重启服务
[root@testhost ~]# systemctl restart nfs
3.客户端部署
安装软件包
[root@testhost ~]# yum -y install rpcbind #安装rpc软件包
[root@testhost ~]# yum -y install nfs-utils #安装nfs服务
[root@testhost ~]# systemctl start rpcbind
[root@testhost ~]# systemctl start nfs
创建挂载点并挂载
[root@testhost ~]# mkdir /data
[root@testhost ~]# mount -t nfs 10.36.192.203:/data /data
[root@testhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs tmpfs 1.4G 0 1.4G 0% /dev/shm
tmpfs tmpfs 1.4G 12M 1.4G 1% /run
tmpfs tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 5.9G 12G 35% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
tmpfs tmpfs 280M 0 280M 0% /run/user/0
10.36.192.203:/data nfs4 9.8G 36M 9.2G 1% /data
####
-t:指定文件系统类型
[root@testhost ~]# vim /etc/fstab #设置开机自动挂载
10.36.192.203:/data /data nfs defaults 0 0
查看挂载文件
[root@testhost ~]# ls /data
test
二.FTP文件服务
FTP Server
作用:提供文件共享服务,实现上传下载
端口:
21号,建立tcp连接 默认端口
20号:传输数据
- 文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载、删除文件。FTP服务器端可以同时提供给多人共享使用。
- FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器上传、下载文件。
ftp主动模式:
ftp主动模式:客户端开启一个端口N(>1023)向服务端的21端口,建立连接,同时开启一个N+1,告诉服务端,我监听的是N+1端口,服务端接到请求之后,用自己的20端口连接到客户端的N+1端口,进行传输
21端口建立连接
20端口传输数据
ftp被动模式:
客户端同时开启两个端口(1024,1025),一个端口(1024)跟服务端的21端口建立连接,并请求服务端再开一个端口进行数据传输。。服务端接到请求之后,随机会开启一个端口(1027)并告诉客户端我开启的是1027端口,客户端用另一个端口(1025)与服务端的(1027)端口进行连接,传输数据。
#ftp被动模式相对与主动模式更加安全,因为被动模式服务端数据传输端口是随机的不容易被监听。
1.准备工作
准备服务端和客户端:
server 10.36.192.203 client 10.36.192.88
关闭两台机器的防火墙和selinux。
2.安装配置服务端
[root@testhost ~]# yum -y install vsftpd
[root@testhost ~]# mkdir /var/ftp/upload #创建自己的共享目录
[root@testhost ~]# touch /var/ftp/upload/test #创建文件到共享目录
[root@testhost ~]# cd /var/ftp/
[root@testhost ftp]# chown -R ftp.ftp *
[root@testhost ftp]# ll
总用量 0
drwxr-xr-x 2 ftp ftp 6 9月 15 15:43 pub
drwxr-xr-x 2 ftp ftp 18 9月 16 09:47 upload
- 重点:改变根目录的属主,如果不改变的话,只能访问,其他权限不能生效。因为我们是以ftp用户的身份访问的,而默认的属主属组是root。
3.编辑配置文件
[root@testhost ftp]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #允许匿名用户登录
anon_upload_enable=YES #允许匿名用户上传
anon_mkdir_write_enable=YES #允许匿名用户创建目录
anon_other_write_enable=YES #允许匿名用户对目录进行操作
重启服务
[root@testhost ftp]# systemctl restart vsftpd
4.本地测试
并且可以在upload目录下进行创建和删除操作
5.安装配置客户端
[root@testhost ~]# yum -y install lftp
[root@testhost ~]# lftp 10.36.192.203
lftp 10.36.192.203:~> ls
drwxr-xr-x 2 14 50 6 Sep 15 07:43 pub
drwxr-xr-x 3 14 50 38 Sep 16 01:57 upload
lftp 10.36.192.203:/> cd upload/
lftp 10.36.192.203:/upload> ls
-rw-r--r-- 1 14 50 0 Sep 16 01:47 test
drwx------ 2 14 50 6 Sep 16 01:57 新文件夹
lftp 10.36.192.203:/upload> get test
lftp 10.36.192.203:/upload> exit
[root@testhost ~]# ll
-rw-r--r-- 1 root root 0 9月 16 09:47 test
lftp 10.36.192.203:/upload> mkdir test1 #匿名用户创建的文件权限为700
mkdir 成功, 建立 `test1'
lftp 10.36.192.203:/upload> ls
-rw-r--r-- 1 14 50 0 Sep 16 01:47 test
drwx------ 2 14 50 6 Sep 16 02:03 test1
drwx------ 2 14 50 6 Sep 16 01:57 新文件夹
get 下载单个文件
mget 下载多个文件
mirror 下载目录put 上传单个文件
mput 上传多个文件
mirror -R 上传目录mkdir 创建目录
rm -rf 删除文件或者目录
三.ftp配置本地用户登录
1.创建aren用户密码为123
[root@testhost ftp]# useradd aren
useradd:用户“aren”已存在
[root@testhost ftp]# echo '123' | passwd --stdin aren
更改用户 aren 的密码 。
passwd:所有的身份验证令牌已经成功更新。
2.配置本地用户文件
如果不设置local_root=/home/aren 那么所有用户都能登录。
[root@testhost ftp]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #将允许匿名登录关闭
#anon_umask=022 #匿名用户所上传文件的权限掩码
#anon_upload_enable=YES #允许匿名用户上传文件
#anon_mkdir_write_enable=YES #允许匿名用户创建目录
#anon_other_write_enable=YES #是否允许匿名用户有其他写入权(改名,删除,覆盖)
103 chroot_list_enable=YES #启用限制登陆用户在主目录里面
104 # (default follows)
105 chroot_list_file=/etc/vsftpd/chroot_list #限制登陆的用户在这个文件列表中,一行一个用户
106 allow_writeable_chroot=YES #允许限制的用户对目录有写权限新添加
local_root=/home/aren # 设置本地用户的FTP根目录,一般为用户的家目录
local_max_rate=0 # 限制最大传输速率(字节/秒)0为无限制
#限制登陆的用户在这个文件列表中,一行一个用户
[root@testhost ftp]# vim /etc/vsftpd/chroot_list
aren
user1
[root@testhost ftp]# systemctl restart vsftpd
3.本地测试
aren用户登录可以看到自己家目录内容,其他用户不能登录。
4.客户端安装配置
[root@testhost ~]# lftp aren:123@10.36.192.203
lftp aren@10.36.192.203:~> ls
-rw------- 1 1000 1000 125119 Sep 15 09:25 1.txt
drwx------ 2 1000 1000 6 Sep 15 09:26 11111
drwx------ 2 1000 1000 6 Sep 15 09:35 2222
lftp aren@10.36.192.203:~> mkdir test
mkdir 成功, 建立 `test'
lftp aren@10.36.192.203:~> rm -rf 11111/
rm 成功, 删除 `11111/'
lftp aren@10.36.192.203:~> ls
-rw------- 1 1000 1000 125119 Sep 15 09:25 1.txt
drwx------ 2 1000 1000 6 Sep 15 09:35 2222
drwx------ 2 1000 1000 6 Sep 16 02:36 test
服务器查看
[root@testhost ftp]# ls /home/aren
1.txt 2222 test
get 下载单个文件
mget 下载多个文件
mirror 下载目录put 上传单个文件
mput 上传多个文件
mirror -R 上传目录mkdir 创建目录
rm -rf 删除文件或者目录