NFS/FTP服务搭建与配置

1NFS介绍

  • NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写
  • NFS,Network File System。网络文件系统,即通过网络,对在不同主机上的文件进行共享
  • NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致

2.NFS原理

  • 首先:NFS包括两部分,服务端及客户端

  • 由于NFS服务功能很多,会有很多端口,这些端口还有可能不固定,那么客户端就无法与服务器进行通信,因为程序间通信必须通过端口(tcp/udp都是端到端通信),那么就需要一个中间的桥接机制,RPC进程即充当这样一个角色,RPC的端口是一定的(111),当NFS启动时,会向RPC进行注册, 那么客户端PRC就能与服务器RPC进行通信, 从而进行文件的传输

  • 当客户端用户打开一个文件或目录时,内核会判断,该文件是本地文件还是远程共享目录文件,如果是远程文件则通过RPC进程访问远程NFS服务端的共享目录,如果是本地文件,则直接打开

  • 为了更好的并发,RPC进程及NFS进程都有多个

6604362ecd5eb665a0985867ad09e746641.jpg

3.安装配置NFS

1).为了能更好的方便实验我们准备两台机器,其中一台机器做为服务端另一台机器做为客户端.在两台机器上都要进行安装nfs-utils包这个包

yum install -y nfs-utils

2).在服务端上进行编辑文件/etc/exports增加一行

/home/nfstestdir 192.168.126.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

41f0e1b955226f91d1d3229a7203d400ce5.jpg

语句释义:

  • /home/nfstestdir :共享的目录
  • rw: 读写
  • ro: 只读
  • sync: 同步模式,内存数据实时写入磁盘
  • async :非同步模式
  • no_root_squash: 客户端挂载NFS共享目录后,root用户不受约束,权限很大
  • root_squash: 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
  • all_squash:客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
  • anonuid/anongid: 和上面几个选项搭配使用,定义被限定用户的uid和gid
  • 192.168.126.0/24:为客户端的网段

3).创建/home/nfstestdir目录并授权为777

291838d78d29de6f4c413d7a72bb5b46f3a.jpg4

4).开启nfs服务并查看监听的端口

这里监听的端口是111默认端口但是名字却没有显示rpcbind由于centos的特性导致的这里只需要知道了解就好了

16d3cee4a89d01ec220a2f1e6b31468b4b0.jpg

5).增加开机自启动(在服务端上进行操作)

0afaf2f442275f02dc0b771ab3bf46867d8.jpg

4.NFS客户端挂载

1).安装nfs-utils这个安装包之前已经安装过了这里就不安装了

2).查看有么有权限可以使用showmount -e 192.168.126.128 这里ip指定的是服务端的ip

这里可能会遇到出现错误的问题这里就要排查服务端有没有开启nfs服务如果开启了就看一下防火墙有没有开启如果开启了在服务端和客户端都要关闭之后再进行查看有没有权限

[root@localhost ~]# showmount -e 192.168.126.128

b839552fd4b422d1c49f7974fdb87430a58.jpg

此时能够看到远程服务端能够把某个目录贡献给了哪些客户端

3).挂载共享的目录在客户端上进行操作在使用df进行查看

mount -t nfs 192.168.126.130:/home/nfstestdir /mnt/

4).下面进行测试并验证现在客户端上进行创建一个文件然后在服务器上进行查看有没有同样的文件

5308e4038e9949910cd8ddad09b5e02c1c3.jpgea69ce1720bd807fbac3e6f2881a2387052.jpg

此时实现了同步共享

5).xeportfs命令

  • exportfs命令用来管理当前NFS共享的文件系统列表
  • Options:
  • -a:全部卸载或全部挂载
  • -r:重新挂载
  • -u:卸载某个目录
  • -v:显示共享目录
  1. 常用组合: exportfs -arv
  2. 服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效
  3. 注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统

6.NFS客户端问题

针对NFS4版本在centos6中应用存在如下问题:
客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、数组为nobody

解决方法:

  • 方法1:在客户端进行挂载时加上选项-o nfsvers=3
[root@localhost ~]# mount -t nfs -o nfsvers=3 192.168.126.130:/tmp/ /mnt/

如果目录已经挂载,而又不想卸载,执行如下命令:

[root@localhost ~]# mount -t nfs -o remount,nfsvers=3 192.168.126.130:/tmp/ /mnt/
  • 方法2:客户端和服务端都需要
[root@localhost ~]# vi /etc/idmapd.conf

把该配置文件中的“Domain = local.domain.com”改为“Domain = xxx.com”(此处xxx.com自定义),然后重启rpcidmapd服务(在centos7中直接重启rpcbind服务

7.FTP介绍

我们之前传输文件所用的是rzsz命令,可以简单明了的就把我们所需的文件下载或者上传。但是有个缺陷,不可以上传或者下载大体积的文件。FTP就可以解决这个问题! 超过4G, 跳板机。FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。 小公司用的多,大企业不用FTP,因为不安全。大多数的企业使用git

8.使用vsftpd搭建ftp服务

1).安装和配置

首先进行下载ftp安装包 centos上自带的FTP软件vsftpd,默认没有安装,需要用yum安装

yum install -y vsftpd

2d9bd364f42f4e1582134aebc413cff5ca4.jpg

2)安装后,不用配置,可以直接使用,默认支持使用系统账号登录,但是因为安全原因,需要建立账号体系,下面进行创建一个账户

useradd -s /sbin/nologin virftp

c4feab58c7ec573edf1c9ef22009cbc4eb2.jpg

b3408e73c0849ce49e3ac05871f3262da20.jpg

3).下面进行权限的设置以及把刚才设置的用户名和密码转换成二进制文件

db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
把刚才创建的用户名和密码文件进行转换成二进制文件

0b6a7bdf1c64b4e23d39932a0a01e52914f.jpg

4).创建虚拟用户的相关配置文件

1b2d8d1a64e1ea8084c22a71aa7e0a55213.jpg

把下面配置文件增加到刚才我们要创建的test23里面去

local_root=/home/virftp/test123   //虚拟用户的家目录
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                    //最大允许连接的clients客户端

5).下面进行创建虚拟用户的家目录

bd0ceafe2ea43e1c8f2e3f0c812cc80105a.jpg

6).增加密码文件增加下面两行在/etc/pam.d/vsftpd 同时还要修改全局配置/etc/vsftpd/vsftpd.conf配置文件

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login     //新增语句
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

84ced26a021065c89bf31faea32866a1261.jpg

将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

7).启动服务并查看监听端口

d62e87c2282cb17721c1ddb7969c2cb8630.jpg

8).进行测试

先在虚拟机上进行安装lftp这个安装包

9d43ff3bcab7fb810a0e6c3e590da32df82.jpg656b135be39ff13cac4b9b9dd7bd860fe30.jpg

使用 get+文件名 来下载一个文件到根目录下载到了虚拟机的root用户下面了退出用quit

8.使用xshell使用xftp传输文件

55ac7d6f7fd45a4cd77a5864ba070c28ced.jpg

6ea6c4c7a3dadde82dec4c666784da0f589.jpg

8f2b7eb714c0c1adf8622a85019caebf695.jpg

1dd7c3fb8333780c5bc4281ff120c69291e.jpg

9391c6f9e048a1f9636b9b3f1c11f065985.jpg

xshell使用xftp软件传输文件

在xshell界面上按下“ctrl+alt+F”弹出以下对话框

安装完成后,回到虚拟机上,按下“ctrl+alt+F”弹出软件界面

9.使用pure-ftpd搭建ftp服务

1).安装并配置文件

yum install -y pure-ftpd
vim /etc/pure-ftpd/pure-ftpd.conf

6b6876cbce6174f0f9b71284ca982bc6f53.jpg

2).因为vsftpd和pure-ftpd 共用21端口,因此需要把vsftpd服务关掉,再开启pure-ftpd

669f9b104db5313cd0b83fae08a0275bad0.jpg

3).创建一个新的用户

a35f144170252c074487ba3bd5b3f185ae9.jpg

4).通过PW命令,配置相关信息

bc7ef00aea2cfd8ac4ed2cb0c1840d04075.jpg5346c4cfbc1956ab425c7376df477249814.jpg

转载于:https://my.oschina.net/u/4000361/blog/2991964

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值