在不可靠的网络(wifi/移动)上使用 NFS

AL1*_*13N 6 networking linux openvpn nfs

我在家里有一个 NFS 服务器(和一个只能在外面工作的 openvpn 连接)。

我的手机 (Jolla) 基本上是 Linux,并且具有移动数据/wifi/usb 网络功能。

基本上,我想将 NFS 从手机挂载到我的服务器,以便我可以看到存储在 NFS 服务器上的电影/音乐。

理想情况下,如果我没有网络,它会停止,但是当我恢复连接时继续播放会很好。(例如,希望播放器有一些缓冲可以消除从 wifi 切换到 openvn 的超时)。

这里的重要部分是可靠性/稳定性,我不太关心性能。

NFS 服务器位于网络 10.73.98.0/24 中。openvpn 网络(10.73.99.0/24)可以直接路由到它,openvpn 连接在局域网内被拒绝,所以它不会冲突。

考虑以下网络连接选项:

  • 通过 PC 的 USB 网络(源网络 192.168.7.0/24,伪装成 10.73.98.0/24 网络)
  • 家里的wifi连接(在局域网中,源网络10.73.98.0/24)
  • 移动数据连接(动态 ip,openvpn 网络 10.73.99.0/24)
  • 家外wifi(openvpn网络10.73.99.0/24)

afaik NFS over UDP 不会担心路由,但需要相同的 IP 地址(可能?)才能让挂载在网络中存活......

现在,我还查看了 fscache,希望它能在块级缓存并存储块(可能需要从 NFS 文件中预读一些内容?)。但看起来它存储在文件级别。

例如,当前的测试无法在离开 wifi 范围并重新进入时幸存下来。即使等了一段时间……

我应该尝试的最佳安装选项是什么?我也应该看看某种形式的自动挂载吗?什么不及物动词软/硬TCP / UDP ..我应该隧道它总是在OpenVPN的可靠性?openvpn 设置怎么样?等等...

小智 2

与zagrimsan的说法一致,即不可靠的网络nfs不能很好地协同工作。您的里程肯定会有所不同,并且不要期望任何承诺,尽管总的来说这是可行的。

互联网上的 OpenVPN 大致相当于一条质量很差、很长的电缆,从您在世界上的任何地方直接连接到您的专用网络。NFS 的设计考虑了低延迟和高质量,因此这不是最佳用例。

建议使用软安装和内置安装选项,因为外出时很可能出现中断,尤其是使用您描述的连接类型。为简单起见,是的,在连接到共享时,您应该始终使用 VPN,否则服务器会将您的家庭和漫游连接解释为两个客户端,或者如果您在 VPN 重新连接时获得新 IP,则会将锁定和其他并发逻辑混淆,从而解释为更多客户端。

如果您的 .99 网络已经只能通过 VPN 使用,那么只需将任何其他路由推送到客户端即可允许您在家里启用 VPN。

TUN 模式下的 OpenVPN 通常会使用相同的证书向客户端重新颁发相同的 IP 地址,无论您使用什么 DHCP 服务,都应该使用静态 MAC(使用 OpenVPN 的lladdr选项)在 TAP 模式下为每个连接提供相同的 IP。TAP在这里没有任何优势,所以我会避开。如果您使用密码而不是证书,则可以使用ifconfig-push ccd 指令

我首先会了解 NFS 传输的 TCP 和 OpenVPN 传输的 UDP。您绝对不希望在这些不稳定的连接类型上同时使用 TCP 上的 OpenVPN 和 TCP 上的 NFS。