NFS 是一个网络文件系统 用于共享文件
安装 NFS
- 执行
yum install nfs-utils
- 编辑
vi /ect/exports
- 格式为
本地目录 允许的地址(参数)
- 地址用 * 代表所有
- 如果只允许本地局域网
192.168.1.0/24
具体根据你所在的网段
- 如果只允许本地局域网
- 参数支持多个 用
,
分割参数- ro - 只读
- rw - 可读写
- sync - 同步
- async - 异步
- no_root_squash - 忽略root权限
- insecure - 允许使用保留端口
- 格式为
- 添加目录
/home/app/nfs *(rw,sync,no_root_squash,insecure)
启动 NFS 服务器
- 执行
service rpcbind start && service nfs-server start
- 查看状态
rpcinfo -p
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28[root@sz ~]$ rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 33665 status
100024 1 tcp 59459 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 39214 nlockmgr
100021 3 udp 39214 nlockmgr
100021 4 udp 39214 nlockmgr
100021 1 tcp 41547 nlockmgr
100021 3 tcp 41547 nlockmgr
100021 4 tcp 41547 nlockmgr
添加防火墙规则
1
2
3
4
5
6
7
8
9
10
11
firewall-cmd --zone=public --add-port=111/tcp --permanent
firewall-cmd --zone=public --add-port=111/udp --permanent
firewall-cmd --zone=public --add-port=2049/tcp --permanent
firewall-cmd --zone=public --add-port=2049/udp --permanent
firewall-cmd --zone=public --add-port=20048/tcp --permanent
firewall-cmd --zone=public --add-port=20048/udp --permanent
firewall-cmd --zone=public --add-port=33665/udp --permanent
firewall-cmd --zone=public --add-port=40933/tcp --permanent
firewall-cmd --zone=public --add-port=51119/udp --permanent
firewall-cmd --zone=public --add-port=59459/tcp --permanent
firewall-cmd --reload
客户端查看 NFS 服务器目录
- 执行
showmount -e nfs.yumc.pw
查看目录1
2
3C:\Users\Administrator>showmount -e nfs.yumc.pw
导出列表在 nfs.yumc.pw:
/home/app/nfs *
客户端挂载 NFS 目录
- Linux 下执行
mount -t nfs nfs.yumc.pw:/home/app/nfs /nfs
- 如果提示命令未找到 请先安装
nfs-utils
- 如果提示命令未找到 请先安装
- Windows 下执行
mount -t nfs nfs.yumc.pw:/home/app/nfs N:
- 如果提示命令未找到 需要安装 NFS 客户端
- 我的电脑 > 控制面板 > 程序 > 程序和功能
- 打开
启用或关闭 Windows 功能
- 勾选
NFS 服务
- 确定即可
注意: Windows下挂载只能用cmd不能用powershell之类的其他命令行
- 如果提示命令未找到 需要安装 NFS 客户端
挂载常见错误
提示
mount: mounting nfs.yumc.pw:/home/app/nfs on /mnt failed: Permission denied
这个情况 有可能是 域名限制的问题
修改
/ect/exports
去掉域名 改为/home/app/nfs *(rw,sync,no_root_squash,insecure)
提示
mount: mounting nfs.yumc.pw:/home/app/nfs on /mnt failed: Connection refused
由于NFS有文件锁 所以导致链接被拒绝 添加
-o nolock
参数挂载 例如mount -t nfs -o nolock nfs.yumc.pw:/home/app/nfs /nfs
挂载后使用常见错误
进入目录后 无法新建文件 提示
xxx: Permission denied
检查
/ect/exports
是不是少了no_root_squash
参数Windows 下无法写入文件 提示
你需要权限来执行此操作
- 查看挂载信息
mount
1
2
3
4
5
6
7
8
9
10
11C:\Users\Administrator>mount
本地 远程 属性
-------------------------------------------------------------------------------
N: \\nfs.yumc.pw\home\app\nfs UID=-2, GID=-2
rsize=1048576, wsize=1048576
mount=soft, timeout=10.0
retry=1, locking=no
fileaccess=755, lang=GB2312-80
casesensitive=no
sec=sys - 如果 UID 和 GID 是 -2 则按照下列方法修改
- 打开注册表 Win+R
regedit
- 导航到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default
- 新建 DWORD 键值
AnonymousUid
和AnonymousGid
- 重启计算机
- 重新挂载
- 打开注册表 Win+R
- 查看挂载信息