我正在尝试设置 NFS 服务器来在 Mac 客户端上浏览远程 Ubuntu 服务器上的文件。
我无法找出在条目中放置什么作为我的客户端主机名/地址/etc/exports
。我认为它应该是客户端的 IP 地址,但我似乎遇到了权限问题。似乎唯一有效的方法是使用通配符*
作为主机名/地址。
在Mac客户端上,我执行以下命令:
$ ifconfig | grep "inet " | grep -v 127.0.0.1
inet 192.168.1.112 netmask 0xffffff00 broadcast 192.168.1.255
我在 Ubuntu 服务器的/etc/exports
文件中使用该 IP 地址,如下所示:
/home/user 192.168.1.112(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
Mac/etc/auto_master
看起来像这样:
/net -hosts -nobrowse,nosuid,locallocks,nfc,actimeo=1
sudo exportfs -vra
在服务器和sudo automount -vc
Mac 客户端上运行后,当我尝试运行时仍然收到“权限被拒绝”:
$ ls /net/<REMOTE IP>/home/user
ls: /net/<REMOTE IP>/home/user: Permission denied
但是,当我将服务器更改/etc/exports
为通配符时,我可以ls
成功运行命令:
/home/user *(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
但是,我知道从安全角度来看这并不是最佳选择。
我尝试了 Mac IP 地址的几种不同变体,但除非使用通配符指定,否则我似乎无法解决权限问题,这让我相信除了地址之外我的其他设置都很好。
我怎样才能找到正确的地址并放入此条/etc/exports
目中?
答案1
客户端挂载文件系统后,showmount
在服务器上运行。这将向您展示服务器对客户端地址的理解。 (如果服务器显示名称但您想要地址,则host
在服务器上使用命令或类似的命令从名称中获取地址。)然后您可以将文件系统导出范围缩小到仅该地址。
服务器看到的地址可能会不时发生变化。如果发生这种情况,那么您将不得不重复此练习。
如果服务器位于互联网上,那么您可能可以通过使用网络浏览器中的隐身/私人页面来访问类似网站来找到为您的客户端分配的外部地址https://www.ipaddress.com/或者https://whatismyipaddress.com/或者https://showip.net/。这比不断向世界开放 NFS 导出、挂载文件系统然后运行showmount
.