拥有一个 Free/TrueNAS 设备,可以顺利地为 SMB/AFP 提供服务,但对 NFS 却不太满意 =(
TrueNAS 设置:
[X] 启用 NFSv4
[ ] NFSv4 的 NFSv3 所有权模型
[ ] NFSv4 需要 Kerberos
[ ] 服务器 UDP NFS 客户端
[X] 允许非 root 挂载
[ ] 支持>16组
[ ] 记录 mountd(8) 请求
[ ] 记录 rpc.statd(8) 和 rpc.lockd(8)
(选中/取消选中“启用 NFSv4”的结果相同)
我添加了一个 NFS 共享,使用默认设置
同一个用户(用户识别号/群组识别号)在服务器/客户端上都存在
设置,在内fstab
,以允许从非 root 挂载:
192.168.1.50:/mnt/tank/bob /mnt/nfs/bob nfs defaults 0 0
发出以下命令会导致超时:
% mount -vvv 192.168.1.50:/mnt/tank/bob /mnt/nfs/bob
mount.nfs: timeout set for Thu Jan 14 17:26:42 2021
mount.nfs: trying text-based options 'vers=4.2,addr=192.168.1.50,clientaddr=192.168.1.51'
mount.nfs: mount(2): Connection timed out
mount.nfs: Connection timed out
我还在/etc/host
两台机器上添加了条目:
服务器:
192.168.1.51 myhost myhost.mydomain.com
客户:
192.168.1.50 serverhost serverhost.mydomain.com
从客户端,nfs-ls
可以列出共享上的内容:
nfs-ls nfs://192.168.1.50/mnt/tank/bob
-rw-r--r-- 1 1234 1234 212 .rhosts
-rw------- 1 1234 1234 1572 .history
-rw-r--r-- 1 1234 1234 983 .cshrc
-rw------- 1 1234 1234 37 .lesshst
-rw-r--r-- 1 1234 1234 782 .shrc
-rw-r--r-- 1 1234 1234 301 .mail_aliases
-rw-r--r-- 1 1234 1234 267 .mailrc
-rw-r--r-- 1 1234 1234 91 .login_conf
-rw-r--r-- 1 1234 1234 881 .profile
-rw-r--r-- 1 1234 1234 323 .login
答案1
太长不看;
只需设置noresvport
nfs/etc/fstab
挂载
按照 TrueNAS 文档重新设置所有内容,这里。(基本上,只需恢复到 nfsv3)
再次,我能够nfs-ls ...
正常显示内容,并且也能mount request succeeded from...
在内及时显示日志条目/var/log/messages
。
我注意到尝试挂载时会在日志中弹出这些内容:
mount.nfs: trying text-based options 'nfsvers=3,proto=tcp,timeo=50,noresvport,addr=10.10.10.10'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 10.10.10.10 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: trying 10.10.10.10 prog 100005 vers 3 prot TCP port 774
似乎一直挂在线上port 774
,直到客户端超时。
最终成为了蹩脚的noresvport
选择。
10.10.10.10:/path/to/mnt /local/path nfs nfsvers=3,proto=tcp,timeo=50,noresvport,rw,relatime,user,noauto 0 0