分析办公网到服务器三次握手后就被 RST 的原因

某云上的主机正常运行,并且没有改动过防火墙配置,今天突然无法 SSH 上去:

$ ssh 193.1*.*.*
kex_exchange_identification: read: Connection reset by peer
Connection reset by 193.1*.*.* port 22

但用其他机房做跳板可以正常登录访问,除了无法 SSH,上面运行的 HTTP 等服务也不能访问,所以我就直接排除了 SSH 服务的问题了。

本地抓包后发现所有到云主机的 TCP 连接都在三次握手后被 RST 了:

147	11.487757612	10.8.*.*	193.1*.*.*	TCP	74	59888 → 22 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=540205292 TSecr=0 WS=128
148	11.492035973	193.1*.*.*	10.8.*.*	TCP	60	22 → 59888 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0
149	11.492069698	10.8.*.*	193.1*.*.*	TCP	54	59888 → 22 [ACK] Seq=1 Ack=1 Win=64240 Len=0
150	11.492196198	10.8.*.*	193.1*.*.*	SSHv2	75	Client: Protocol (SSH-2.0-OpenSSH_8.3)
151	11.499610861	193.1*.*.*	10.8.*.*	TCP	60	22 → 59888 [RST, ACK] Seq=1 Ack=2 Win=0 Len=0

用其他主机做跳板登录到云主机上抓包发现也能正常收到握手包,因此说明办公网到主机实质是可以正常通讯。

但有意思的来了,服务器上抓包显示三次握手后,是我们办公网(222.2*.*.* 是办公出口 IP)主动发出的 RST:

8	5.378818	222.2*.*.*	10.18*.*.*	TCP	54	39524 → 22 [RST] Seq=1 Win=0 Len=0

也就是双方刚建立起通讯就各自收到了对方的 RST,说明是中间有安全设备给阻断了,一路到处问才发现内网刚上线一台设备,云主机 IP 给误拦了。