我有一个工作站连接到多个内部网络,每个网络都有一个不同的静态 IP 地址。通过其中一个网络,我可以通过 ssh 连接到服务器。我如何知道我的工作站的哪个 IP 地址用于连接到服务器?据我所知,两台计算机之间没有 NAT。
答案1
在 Linux 机器上,你可以找到用于连接的源 IPip route get $destination_ip
这是与下一跳直接连接的接口的主 IP。
答案2
通过ssh
?
server$ echo $SSH_CLIENT
1234:5678:90a:bc::805f:c436 58642 22
server$
答案3
如果您使用的是 Windows,请使用tracert <destination IP>
源计算机来查找到达目的地的路线。
答案4
您可以使用 traceroute 并查看它来自哪个 IP。或者在 ssh 连接到服务器后检查:
who am i
最后一个字段是您的 IP 或 fqdn(如果它有反向 DNS 条目)。
另一个选择是,通过 ssh 连接到你的服务器后,执行以下操作:
tcpdump -nnpi any icmp
然后从工作站的另一个终端 ping 该主机。您将在 tcpdump shell 中看到来自工作站 IP 的 icmp 数据包
现在我想起来了,你甚至不需要访问服务器,你可以在你的主机上启动 tcpdump 检查所选未使用端口的数据包,比如说 121345,在你的工作站的一个根 shell 上:
tcpdump -nnpi any port 12345
然后从工作站上的普通终端窗口:
telnet server 12345
或者:
nc server 12345
在 tcpdump shell 上,您将看到用于连接服务器的 IP。