在不可靠的连接上挂载sshfs

Joh*_*man 7 fuse sshfs

我用sshfs挂载远程文件系统.如果ssh连接超时,则可能导致其他应用程序挂起(例如,仅打开本地文件的vim会话).系统恢复需要大约10分钟.即使我将远程文件系统挂载为只读,也会发生这种情况.为什么?有没有办法做sshfs挂载,以便在使用不可靠的连接(例如,wifi)时不会导致其他应用程序挂起?我不需要强大的东西,我只需要能够在远程计算机上查看文件,可以是只读的.

我使用lubuntu 12.10.

$sshfs -V
SSHFS version 2.4
FUSE library version: 2.9.0
fusermount version: 2.9.0
using FUSE kernel interface version 7.18
Run Code Online (Sandbox Code Playgroud)

kub*_*zyk 9

使用 -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3

这些ServerAlive选项会导致I/O错误在网络中断一分钟后弹出.如果没有这些选项,即使在sshfs被reconnect编辑之后,经历I/O挂起的进程似乎无限期地睡眠.


小智 1

您可以尝试一下 sshfs 的选项,例如,启用压缩、自动重新连接和 TCP 的 nodelay 标志:

-C     equivalent to '-o compression=yes'
-o reconnect
-o workaround=LIST
    [no]nodelaysrv
              set nodelay tcp flag in ssh (default: off)

sshfs server:/srv/homes /mnt/mountpoint -C -o reconnect -o workaround=nodelaysrv
Run Code Online (Sandbox Code Playgroud)

但给我带来更好结果的是使用 NFS,我没有使用 sshfs 时出现的延迟,并且在 *nix 环境中相当标准,您可以使用只读选项导出目录,从而获得额外的速度。尽管请注意 NFS 不是加密协议。

服务器:

# File: /etc/exports
/srv/homes    hostname1(rw,sync,no_subtree_check)    hostname2(ro,sync,no_subtree_check)
Run Code Online (Sandbox Code Playgroud)

客户:

mount server:/srv/homes /mnt/mountpoint
Run Code Online (Sandbox Code Playgroud)

  • -1...用于在没有任何警告的情况下推荐未加密的连接而不是加密的连接 (5认同)