目 录CONTENT

文章目录

搭建一个Windows也能用的nfs服务

ZOUNAN
2022-06-20 / 0 评论 / 0 点赞 / 404 阅读 / 1,082 字
温馨提示:
本文最后更新于 2022-06-20,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1.背景

经常会使用到网络文件系统,因为可以很方便在本地取用网络上的文件,除了常见的FTP/Samba外,NFS(Network File System)也是个很好用的服务,经常会用在工作和生活中。

如果你是使用Linux操作系统的话,你会发现NFS真的很方便!

2.服务器搭建

准备一台CentOS服务器,首先禁用到系统的selinux服务:

# 永久关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
# 临时关闭selinux
setenforce 0

在服务器上使用以下命令安装nfs服务:

yum -y install rpcbind nfs-utils

创建一个目录,用于nfs服务端的目录,后面我们将使用nfs共享此目录:

mkdir -p /nfs/share
# 为创建的目录赋予组权限,不然会报权限错误
chown -R nfsnobody.nfsnobody /nfs/share

修改配置文件:

vim /etc/exports

将下面内容粘贴进去,请将其中的网段修改为自己的网段:

/nfs/share 192.168.31.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)

img

设置此网段是由于nfs没有密码验证机制,需要通过限定ip访问达到一定的安全。同样地,也可以将上面的网段修改为ip地址,表示仅此ip能访问nfs共享服务。

配置的参数选项可参考如下:

img

完成后,保存退出!然后设置启动和开机自启动:

# 启动
systemctl start rpcbind.service
systemctl start nfs.service

# 设置开机启动
systemctl enable rpcbind.service
systemctl enable nfs.service

防火墙开放端口:

firewall-cmd --add-port={111,2049,30001,30002,30003,30004}/tcp --permanent
firewall-cmd --add-port={111,1011,2049,30001,30002,30003,30004}/udp --permanent
firewall-cmd --reload

为NFS固定随机端口,修改/etc/sysconfig/nfs配置文件

vim /etc/sysconfig/nfs

在末尾添加:

RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004

修改/etc/modprobe.d/lockd.conf配置文件,末尾添加:

options lockd nlm_tcpport=30002
options lockd nlm_udpport=30002

重启并检查一下端口:

systemctl restart nfs-config
systemctl restart nfs-idmap
systemctl restart nfs-lock
systemctl restart nfs-server
ss -tnlp | grep -E "3000|111|2049"

img

3.Linux客户端挂载

使用Linux客户端来与服务器建立链接,将服务端共享的文件夹映射到本地目录中。

yum -y install nfs-utils

查看服务器NFS共享信息:

showmount -e 192.168.31.95

img

  • 临时挂载
# 创建一个临时挂载点
mkdir -p /share
# 挂载
mount 192.168.31.95:/nfs/share /share

查看挂载信息:

df -hT

img

  • 永久挂载(开机自动挂载)
vim /etc/fstab

在最后一行加上以下内容:

192.168.31.95:/nfs/share        /share          nfs     defaults        0 0

img

# 如果没有报错,说明成功
mount -a

接下来就可以进行文件拷贝测试了。

4.Windows挂载

首先在开始菜单中找到"启用或关闭Windows功能"

img

找到NFS客户端,然后启用

img

使用带管理员权限的命令提示符,执行命令:

showmount -e 192.168.31.95

img

挂载:

mount 192.168.31.95:/nfs/share X:

挂载到一个没被使用的盘符上,比如X:

img

打开我的电脑,发现已经成功挂载上了。

img

5.常用命令

exportfs

  • -a 重新启动/etc/exportfs 中的内容

  • -r: 重新读取/etc/exportfs 中的信息,并同步更新/etc/exportfs 、/var/lib/nfs/xtab

  • -u :卸载单一目录(和 -a 使用 就是卸载说有的/etc/exportfs 文件中的目录)

  • -v:显示详细信息

exportfs -rv :重新共享所有的目录并输出详细信息,NFS服务端使用重新挂载。
服务端执行后,客户端会重新挂载共享目录。

exportfs -au : 卸载所有共享目录,在NFS 服务器上使用,客户端没有作用。
   服务端执行后,客户端会卸载共享目录,代表umount  

showmount

  • -a 显示已经于客户端连接的目录信息
  • ip或者Hostname 显示此IP地址分享出来的目录

rpcinfo

查看rpm执行信息,可以用于检查rpm运行情况的工具,利用rpcinfo -p可以查看出rpc开启端口所提供的程序有哪些。

img

0

评论区