AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 6709
Accepted
bene
bene
Asked: 2009-05-10 14:27:01 +0800 CST2009-05-10 14:27:01 +0800 CST 2009-05-10 14:27:01 +0800 CST

在断开连接后仍然存在的 SSHFS 挂载

  • 772

我正在使用从笔记本电脑到中央服务器的SSHFS挂载。

显然,SSHFS 挂载在较长时间断开后(例如在挂起期间)被破坏,导致底层 SSH 连接超时。

有没有办法让 SSHFS 挂载在长期断开连接(> 5 分钟)甚至使用不同 IP 的重新拨号中幸存下来?

linux networking ssh fuse
  • 6 6 个回答
  • 59890 Views

6 个回答

  • Voted
  1. Best Answer
    kubanczyk
    2014-10-27T06:11:57+08:002014-10-27T06:11:57+08:00

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

    这种组合ServerAliveInterval=15,ServerAliveCountMax=3会导致 I/O 错误在网络中断一分钟后弹出。这很重要,但在很大程度上没有记录。如果ServerAliveInterval选项默认保留(因此没有活动检查),经历 I/O 挂起的进程似乎无限期地休眠,即使在 sshfs 被reconnect'ed 之后也是如此。我认为这是一种无用的行为。

    换句话说,-o reconnect如果没有分配ServerAliveInterval,任何 I/O 要么成功,要么如果 ssh 在下面重新连接,则无限期挂起应用程序。结果,一个典型的应用程序完全挂起。如果您希望允许 I/O 返回错误并恢复应用程序,则需要ServerAliveInterval=1或更高。

    无论如何,这ServerAliveCountMax=3是默认值,但我喜欢指定它以提高可读性。

    • 106
  2. bene
    2009-05-11T13:04:39+08:002009-05-11T13:04:39+08:00

    感谢 autossh 和 autofs 的提示。

    但是,出于我的直接目的,我发现了一个更简单的解决方案,但没有很好地记录:

    sshfs -o reconnect server:/path/to/mount
    
    • 60
  3. kband
    2009-05-10T15:30:22+08:002009-05-10T15:30:22+08:00

    当Autossh 发现ssh 已死亡或停止通过流量时,它会自动重新连接 ssh 会话。由于它只是自动 ssh,它可以在不同的 IP 和挂起状态下工作(即使笔记本电脑在不同的局域网上唤醒)。

    • 12
  4. Zoredache
    2009-05-10T16:24:38+08:002009-05-10T16:24:38+08:00

    您可以做的一件事是通过autofs挂载您的文件系统。Autofs 是一个工具,当您使用文件系统将被挂载到的目录中的某些内容时,它将挂载文件系统。当它检测到活动时,文件系统就会被挂载。当文件系统上什么都没有发生时,它会被卸载。

    这是我在谷歌上找到的一个方法来完成这个,还有其他几个。

    • 9
  5. David Z
    2009-05-10T15:16:13+08:002009-05-10T15:16:13+08:00

    我怀疑没有,因为即使您可以将 SSH 客户端配置为不断开连接,服务器也可能会在指定的不活动时间段后配置为这样做,您将无法覆盖它。即使你可以,如果你从不恢复连接,服务器就会挂起,随着时间的推移,这可能会导致服务器资源的大量浪费。

    我认为,一种更好的技术是在挂起计算机之前卸载文件系统,并在计算机再次唤醒时重新挂载它。这样做的机制可能取决于您暂停计算机的确切方式 - 我使用 tuxonice 内核并执行类似的操作,我有一个类似的指令

    Unmount /mnt/sshfs
    

    在/etc/hibernate/common.conf.

    • 2
  6. Timofey Bugaevsky
    2019-05-24T02:27:44+08:002019-05-24T02:27:44+08:00

    kubanczyk的答案很棒。由于过于贪婪的 sshfs,我在冻结整个界面时遇到了问题,现在为了通过一个脚本启动连接,该脚本在打开笔记本电脑时重新连接并且在连接变慢时不会冻结,您可以使用这样的 bash 脚本(也许不是很安全,但对于许多网络项目来说很方便,例如):

    #!/bin/bash
    echo PWD | sshfs USER@SERVER:/ MOUNT_PATH -o password_stdin,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 -p PORT -C -oStrictHostKeyChecking=no
    if xhost >& /dev/null ; then
        pcmanfm MOUNT_PATH
    fi
    
    • 0

相关问题

  • 更改 PHP 的默认配置设置?

  • 有什么软件可以模拟局域网?

  • 保护新的 Ubuntu 服务器 [关闭]

  • 带宽利用工具?[关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve