ubuntu 配置nfs服务,并固定端口
*********************服务器端********************
# 1.安装软件包 sudo apt install nfs-kernel-server nfs-common
# 2.修改配置文件 vim /etc/exports # 添加内容: /nfsroot *(rw,sync,no_root_squash)
# 解析: /nfsroot ——NFS服务器端的目录,用于与nfs客户端共享
# 欲共享出去的用户 * 允许所有的网段访问 192.168.152.13 指定IP地址的主机 nfsclient.test.com 指定域名的主机 192.168.1.0/24 指定网段中的所有主机 *.test.com 指定域下的所有主机
# 括号内参数详解 ro 只读访问 rw 读写访问 sync 所有数据在请求时写入共享 async NFS在写入数据前可以相应请求 secure NFS通过1024以下的安全TCP/IP端口发送 insecure NFS通过1024以上的端口发送 wdelay 如果多个用户要写入NFS目录,则归组写入(默认) no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。 Hide 在NFS共享目录中不共享其子目录 no_hide 共享NFS目录的子目录 subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) no_subtree_check 和上面相对,不检查父目录权限 all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 no_all_squash 保留共享文件的UID和GID(默认) root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认) no_root_squash root用户具有根目录的完全管理访问权限 anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
# 3. 新建共享目录 mkdir -p /nfsroot
# 4. 重启nfs service nfs-kernel-server restart
# 5. 检测 showmount -e localhost # 显示已经mount到本机的目录和可允许访问的ip 如: nfsroot *
# 6. 其他常用命令 #在安装NFS服务器时,已包含常用的命令行工具,无需额外安装。
#将配置文件中的目录全部重新export一次!无需重启服务。 sudo exportfs -rv
#查看NFS的运行状态 sudo nfsstat
#查看rpc执行信息,可以用于检测rpc运行情况和端口情况 sudo rpcinfo -p
#查看网络端口,NFS默认是使用111端口。 sudo netstat -tu -4
********************客户机端********************
# 1.安装NFS服务(如果是centos系列的,需要改为安装nfs-utils,默认自带) sudo apt install nfs-common
# 2. 创建本地挂载路径 sudo mkdir -p /nfsshare
# 3. 挂载 mount <服务端IP>:/nfsroot /nfsshare # 服务端ip:/共项目录 /客户端挂载目录
# 4. 测试 sudo showmount -e <服务端IP> # 如果出现和服务端一样的结果,则说明配置成功
# 5. 卸载 umount /nfsshare # 如果显示device busy ,可以强制卸载 umount -lf /nfsshare
********************安装依赖******************** # 以下,为安装nfs-common和nfs-kernel-server所需的依赖包
# 仅在离线状态下需要手动安装 keyutils_1.5.9-9.2ubuntu2.1_amd64.deb libevent-2.1-6_2.1.8-stable-4build1_amd64.deb libnfsidmap2_0.25-5.1_amd64.deb libtirpc1_0.2.5-1.2ubuntu0.1_amd64.deb rpcbind_0.2.3-0.6ubuntu0.18.04.4_amd64.deb nfs-common_1%3a1.3.4-2.1ubuntu5.5_amd64.deb nfs-kernel-server_1%3a1.3.4-2.1ubuntu5.5_amd64.deb
********************端口设置******************** nfs涉及到到服务有:nfs、portmapper、rquotad、mountd、nlockmgr, nfs和portmapper是固定端口,分别为2049、111, 其他三个是随机端口,所以需要将这三个端口改成固定的,方便配置防火墙 具体参考方式如下
http://bryanw.tk/2012/specify-nfs-ports-ubuntu-linux/ 或者 https://its301.com/article/w0801101117/114702374
亲测,照着以上方法配置的nlockmgr不好使,所以需要在 /etc/sysctl.conf中添加个配置 fs.nfs.nlm_udpport=40001 fs.nfs.nlm_tcpport=40001
* 端口固定成什么数值,随便