在排查网络故障时常遇到对方给出的 IP 并非实际访问 IP(比如 SNAT ),这时往往只能被动的等待,其实只要一些简单的方法便可以知道对方的访问 IP。
通过 tcpdump
tcpdump
是 Linux 的抓包工具,可以获取所有经过网络接口的数据信息,其中就包括 ICMP:
然后让客户侧 ping 服务端的 IP 地址,服务端便会显示捕获的数据,其中就包含 IP:
参数说明:
- -i:指定监听网卡为 eth0;
- icmp:指定协议为 icmp
通过 telnet
telnet 对双方来说应该是最便捷的一种方式,只要让客户侧 telnet 指定端口即可:
然后在服务端运行:
便可以在其中找到一条数据:
通过 ssh
类似 telnet,只要发起 ssh 请求,无需输入密码便能在服务端看到请求的实际 IP:
还有一种情况时连接 ssh 后,想查看当前连接 IP,此时可以通过 Linux 内置命令查看: