任务列表: 14.1 NFS介绍 14.2 NFS服务端安装配置 14.3 NFS配置选项 14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp 15.4 xshell使用xftp传输文件 15.5 使用pure-ftpd搭建ftp服务 扩展 vsftp使用mysql存放虚拟用户并验证 http://www.aminglinux.com/bbs/thread-342-1-1.html ftp的主动和被动模式 http://www.aminglinux.com/bbs/thread-961-1-1.html
14.1 NFS介绍
1,NFS简介
NFS是Network File System的缩写NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致
2,NFS应用场景
多台机器同时共享数据,可以通过NFS来实现。
3,NFS原理
提供RPC协议的服务名称是“rpcbind”rpcbind服务会监听111端口nfs要借助rpc协议进行通信
14.2 NFS服务端安装配置
1,场景模拟
ip:192.168.19.101为服务端ip:192.168.19.102为客户端
2,安装服务
服务端安装nfs-utils rpcbind这两个服务
yum install -y nfs-utils rpcbind
客户端安装nfs-utils服务
yum install -y nfs-utils
3,编辑配置文件
vim /etc/exports
在服务端配置文件内写入以下内容
/home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/hnome/nfstestdir是共享的目录后半段的内容是可以访问的客户端ip。小括号号里的内容在配置里讲。
4,创建共享目录
mkdir /home/nfstestdir
chmod 777 /home/nfstestdir
为共享目录设置777权权是为了方便实验。在生产环境中应该跟据实际情况赋予目录权限。
5,启动服务
systemctl start rpcbind
systemctl start nfs
服务端启动nfs时会自动启动rpc相关服务
6,加入开机启动
systemctl enable rpcbind
systemctl enable nfs
14.3 NFS配置选项
NFS配置选项是指cat /etc/exports文件中的小括号内容
配置分为三个部分
读写控制内存与磁盘数据的时实同步客户端访问用户权限控制
1,读写控制
可以写成rw或者rorw读写ro只读
2,时实同步
sync内存的数据会立即写入磁盘,缺点是影响磁盘效率。async内存的数据会每隔一段时间,缺点是内存中的数据没写入磁盘的话会丢失。
3,访问控制
no_root_squash当使用该选项后,客户端的root用户将会和服务端root用户权限一致。root_squash 将客户端的root用户限制为指定用户。all_squash 将客户端的所有用户都限制为指定用户。anonuid/anongid 指定限制成为的用户的gid和uid。
客户端挂载
为保证实验成功,关闭服务端与客户端的防火墙
systemctl stop firewalld
注意要两面都关
1,查看服务端的共享内容
[root@nfs1 ~]# showmount -e 192.168.19.101
Export list for 192.168.19.101:
/home/nfstestdir 192.168.19.0/24
showmonut -e可以查看指定ip的共享内容
2,挂载
mount -t nfs 192.168.133.130:/home/nfstestdir /mnt/
需要-t指定挂载类型为nfs远程路径格式为:ip:绝对路径
3,实验
客户端df -h查看磁盘挂载情况 服务端创建文件
touch /home/nfstestdir/1.txt
这时客户端也会显示出相同的文件来,说明实验成功。服务端配置限制用户时使用的是uid和gid。反应到客户机上就是客户机的uid和gid.
14.4 exportfs命令
exportfs是跟nfs-utils一起安装的nfs服务在客户端挂载时不能重启或关闭。这样会导致服务进程死掉。nfs服务在关闭前一定要将客户端已挂载的目录卸载掉。
exportfs选项
-r 重新挂载 这选项会重新挂载/etc/exports内的所有配置-u 卸载指定目录-a 一般和重新挂载和卸载使用。表示全部。-v 显示共享目录
实验
在服务端的/etc/exports文件中 //增加/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)
[root@lnmp ~]# echo "/tmp/ 192.168.19.0/24(rw,sync,no_root_squash)" >> /etc/exports
[root@lnmp ~]# cat /etc/exports
/home/nfstestdir 192.168.19.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/tmp/ 192.168.19.0/24(rw,sync,no_root_squash)
服务端重载配置
[root@lnmp ~]# exportfs -arv
exporting 192.168.19.0/24:/tmp
exporting 192.168.19.0/24:/home/nfstestdir
客户端查看共享目录
[root@nfs1 mnt]# showmount -e 192.168.19.101
Export list for 192.168.19.101:
/tmp 192.168.19.0/24
/home/nfstestdir 192.168.19.0/24
14.5 NFS客户端问题
客户端文件属主属组nobody
NFS 4版本会有该问题客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody
解决方案1
客户端挂载时加上 -o nfsvers=3
mount -t nfs -o nfsvers=3 192.168.19.101:/tmp/ /mnt/
表示指定nfs的版本为3
解决方案2
客户端和服务端都需要
vim /etc/idmapd.conf
把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧)然后再重启rpcidmapd服务,没有这个服务就重启rpcbind服务
15.1 FTP介绍
FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。小公司用的多,大企业不用FTP,因为不安全
15.2/15.3 使用vsftpd搭建ftp
1,安装
yum install -y vsftpd
cnetos自带vsftp
2,创建ftp专用登录用户
useradd -s /sbin/nologin virftp
为了安全,指定这个用户的shell不让他通过SSH登录
3,编辑虚拟ftp用户登录信息
vim /etc/vsftpd/vsftpd_login
这里的用户会映射到virftp用户上内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行
testuser1
47721852
4,为虚拟用户登录文件设置权限
chmod 600 /etc/vsftpd/vsftpd_login
5,将这个文件转化为二进制文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
6,编辑虚拟用户配置文件
mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
vim testuser1
配置文件的名称要和虚拟用户的名称保持一致在文件中加入以下内容
local_root=/home/virftp/testuser1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
local_root虚拟用户家目录anonymous_enable是否允许匿名用户write_enable是否可写local_umask新目录和新文件的权限anon_upload_enable是否允许匿名用户上传anon_mkdir_write_enable是否允许匿名用户创建目录idle_session_timeout空闲超时时间data_connection_timeout数据传输超时时间max_clients最大连接客户端数量
7,创建ftp目录
mkdir /home/virftp/testuser1
chown -R virftp:virftp /home/virftp
这个目录必须要给virftp这个用户使用权限
8,自定义密码文件
vim /etc/pam.d/vsftpd
在这个文件的开头,#%PAM-1.0下边插入以下内容
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
32位系统和64位文件的lib目录不一样
9,编辑vfsftp主配置文件
vim /etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改为 anonymous_enable=NO将#anon_upload_enable=YES 改为 anon_upload_enable=NO将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO再增加如下内容
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
virtual_use_local_privs是否启用虚拟用户guest_username指定虚拟用户所映射的系统用户user_config_dir虚拟用户配置文件
10,启动ftp服务
systemctl start vsftpd
ftp监听21端口,ssh监听22,telnet监听23
11,测试
在windows系统上安装ftp客户端软件《filezilla client》在linux系统上安装ftp客户端软件《lftp》登录ftp
[root@lnmp testuser1]# lftp testuser1@127.0.0.1
口令:
注意口令错误会提示503。密码文件中不能有空格。可以用cat -E查看。若不正常查看日志/var/log/messages和/var/log/secure
12,使用xshell的sftp功能登录服务器
使用lcd定位下载文件目录使用get命令下载文件
15.4 xshell使用xftp传输文件
1,使用快捷键呼出xftp
ctrl+alt+F如果没有安装xftp,那么会弹出下载页面。
2,启动快捷键后弹出的窗口。
在这个界面下,可以像使用本地磁盘那样对文件或目录进行操作。
15.5 使用pure-ftpd搭建ftp服务
1,安装
yum install -y pure-ftpd
pure-ftpd这个包的安装,依赖epel扩展源。如果发现无法安装,请先安装epel扩展源。
2,修改配置文件
vim /etc/pure-ftpd/pure-ftpd.conf
找到pureftpd.pdb这行,将行首的井号删除删掉井号是为了让密码配置文件生效。
3,停止vsftpd服务,启动pure-ftpd服务。
systemctl stop vsftpd
systemctl start pure-ftpd
先把21端口空出来
4,创建共享目录
useradd -u 1010 pure-ftp
mkdir /data/ftp
chown -R pure-ftp:pure-ftp /data/ftp
要让pure-ftp用户来操作这个共享目录
5,创建虚拟用户映射系统用户
pure-pw useradd ftp-user1 pure-ftp -d /data/ftp
useradd 添加虚拟用户-u 映射系统用户-d 指定共享目录输入两次密码后用户建立完成
6,保存密码文件
pure-pw mkdb
不执行这个过程是无法登录的。
7,测试
先在/data/ftp目录下创建一个文件
touch /data/ftp/xy.txt
登录
lftp ftp_user1@127.0.0.1
查看内容
[root@lnmp ~]# lftp ftp_user1@127.0.0.1
口令:
lftp ftp_user1@127.0.0.1:~> ls
drwxr-xr-x 2 1010 pure-ftp 20 May 26 23:11 .
drwxr-xr-x 2 1010 pure-ftp 20 May 26 23:11 ..
-rw-r--r-- 1 0 0 0 May 26 23:11 xy.txt
直播笔记
1,NFS使用场景
一台机器上把磁盘分享出来。其他机器,把这个分享出的内容当做硬盘来挂载。最好是把分享的目录挂载到客户机相同的目录去。缺点是网络读写会造成大量的拥堵。可使用的范围被定为:1,访问量不大。2,并发量不高的情况下。
2,NFS生产环境使用注意事项
由于nfs服务器出现故障,导致php无法读取内容,最终php资源耗尽。而显示502错误。解决方案: 卸载掉nfs挂载的磁盘。使访问的资源404。这样可以让php得以释放。共享文件的高可用方案: 1,rsync + inotify 2,商用nas等方案绝对不允许使用NFS来解决数据库(如:mysql)的读写。
2,FTP使用场景
FTP优点:方便 缺点:不安全SFTP和FTP的区别是:SFTP使用SSH协议。所以更安全。规范的上传文件的方式是通过代码发布平台或工具来完成。
3,FTP的主动和被动
http://ask.apelearn.com/question/961
主动
被动