我正在嘗試存取 NFS 共用。 NFS 共用位於我家中的伺服器中,我嘗試從本地網路外部存取它。
為了實現這一目標,我在本地網路上啟動了 OpenVPN 伺服器。這工作正常,我可以從本地網路外部連接到 VPN,甚至可以 ping 伺服器並存取一些僅本地的其他服務。我的 OpenVPN IP 位址是 172.27.232.5。
問題是我無法掛載 NFS 共享。當我連接到 VPN 時,我可以使用 showmount 命令查看共享
showmount -e 192.168.73.2
Export list for 192.168.73.2:
/media/share/kdab 192.168.73.0/24
/media/share/jjcasmar 192.168.73.0/24
但如果我嘗試連接到其中任何一個,都會失敗。
sudo mount -t nfs4 192.168.73.2:/media/share/jjcasmar /home/jjcasmar/mnt
mount.nfs4: access denied by server while mounting 192.168.73.2:/media/share/jjcasmar
我不明白我的設定有什麼問題,而且我的網路不太好。對可能發生的事情有什麼想法嗎?
ip addr show
VPN 連線的結果是
13: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
link/none
inet 172.27.232.5/23 brd 172.27.233.255 scope global tun1
valid_lft forever preferred_lft forever
inet6` fe80::b6a9:fff6:dd69:6f7f/64 scope link stable-privacy
valid_lft forever preferred_lft forever
如果我理解正確的話,NFS 伺服器會拒絕連接,因為雖然我可以在 192.168.73.2 上看到伺服器,但我不在該子網路上,對吧?
我嘗試修改導出以添加172.27.232.0/23
,但仍然失敗。我也嘗試過直接匯出到我的 OpenVPN IP,172.27.232.5
但沒有成功。
答案1
OpenVPN 通常使用路由網路將用戶端連接到伺服器。例如,儘管您的 LAN 是 192.168.73.0/24,但您連線的用戶端可能會被指派 VPN 位址 10.0.0.2。路由可讓您的用戶端存取 LAN 上的裝置。
連接 VPN 時在用戶端上執行ip addr
( ) 將顯示用於 OpenVPN 的子網路 - 或者您可以查看 OpenVPN 伺服器設定檔(通常位於伺服器下方)。ip a
/etc/openvpn
您可以看到showmount
NFS 匯出僅提供給 LAN 192.168.73.0/24 上的主機。
您的用戶端不在 192.168.73.0/24 上,因此權限被拒絕。解決方案是修改/etc/exports
您的伺服器以包含對 OpenVPN 子網路的存取。
對於 NFS v3,我會做類似的事情,但我不知道 NFS v4 還需要多少:
/media/share/kdab 192.168.73.0/24 172.27.232.0/23
/media/share/jjcasmar 192.168.73.0/24 172.27.232.0/23
同樣,對於 NFS v3,我會運行,exportfs -var
但我不知道是否仍然需要(我從來沒有使用過 NFS v4 - 太複雜,沒有明顯的好處)。