目前有一台服务器是用的飞牛OS,然后其上安装的Tailscale是直接在应用中心安装的:
目前遇到了个问题,我想把这台NAS上的文件架通过NFS共享到其他节点服务器,exports是这样的:
/home/vpms/qbt 100.64.0.0/10(ro,async,no_subtree_check,insecure)
但是在另一个节点进行挂载的时候,一直报错:
root@autodl:~# mount -t nfs 100.99.40.40:/home/vpms/qbt /root/qb mount.nfs: mounting 100.99.40.40:/home/vpms/qbt failed, reason given by server: No such file or directory
一开始我以为是IP未被允许的问题,但是改了很多hosts,直到改成:
/home/vpms/qbt *(ro,async,no_subtree_check,insecure)
才可以,然后在NFS服务器上运行下面命令进行监测:
sudo journalctl -f | grep mountd
然后在另一台服务器上再重新mount,可以看到日志:
root@vpmsQ4000:~# journalctl -f | grep mountd Feb 05 19:36:50 vpmsQ4000 rpc.mountd[2447]: v4.0 client detached: (null) from (null) Feb 05 19:36:50 vpmsQ4000 rpc.mountd[2447]: refused mount request from 127.0.0.1 for /home/vpms/qbt (/): not exported
到这里已经有点不对劲了,怎么会出现来自127.0.0.1的请求?继续检查:
root@vpmsQ4000:~# ps aux | grep tailscale tailsca+ 4395 0.0 0.1 1257440 39340 ? Sl Feb03 1:17 /vol1/@appcenter/tailscale/bin/tailscaled --socket=/vol1/@appdata/tailscale/tailscaled.sock --state=/vol1/@appdata/tailscale/tailscaled.state --port=41641 --tun=userspace-networking root 1260859 0.0 0.0 6340 2216 pts/4 S+ 19:34 0:00 grep --color=auto tailscale
可以看到,Tailscale的启动使用了--tun=userspace-networking参数,这个模式下,NFS 服务端看到的“客户端 IP ≠ 真实 Tailscale IP”,导致 rpc.mountd 的 IP/DNS / 网段匹配全部失效。
这估计主要还是飞牛的问题吧,不知道docker版会不会也这样,不过既然问题已经找到了,只需要删掉应用商店的Tailscale,然后重新安装官方的即可。
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up --netfilter-mode=off --accept-dns=false