最近,我的家庭 ISP 服务更改为 AT&T Uverse。虽然它比我以前使用的旧铜线 DSL (!) 快得多,但 ssh 连接会出现短暂中断。
我无法确定一种模式:有时,一个链接会保持几天,但随后每隔一两分钟就会出现一系列下降。这似乎只影响 ssh 连接。服务器和我的本地计算机都报告“管道损坏”错误。
我的本地机器是 System76 Lemur,运行 Ubuntu 16.04.1;遥控器是一个虚拟的 FreeBSD 盒子 (10.3)。我似乎有相同的结果
ssh -Y
或者
ssh -X
ATT 并没有多大帮助(因为我认为 ssh 超出了标准家庭用户的范围)。
答案1
之前的讨论:
https://askubuntu.com/questions/127369/how-to-prevent-write-failed-broken-pipe-on-ssh-connection
https://superuser.com/questions/37738/how-to-reliously-keep-an-ssh-tunnel-open
我想到了两件事(因为向 AT&T 投诉是徒劳的):
1)我遇到了防火墙在没有流量时断开连接的问题。这听起来不像你的情况,但在 ssh 会话中添加 30 秒的保持活动状态也没什么坏处。
https://stackoverflow.com/questions/25084288/keep-ssh-session-alive
2)使用Gnu screen(或者更好的tmux,如果你在FreeBSD机器上有它的话),这样至少当你重新连接时不会丢失任何工作。 .profile 中的 screen -RR 使这非常方便,可以确保您始终运行 screen 会话。使用 autossh 至少可以最大程度地减少痛苦。