如何知道一台计算机使用哪个静态 IP 地址连接到另一台计算机?

如何知道一台计算机使用哪个静态 IP 地址连接到另一台计算机?

我有一个工作站连接到多个内部网络,每个网络都有一个不同的静态 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。

相关内容