获取路由器公网 IP 地址的命令

获取路由器公网 IP 地址的命令

我的家庭网络上有两台 18.04.2 Ubuntu 计算机,位于同一路由器后面。

在每台计算机上,如果我运行此命令:

curl -4 ifconfig.me

我在每台机器上都得到相同的结果,即当前分配给路由器的动态公共 IPv4 IP 地址:XX.XX.XX.XX。

然后,在计算机 #1 上启动 VPN。当我运行相同的 curl 命令时,我得到了不同的结果,即 VPN 分配的 IP 地址:YY.YY.YY.YY。

问题:当 VPN 在计算机 1 上处于活动状态时,我在计算机 1 上运行什么终端命令来找出路由器当前为计算机 2(未使用 VPN)分配的动态公共 IPv4 IP 地址?

答案1

你可以问路由器。

如果它支持 UPnP,那么您可以upnpc使用迷你UPNPC包裹

尝试:

upnpc -s

或者

upnpc -m enp1s0 -s

明确指定界面使用。因此请更改enp1s0以适合您的设置。显然,不要使用接口tun0VPN,如果有的话。

答案2

问题:当 VPN 在计算机 1 上处于活动状态时,我在计算机 1 上运行什么终端命令来找出路由器当前为计算机 2(未使用 VPN)分配的动态公共 IPv4 IP 地址?

一般答案是不能。而且,如果配置更复杂,则无法保证公共 IP 属于最近的路由器(运营商级 NAT、私有IP空间中的多个路由器、代理服务器等等)。

您可以为 添加路由ifconfig.me。这有点复杂,因为域指向至少四个 IP,并且托管在 Google Cloud 中,我也不认为这些 IP 完全是静态的。

在更复杂的配置中,您也无法保证两台不同的计算机会从同一个公共 IP 退出。

总的来说,这闻起来就像XY问题。为什么要查找计算机#2的公网IP?

相关内容