跳到正文

移动宽带, SSH 如果闲置十几分钟不敲命令, NAT 设备就会把链接的 NAT 表项删掉, SSH 就挂掉了,有办法吗?

网友提供14 条回复
每条链接的 NAT 表项对 NAT 设备性能和价格影响比较大吧,移动的宽带听说是经过了好几次 NAT 的。。为节约设备 NAT 并发资源,对超时的 NAT 表项就删除掉了。可是这个超时太短了,不知道有没有十分钟,SSH 开着,一查资料十几分钟,SSH 窗口就挂掉了。。
NAT 表项删除后,后来的数据包到达 NAT 设备时因为查表没查到,就直接丢弃了,是不是这样。。所以 ssh 链接也不退出,就没反应了,得手动关掉终端窗口。等超时得几十分钟才能 Timeout,显示 broken pipe。
PS: 浙江移动 100M 宽带,实测 NAT 限制数量在 2000 左右,就是到了 2000 个 TCP 并发链接后新的 TCP 链接就开不了了。

回复

purezhang

@likuku 嗯嗯,好办法

aphorism

一般使用 tmux,听说 Byobu 也不错。

确实电信通等很多宽带运营商都有这个问题。

WoodenRobot

我选 Tmux

luolufang

我也选 screen

FullBridgeRect

@likuku tmux 更好用点

likuku

ssh 登上远端机器立即就起 screen,在 screen 里做事,就算这边断掉也无所谓。

erlinux

ping gov.cn

des

不然尝试 mosh ?

EmmaSwan

雙向六十秒,重刷次數調高

stanjia

@Radeon
@wsy2220 学到了

wsy2220

echo "ServerAliveInterval 60" >> /etc/ssh/ssh_config

Smilecc

一般的 SSH Client 都会有发送空包保持存活的功能吧。
比如 Putty 在 Connection -> Sending of null packets to keep session active

solos

ServerAliveInterval ?

Radeon

ssh -o ServerAliveInterval=60 myname@myhost.com

↑