我的家庭网络上有两台 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 地址?
你可以问问路由器。
如果它支持 UPnP,那么你可以
upnpc
从miniupnpc包中使用尝试:
或者
明确指定要使用的接口。因此,请更改
enp1s0
以适合您的设置。显然,不要使用tun0
接口或VPN使用的接口,如果有的话。一般的答案是你不能。并且对于更复杂的配置,您不能保证公共 IP 将属于您最近的路由器(运营商级 NAT、私有 IP 空间中的多个路由器、代理服务器等)。
您可以为
ifconfig.me
. 这有点复杂,因为域指向至少四个 IP,并且托管在 Google Cloud 中,我也不会打赌这些 IP 是完全静态的。在更复杂的配置中,您也无法保证两台不同的计算机将从同一个公共 IP 退出。
所有这些都闻起来像一个XY 问题。为什么要查找计算机#2 的公共 IP?