我正在嘗試建立一個家庭網路來將我的各種音訊和視訊檔案共享到不同的媒體伺服器電腦。我目前有一台運行 Fedora 21 的機器,它託管著我想要分享的所有檔案。在其 /etc/exports 檔案中我有:
/home/Kodi *(ro)
簡單的。簡短而甜蜜,並且在另外 2 台機器上有效。從這些機器上我可以輕鬆執行
mount 192.168.1.144:/home/Kodi /nfs
一切都很好。
在 Raspberry Pi 上,我安裝了 OpenELEC 作為作業系統,啟用了 SSH,以便我可以進入並執行管理任務。但是,它永遠不會起作用。使用修改後的目標執行相同的掛載行總是會給出:
mount: RPC: Remote system error - No route to host
mount: mounting 192.168.1.144:/home/Kodi on /storage/nfs/Kodi failed: Bad file descriptor
但是,我可以 ping 伺服器,甚至可以從 Raspberry Pi 透過 SSH 連接到伺服器,所以確實不存在路由問題。而且,如果我使用 Raspian 啟動 Raspberry Pi,那效果就很好。它一定是關於 OpenELEC 的,但我不知道是什麼。我也在 OpenELEC 論壇上問過這個問題(http://openelec.tv/forum/134-usage/76905-setting-up-nfs-with-rasppi-and-openelec)但到目前為止我一無所獲。
我很感激任何幫助。
答案1
根據這個 維基百科openelec不支援nfsv4,因此掛載必須使用nfsv3。也許所有其他系統都在使用 nfsv4,防火牆不允許 nfsv3 通過,或者您的伺服器僅提供 nfsv4 服務。
當您從防火牆返回 icmp 封包時,典型的訊息是“沒有到主機的路由”,這會誤導您認為該連接埠不被允許。嘗試暫時停用伺服器上的防火牆。
我不知道fedora 21是否仍然預設啟用nfsv3。如果沒有,您可以嘗試此編輯並使用 systemctl 重新啟動 nfs:
sed -i /etc/sysconfig/nfs -e '
/RPCNFSDARGS=/s/=.*/="--nfs-version 3 --nfs-version 4"/
/RPCMOUNTDOPTS=/s/=.*/="--nfs-version 3 --nfs-version 4"/'
答案2
我的伺服器從 F20 升級到 F21 後遇到了這個問題。完全禁用防火牆可以讓 Kodi 找到並掛載 NFS 共享,但我對伺服器上根本沒有防火牆感到不安。
我已經搞定了:
firewall-cmd --add-port 1024-65534/tcp --add-port 1024-65534/udp --add-port 111/tcp --add-port 111/udp
這會開啟保留連接埠之上的所有內容,以及 rpcbind 連接埠 (111)。簡單地做
firewall-cmd --add-service nfs
儘管可以連接另一個 Fedora 用戶端,但對於 Kodi NFS 用戶端來說這還不夠。也許 Kodi 客戶端只支援 NFS v3?