答案1
外部网站(例如 whatismyip 等)看到的您的服务器 IP 是您的服务器从路由表中获取的 IP。
$ ip route
default via x.x.x.x dev ethX ...
10.0.0.0/16 dev ethY ...
....
如果您尝试连接的站点的 IP 位于路由表中指定的子网中,则源 IP(您的 IP)和传出接口都将从此特定路由中获取。例如:whatismyip.net 的 IP 是 10.0.0.1,当您向其发送流量时,您的服务器将使用 ethY 接口和 ethY IP。
否则,如果站点不匹配任何子网,则使用默认路由。在示例中,服务器将通过 ethX 接口发送流量,并以 ethX IP 作为源。
在您的上下文中,似乎您的默认路由是通过 eth0。
要使用另一个接口/IP:
您可以为某些命令指定传出接口,然后指定源 IP,例如。
ping -I ethY whatever.net ping -I eth0.Y whatever.net curl --interface eth0.Y wtfismyip.com/text
或者,您可以为 MY_REMOTE_IP 添加新路由,这将强制使用给定接口或源 IP 进行通信。在上面的示例中,MY_SECOND_IP 是 ethY 接口的 IP
$ ip route add MY_REMOTE_IP dev ethY src MY_SECOND_IP $ ip route add MY_REMOTE_IP dev eth0.Y src MY_SECOND_IP
否则,在某些命令中,您可以强制执行源 IP,例如。
ssh -b MY_SECOND_IP user@MY_REMOTE_IP