1
warcraft1236 2017-08-01 18:36:15 +08:00
重装系统
|
2
linhua 2017-08-01 19:09:18 +08:00 1
看看 Mac 防火墙设置,VirtualBox 联网不受防火墙影响
具体的,可用 wireshark 抓包,不过 wireshark 不能对 VirtualBox 抓包(不能抓到从 virtualBox 出去的包,只能抓到进来的包) |
4
ety001 OP @linhua #2 刚看了,防火墙是关闭的。印象中之前是安装过 Proxifier,这个软件会不会对系统的网络链路有影响?
|
5
ety001 OP ![12345.png]( https://i.loli.net/2017/08/01/59807247c6c56.png)
wireshark 的抓包也是出现在那个卡主的位置,就收不到服务器回给的响应了。 现在的情况总结下就是: 1. MacPro 无法 ssh 到远程的服务器 2. MacPro 可以 ssh 到同局域网下的服务器 3. MacPro 里的 VirtualBox 在 NAT 网络下可以 ssh 连接到远程的服务器 4. MacPro 里的 VirtualBox 在桥接模式下不能 ssh 连接到远程服务器 5. MacPro 里的 Docker 容器可以走 NAT 模式连接到远程的服务器 其他的情况: 1. 主路由是 TP-Link 刷的 OpenWrt,已经重置过配置 2. 网络是中国移动的网络,PPPoE 拨号后没有公网 IP 3. 目前为止,我的 MacPro 只发现在这个家的网络有这个问题,回到另外一个家,或者在咖啡厅,或者用手机热点都可以正常 ssh 到远程服务器,另外一个家的网络是联通的 4. 之前也是没有问题的,这个问题是突然出现的,且已经持续了有好几个月了 |
6
Lpl 2017-08-01 21:17:46 +08:00 1
看一下 `~/.ssh/known_hosts` 文件,看日志是 ssh 找到 ~/.ssh/known_hosts 文件中的某一条对应的了。
试一下这么做: - 清空 ~/.ssh/known_hosts 文件 - ssh [email protected] ,看是否能出现信息 另外,连不上的意思是:运行 ssh [email protected] 后卡着不动了,还是有一些出错信息? |
7
ety001 OP @Lpl #6 看下我之前的那个帖子的 ssh -vvvvv 的信息,其实已经验证都通过了,就是不知道验证后的哪一步卡主了,表面现象像是服务器不再继续响应了一样。
|
10
current 2017-08-01 22:20:06 +08:00
建议抓一下包,看看卡住那之前发了什么包,断开之前又是收到了什么包
|
11
Lpl 2017-08-01 22:25:02 +08:00
这样子,咱们重新考虑下解题思路,用排除法。
首先,由于你链接很多目标机器都是不行的,可以先排除目标机器有问题。 然后,你切换手机热点就能登录,可以发现问题是出在网络上,这个网络可能是你路由器的原因,也可能是网络运营商的原因。 这时候,麻烦你随便找一台能 ssh 的机器,做一下如下的操作,贴上一些信息: - ping ip - traceroute ip - telnet ip 22 做一下这三条命令把相关信息贴出来 |
12
ety001 OP @Lpl #9
我这里手头就一台电脑。。。 在我 mac 上执行结果 ➜ ~ ssh -V OpenSSH_7.5p1, OpenSSL 1.0.2l 25 May 2017 ➜ ~ traceroute cx.dev.aws traceroute to cx.dev.aws (52.36.88.202), 64 hops max, 52 byte packets 1 openwrt (192.168.10.1) 1.162 ms 0.817 ms 3.183 ms 2 10.202.128.1 (10.202.128.1) 2.279 ms 4.065 ms 2.137 ms 3 10.253.53.1 (10.253.53.1) 2.093 ms 1.588 ms 2.280 ms 4 * * 10.253.53.66 (10.253.53.66) 5.434 ms 5 218.201.122.29 (218.201.122.29) 3.356 ms 218.201.171.193 (218.201.171.193) 2.817 ms 218.201.122.29 (218.201.122.29) 3.261 ms 6 * * * 7 221.183.12.205 (221.183.12.205) 4.331 ms 221.183.26.121 (221.183.26.121) 6.540 ms 221.183.12.205 (221.183.12.205) 3.874 ms 8 221.183.10.26 (221.183.10.26) 43.694 ms 25.852 ms 221.183.36.9 (221.183.36.9) 19.855 ms 9 * * * 10 * * * 11 221.183.30.230 (221.183.30.230) 236.005 ms * 221.183.30.242 (221.183.30.242) 195.771 ms 12 223.118.10.154 (223.118.10.154) 202.130 ms 223.118.10.18 (223.118.10.18) 204.819 ms 201.587 ms 13 223.119.64.30 (223.119.64.30) 187.104 ms 223.119.64.38 (223.119.64.38) 201.632 ms 201.745 ms 14 54.239.102.56 (54.239.102.56) 199.599 ms * 210.335 ms 15 54.239.103.61 (54.239.103.61) 207.729 ms 54.239.102.223 (54.239.102.223) 206.440 ms 202.570 ms 16 54.239.42.116 (54.239.42.116) 245.681 ms * 54.239.42.118 (54.239.42.118) 296.105 ms 17 52.93.14.48 (52.93.14.48) 242.277 ms 52.93.13.2 (52.93.13.2) 220.075 ms 52.93.13.40 (52.93.13.40) 342.491 ms 18 52.93.12.33 (52.93.12.33) 405.642 ms 52.93.12.73 (52.93.12.73) 231.978 ms 52.93.14.251 (52.93.14.251) 233.059 ms 19 52.93.12.36 (52.93.12.36) 246.425 ms 52.93.15.30 (52.93.15.30) 232.340 ms 52.93.14.38 (52.93.14.38) 234.581 ms 20 52.93.14.57 (52.93.14.57) 231.434 ms 52.93.12.207 (52.93.12.207) 222.136 ms 52.93.15.53 (52.93.15.53) 224.676 ms 21 52.93.15.215 (52.93.15.215) 215.976 ms 54.239.48.183 (54.239.48.183) 227.565 ms 52.93.15.213 (52.93.15.213) 295.120 ms 22 * * * 23 * * * 24 * * * 25 * * * 26 * * * 27 x.dev.aws.canior.com (52.36.88.202) 231.117 ms 230.676 ms * ➜ ~ telnet cx.dev.aws 22 Trying 52.36.88.202... Connected to cx.dev.aws. Escape character is '^]'. SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.4 我在我的主路由上的执行结果如下: root@OpenWrt:~# ping 52.36.88.202 PING 52.36.88.202 (52.36.88.202): 56 data bytes 64 bytes from 52.36.88.202: seq=0 ttl=41 time=225.125 ms 64 bytes from 52.36.88.202: seq=1 ttl=40 time=227.555 ms 64 bytes from 52.36.88.202: seq=2 ttl=40 time=227.336 ms ^C --- 52.36.88.202 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 225.125/226.672/227.555 ms root@OpenWrt:~# traceroute 52.36.88.202 traceroute to 52.36.88.202 (52.36.88.202), 30 hops max, 38 byte packets 1 10.202.128.1 (10.202.128.1) 2.306 ms 2.553 ms 15.661 ms 2 10.253.53.1 (10.253.53.1) 1.418 ms 1.194 ms 0.936 ms 3 * * * 4 223.96.95.153 (223.96.95.153) 2.317 ms 218.201.171.193 (218.201.171.193) 1.724 ms 218.201.122.29 (218.201.122.29) 1.724 ms 5 * 120.192.97.101 (120.192.97.101) 9.342 ms * 6 221.183.27.89 (221.183.27.89) 3.481 ms 221.183.12.193 (221.183.12.193) 23.044 ms 221.183.26.121 (221.183.26.121) 2.877 ms 7 221.183.36.9 (221.183.36.9) 19.007 ms 14.025 ms 221.176.15.37 (221.176.15.37) 17.089 ms 8 * 221.176.21.230 (221.176.21.230) 18.245 ms 27.960 ms 9 * * * 10 221.183.30.242 (221.183.30.242) 186.954 ms 221.183.30.246 (221.183.30.246) 188.862 ms 200.030 ms 11 223.118.10.18 (223.118.10.18) 204.393 ms 223.118.10.86 (223.118.10.86) 195.973 ms 223.118.10.154 (223.118.10.154) 200.133 ms 12 223.119.64.38 (223.119.64.38) 206.754 ms 202.524 ms 208.163 ms 13 54.239.103.28 (54.239.103.28) 218.129 ms 54.239.102.104 (54.239.102.104) 196.180 ms 54.239.102.56 (54.239.102.56) 207.001 ms 14 54.239.102.87 (54.239.102.87) 201.614 ms 54.239.102.109 (54.239.102.109) 189.092 ms 54.239.102.221 (54.239.102.221) 214.834 ms 15 * * * 16 52.93.12.112 (52.93.12.112) 215.291 ms * 52.93.12.42 (52.93.12.42) 226.266 ms 17 52.93.14.219 (52.93.14.219) 227.360 ms 52.93.12.251 (52.93.12.251) 219.053 ms 52.93.14.39 (52.93.14.39) 225.515 ms 18 * 52.93.15.28 (52.93.15.28) 240.180 ms * 19 52.93.14.135 (52.93.14.135) 227.909 ms 52.93.15.59 (52.93.15.59) 226.461 ms * 20 52.93.15.209 (52.93.15.209) 222.906 ms 205.251.232.63 (205.251.232.63) 228.408 ms 52.93.15.237 (52.93.15.237) 219.540 ms 21 * * * 22 * * * 23 * * * 24 * * * 25 * * * 26 52.36.88.202 (52.36.88.202) 223.111 ms 230.957 ms 225.518 ms root@OpenWrt:~# telnet 52.36.88.202 22 SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.4 非常感谢你这么上心,不过按照我之前帖子,提出来的 ssh 的 debug 信息来看,我已经成功连接到服务器的端口上,并且完成了身份认证了,所以我觉得你给出的这三条命令,并不能看出来什么端倪。 另外关于『然后,你切换手机热点就能登录,可以发现问题是出在网络上,这个网络可能是你路由器的原因,也可能是网络运营商的原因』,其实很奇怪,如果说我网络有问题的话,我电脑里的虚拟机通过 NAT 应该也登陆不上去。而实际上我电脑里的虚拟环境(vbox 和 docker 容器)只要用 NAT 联网,就很正常的登陆远程服务器。我在我主路由上也尝试过登陆远程服务器,也是登陆不上去,跟我在 mac 上的表现一致。 |
13
ety001 OP 另外补充一点,我 Mac 挂 VPN 后,就可以正常的登陆远程服务器了。。。
|
14
jiangzhuo 2017-08-02 02:02:57 +08:00
大胆的猜测一下,中间有运营商劫持的设备程序写出 BUG 了,中间有什么地方触到墙的 G 点了
|
15
Lpl 2017-08-02 06:53:49 +08:00 1
traceroute 和 telnet 后看起来跟网络确实没得什么关系,实在很抱歉。在网上查了下资料,发现可能跟 OS X 系统的版本有关系。
附上两个可能有用的链接: - https://thecustomizewindows.com/2017/06/fix-write-failed-broken-pipe-packet_write_wait-connection-port-22-broken-pipe/ - https://discussions.apple.com/thread/7369445?start=0&tstart=0 另外附上我 Mac 的相关信息: - 系统版本:EI Caption 10.11.4 (15E65) - SSH 版本:OpenSSH_6.9p1, LibreSSL 2.1.8 希望对你有帮助 |
16
linhua 2017-08-02 08:37:28 +08:00
https://discussions.apple.com/thread/3266583?start=30&tstart=0
sudo sysctl -w net.inet.tcp.always_keepalive=9999 |
17
Sh888 2017-08-02 09:25:04 +08:00
ssh 协议在 7 月 1 日以后已经被墙。
|
18
ety001 OP |
19
ety001 OP @Lpl #15 再次感谢,看了下你给的文章,操作内容比较多,我觉得我还是不为了这个奇怪的问题冒险修改了,感觉风险有些大。
|
20
Sh888 2017-08-02 09:38:03 +08:00
@ety001 在公司网络有没有这个问题?我用 SSH 也是家用网络有问题,公司的固定 IP 就没有问题。墙现在也是分布式的部署。而且最近都在查国内 IP 上的 VPN 服务,不知道对 SSH 是不是也有新的策略。
|
21
ety001 OP @linhua #16 这个方案我尝试过,不行,我觉得苹果售后论坛上那些报 broken pipes 错误的人,可能是所有的网络环境下都不行。
|
23
ety001 OP |
24
ety001 OP |
25
ety001 OP |
26
Lpl 2017-08-02 09:57:37 +08:00
@ety001 现在应该就剩下两方面的原因了:一个是你路由器的问题,一个就是运营商的问题。如果你能有一个 PC 机,可以通过直连网线不过路由器的方式测试下 ssh,再用 PC 通过路由器的方式测试下。基本就能找到问题出在哪了。。
可惜的是,你现在手边只有一个 Mac,啊哈哈。我家里电信宽带,没公网 IP,ssh 境内境外的机器的时候有时候就会抽风,连的时候卡那不动,但是能 ping 通(最近一个月出现的事情)。 |
27
ety001 OP @Lpl #26 路由估计应该可以排除,因为我路由重置过了,应该没有什么配置会影响到。看你的情况,现在只能认为是运营商的问题了
|
28
current 2017-08-02 20:54:24 +08:00 1
@ety001 从 NAT 可以连接而 Bridged 无法连接这点来看,我不太倾向于是 ISP 的问题,理论上来说你的 NAT 设备( VMNET/路由器 /交换机)后面的东西对于 ISP 来说是不可见的,因此 ISP 应该不具备区分这种情况的能力。
我个人倾向于认为是虚拟机在系统中插的 TAP/TUN 设备对系统造成了一些意料之外的影响,或是路由器对这种情况的处理有一些问题 |
29
linhua 2017-08-02 21:43:42 +08:00 2
移动 号称 墙中墙
从抓包中可以看出 服务器没有向客户端返回包,导致客户端不断重发。 应该同时在服务端抓包,比较一下服务端和客户端的抓包数据,看看服务端是否收到客户端发来的包 可能是 Mac 的 SSH 客户端发了什么 带有特征的数据 触发了移动的 RST,而虚拟机中 Linux 系统的 ssh 客户端没有发送这些特征数据 你在 Mac 下可以换个 SSH 客户端试试,或自己编译一个 https://github.com/mimecuvalo/firessh https://www.termius.com/ https://github.com/Crystalnix/termius-cli https://superuser.com/questions/961349/building-openssh-for-os-x https://github.com/gravitational/teleport http://gravitational.com/teleport/docs/2.0/architecture/#teleport-cli-tools 额外的可以测试一下,启动 U 盘内的 Ubuntu 系统,使用里面的 SSH 客户端,不用虚拟机 https://tommy.net.cn/2016/07/20/create-a-bootable-ubuntu-usb-stick-on-mac-os-x/ |