分析 connection refuse

目录

有时我们 telnet 一个端口的时候可能会报 connection refuse 我们需要判断这个是在哪个地方被拒绝的。

案例

jimila@CDYJY-JINGML:~$ telnet 172.24.7.165  22000
Trying 172.24.7.165...
telnet: Unable to connect to remote host: Connection refused

分析

ping

# 先 ping 一下看是否是服务宕机了
jimila@CDYJY-JINGML:~$ ping 172.24.7.165 -c5
PING 172.24.7.165 (172.24.7.165) 56(84) bytes of data.
64 bytes from 172.24.7.165: icmp_seq=1 ttl=53 time=37.4 ms
64 bytes from 172.24.7.165: icmp_seq=2 ttl=53 time=37.4 ms
64 bytes from 172.24.7.165: icmp_seq=3 ttl=53 time=38.4 ms
64 bytes from 172.24.7.165: icmp_seq=4 ttl=53 time=38.1 ms
64 bytes from 172.24.7.165: icmp_seq=5 ttl=53 time=36.1 ms

--- 172.24.7.165 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 36.127/37.525/38.421/0.806 ms

# 我们发现服务器没有宕机,然后这时注意观察一下 TTL=53,因为我们是 Linux 的设备初始的 TTL=64,所以我们可以判断我们到 172.24.7.165 间有 11 个设备
# 如果我们确认 22000 端口是开通的,那么很可能是被中间的设备给 reset 掉了。

抓包查看 TTL

# 我们在一个终端执行抓包
jimila@CDYJY-JINGML:~$ sudo tcpdump -i enp2s0 host 172.24.7.165 -s0 -w 165.pca

# 在另外一个终端执行
jimila@CDYJY-JINGML:~$ telnet 172.24.7.165  22000
Trying 172.24.7.165...
telnet: Unable to connect to remote host: Connection refused

查看一下我们抓的包

analyze_connection_refuse_1.png

      这时我们发现拒绝的包的 TTL=62 所以我们可以判断这个拒绝的包发出和我们隔了 2 个设备

mtr

# 有了上面的判断,现在我们需要看一下距离我们两个设备的 IP 是什么
jimila@CDYJY-JINGML:~$ mtr -n 172.24.7.165

目录