通过ssh连入服务器然后vim代码, 经常会断掉连接, 显示 `Broken pipe`, 怎么改善?

用的aliyun服务器, 配置如下:

ubuntu 14.04
CPU: 4核
内存: 8GB
带宽: 6Mbps

本地的环境:

archlinux
xfce4-terminal

在本地ping服务器:

from : icmp_seq=1 ttl=49 time=5.82 ms
64 bytes from x.x.x.x: icmp_seq=2 ttl=49 time=11.1 ms
64 bytes from x.x.x.x: icmp_seq=3 ttl=49 time=8.18 ms
64 bytes from x.x.x.x: icmp_seq=4 ttl=49 time=7.46 ms
64 bytes from x.x.x.x: icmp_seq=5 ttl=49 time=7.79 ms

--- x.x.x.x ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms

ssh 设置参考 这篇wiki中的 Speeding up SSH, Keep alive 等章节.

通过ssh连入服务器vim代码, 经常断掉连接, 显示Broken pipe, 痛不能举.

目前在用的折中方法是 sshfs.

请问, 是哪里的存在短板? 还有没有其他更好的方法?

阅读 9.4k
5 个回答

在服務端安裝tmux 或者screen, ssh進入服務端後, 打開tmux 或者screen 的sessions. 這樣就算broken pipe後, 也可以重新鏈接.

我觉得你可以试试mosh,有时候连接国外的出现问题,经常用.

可以试试 tmux
具体用法搜索下

ssh 有个超时时间,如果在超时时间内没有操作就会Broken pipe解决方法
或者可以不使用终端,用一些图形界面的ssh工具

问题的原因是 ssh 一段时间没有信息发送会自动断开,如果一定要用 ssh,可以去配置里面修改这个时间阈值。我比较推荐两种办法:

  1. 使用 mosh

Mosh is a replacement for SSH. It's more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.

  1. 使用 tmux

这样即便断开了连接,重新连上的时候,所有东西都能恢复。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题