使用我的 Android 手机作为热点,route -n
显示它的 IP 是 192.168.xx,我可以通过adb
或简单地 ping 它连接到它(获得答案)。
另一方面,我的手机(在“关于手机”部分)为我提供了 IP 10.xxx,我可以以与使用其他 IP 相同的方式连接到它或 ping 它。
我的外部IP完全不同(如图所示showmemyip.com
)
手机有两个内网IP吗?它们两者相等吗?
答案1
假设“关于手机”部分中显示的 IP 是您的手机从电话网络接收到的 IP 地址,则显示showmemyip.com
不同的 IP 地址表明网络运营商在其客户之间进行了网络地址转换(简称 NAT)和互联网。此类运营商级 NAT 通常无法设置客户指定的端口转发。
这通常意味着您可以建立出站连接,但由于您的 10.xxx IP 在全球范围内不是唯一的,因此互联网上的其他人无法与您的手机建立入站连接。对于基本用户来说,这可能是一个安全优势,但这也意味着您无法使用这种连接运行任何服务器或点对点连接。其他人能够通过 WiFi 联系您的手机或连接到手机的任何设备的唯一方法是,您使用的应用程序首先与互联网上的某个服务器建立出站连接,该服务器将充当“会面点”。
当您将手机用作热点时,它实际上就变成了一台路由器,其中一个 IP 地址位于“外部”网络(本例中为手机网络),另一个 IP 地址位于“内部”网络(热点)。但由于电话仅从电话网络接收单个 IP 地址,因此它必须设置另一个 NAT 层,以便能够为其他设备提供网络连接。这种“双 NAT”情况可能会导致比单 NAT 层更多的问题,例如对于某些(较旧的)VPN 解决方案。
通常(但并非总是)具有多个 IP 地址的系统将使用属于该系统的任何 IP 从任何“方向”接受传入流量。例如,如果您使用手机的 10.xxx 地址从热点网络连接到它,手机的网络驱动程序将检测到,如果地址是字面意思,则数据包需要从外部接口出去,然后正确到达回来,并跳过不必要的狗腿。
答案2
您的手机可能会根据您的连接方式(例如通过 USB 电缆或通过 WIFI)提供不同的内部 IP。
答案3
您可以拥有与连接到网络的接口一样多的内部/外部 IP 地址。您连接的每个网络都会为您分配一个内部 IP 来与您通信,如果路由器/任何主要设备连接到互联网,它都会为您提供来自 ISP 的外部 IP 地址。例如,我有一个内部 IP 192.168.0.107,其中 wlan0 和 usb0 中的 10.42.0.x(USB 网络共享)。它们不一样。连接在同一网络 192.168.0.107 中的设备无法使用 10.xxx 地址与您的设备通信,反之亦然。