我有一个家庭本地网络,有两台机器连接到路由器:
- Linux Ubuntu x86_64
- Linux Ubuntu Arm aarch64(无头,无 GUI)
我试图ip r
找出两台机器的公共IP。这适用于第一台机器,给出123.456.789.123 via 192.168.5.1
。但是当我从 x86_64 机器登录 Arm 机器时,相同的ip r
命令只给出本地 IP: 192.168.5.163
。
第二台机器有公共IP吗?如何找到它?
答案1
两台机器都没有公共 IP 地址。
您的路由器有一个公共 IP 地址,您可以选择在路由器上配置端口转发,以将该公共 IP 地址和端口的流量发送到内部网络上的设备。
答案2
我假设您有标准的家庭设置。
您可以通过以下方式获取 Linux 的 IP 地址:
ip addr
这将为您提供分配给系统上不同接口的 IP 地址列表。它们都在私有范围内 (192.168.5.xx)。
您的路由器将执行从这些私有空间地址到您拥有的公共 IP 地址的 NAT 转换。在路由器的 GUI 或 CLI 访问中的某个位置,您也可以获得路由器的 IP 地址(具体操作方法因一台路由器而异)。您将看到路由器的一个接口(连接您的 Linux 系统)上有 192.168.5.1,而另一接口(连接您的提供商)上有 123.456.789.123。
您ip r
提供的是路由表,而不是系统上的地址。你会看到类似的东西
default via 192.168.5.1 dev wlp2s0 proto dhcp metric 600
这意味着您的传出路由器被定义为默认网关。