我是网络世界的新手...
所以我会简化很多并错误地解释技术细节,以使我的答案更容易理解。
我可以从 192.168.1.x 网络 ping 网络 10.0.0.x 的设备,但反之则不行。
技术背景
显然,您没有“真正的”子网,但您使用所谓的“NAT”。
NAT 路由器不会“真正”路由 IP 数据包,但它们会模拟与网络中其他计算机不同的网络拓扑。
典型的 NAT 路由器有两个方面:本地网络(在您的情况下:192.168.1.x)和互联网(在您的情况下:10.xxx)。
对于本地网络中的计算机,NAT 路由器“模拟”网络拓扑,其中“本地”计算机“直接”连接到 Internet。换句话说:它“模拟”了一个网络拓扑,其中 10.1.2.3 可以直接向地址 192.168.1.123 发送数据。
对于互联网中的计算机,NAT 路由器“模拟”整个网络 192.168.1.x 是一台计算机:在您的情况下为 10.0.0.160。
因此,如果 192.168.1.123 与 10.1.2.3 建立连接,则 NAT 路由器“模拟”网络,使 10.1.2.3 会“认为”存在与(来自)10.0.0.160 的连接,而不是与 192.168.1.123 的连接。
这是因为几乎所有互联网服务提供商都只支持一台计算机连接到互联网连接。使用 NAT 路由器,您可以将多台计算机连接到 Internet 连接,而路由器会模拟仅连接一台计算机。
你的问题
您当然可以建立从 192.168.1.123 到 10.1.2.3 的连接:
如前所述,10.1.2.3 将“认为”连接是从 10.0.0.160 建立的,而不是从 192.168.1.123 建立的。
但是与 192.168.1.123 建立连接不起作用:
首先10.1.2.3不知道192.168.1.123;它“认为”这台计算机的地址是 10.0.0.160。
其次,您可以在系统中添加第三个 NAT 路由器:10.0.0.161。
您可以将另一台地址为 192.168.1.123 的计算机连接到该路由器,这样整个网络中就有两台计算机具有相同的地址。
应与两台计算机中的哪一台建立连接?
由于这个原因,NAT 路由器将不支持这一点。
您也可以尝试建立到 10.0.0.160 的连接,因为 10.1.2.3 认为 192.168.1.123 的地址是 10.0.0.160。
然后你会遇到NAT路由器不知道是连接到192.168.1.123还是到192.168.1.145的问题。
然而,许多 NAT 路由器可以配置为从互联网 (10.1.2.3) 到路由器 (10.0.0.160) 的某些类型的连接(例如 HTTP)实际上会与路由器后面的某台计算机建立连接(例如 192.168.1.123 )。此功能通常称为“端口转发”。