透過 OpenVPN 拒絕 NFS 訪問

透過 OpenVPN 拒絕 NFS 訪問

我正在嘗試存取 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 showVPN 連線的結果是

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

您可以看到showmountNFS 匯出僅提供給 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 - 太複雜,沒有明顯的好處)。

相關內容