ssh 的端口映射失败,抓了个包,可以看出什么毛病来吗?

2017-12-05 19:49:23 +08:00
 fzleee

家里的路由器直接拨号连接外部网络, 上面配置了 DDNS 和端口映射。在公司 ssh 回去失败.

  1. 家里有两台机器,其中一台树莓派,多次尝试后会有一次成功。另外一台 ubuntu,几乎连不上。
  2. 树莓派 ssh ubuntu 服务器,没有问题,在家里内网 ssh ubuntu 没有问题。
  3. 连不上的表面现象是ssh home.xxx.xxx -p port 后命令一直卡在那里,没有响应,ctrl + c 也不会终止这个命令。
  4. ssh 的时候,我在家里的机器上抓了个包,截图在后面

目前有两个猜想:

  1. 梅林路由器固件不稳定导致
  2. 有墙

还有其他可能原因吗?

2572 次点击
所在节点    问与答
5 条回复
ybf1220
2017-12-05 20:30:43 +08:00
ssh home.xxx.xxx -p port -vvv 看下调试日志
fzleee
2017-12-05 21:07:32 +08:00
在 ubuntu 的 /etc/ssh/sshd_config 最后添加一行
IPQoS 0x00

问题解决
xustrive
2017-12-06 09:47:38 +08:00
@fzleee IPQoS 0x00 是啥意思 百毒没有
fzleee
2017-12-06 10:19:00 +08:00
@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 失败。
xustrive
2017-12-06 11:33:11 +08:00
@fzleee #4 谢谢,以前我也用过双播,使用后感觉反而体验感觉变慢了. 就未再使用过了.~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/412269

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX