家里的路由器直接拨号连接外部网络, 上面配置了 DDNS 和端口映射。在公司 ssh 回去失败.
ssh home.xxx.xxx -p port
后命令一直卡在那里,没有响应,ctrl + c 也不会终止这个命令。目前有两个猜想:
还有其他可能原因吗?
1
ybf1220 2017-12-05 20:30:43 +08:00 via iPhone
ssh home.xxx.xxx -p port -vvv 看下调试日志
|
2
fzleee OP 在 ubuntu 的 /etc/ssh/sshd_config 最后添加一行
IPQoS 0x00 问题解决 |
4
fzleee OP @xustrive
按照这里的解释,IPQoS 指令用于 IP 层的 type-of-service,默认为“ lowdelay ” 和 "throughput". http://www.gsp.com/cgi-bin/man.cgi?topic=ssh_config 按照危机百科的介绍,( https://en.wikipedia.org/wiki/Type_of_service) 0x00 指的是设置为 cs0. 为什么修改这两个参数能够解决问题,我也不是很清楚。我是从这里找到的解决方案: https://github.com/guysoft/OctoPi/issues/294 我的路由器之前 WAN 口双播,不是很稳定。 在添加 IPQoS 0x00 指令前,每次 ssh 都会失败。 在添加 IPQoS 0x00 指令后,每次 ssh 都会成功,但是建立链接花费的时间很长, 比如 10 多秒后才成功。 之后我修改 WAN 口单播,ssh 一切正常了。 目前可以理解为路由器的性能在双播情况下处理数据包不稳定导致的 ssh 失败。 |