我确实意识到大多数 LAN 位于运行 NAT 的设备后面,它将用户的私有 IP 地址转换为公共 IP 地址。我的问题仍然是,如果您尝试连接到私有设备,互联网如何知道您连接的是哪个私有 IP,因为许多 LAN 都有可能使用该 IP 地址?是不是只能使用公网IP地址连接?
多台设备如何通过互联网共享一个IP?
为了让 Internet 上的某些设备入站连接到您的专用网络上的设备,您必须使用 NAT 配置。在诸如电缆调制解调器/路由器之类的住宅设备上,这通常称为端口转发。这么想吧。如果您使用单个公共 IP 地址并在多个私有地址之间共享它,您必须告诉电缆调制解调器/路由器,如果我在 TCP 端口 80 上的公共 IP 地址上收到连接,那么它应该转到以下私有地址xxxx 端口 80(或您真正想要的任何端口)。这为调制解调器/路由器提供了足够的信息,以成功地将数据包从 Internet 上的设备传送到内部设备。
是不是只能使用公网IP连接?
基本上,是的。连接到公共 Internet 的每个 IP 地址都应该是唯一的*。IP 的前提之一是每个设备都有唯一的 IP 地址和端到端连接。NAT 打破了这一点,以尝试扩展 IPv4,直到 IPv6 无处不在,这将恢复独特的寻址和端到端连接。
*共享公共地址也是有原因的。Anycast 使用此功能通过在不同位置具有相同地址的多个设备来提供更多本地化服务。IP 路由会将数据包定向到最近的(根据网络协议)设备。
在考虑来自专用 LAN 的 Internet 流量时。它是出站流量(从内到外)。
NAT 过载或端口地址转换被配置为将许多私有 IP 地址转换为 ISP 提供的公共 IP 地址
假设 LAN 子网为 10 213.0.0/21
Router(config)#access-list 101 permit IP 10.231.0.0 255 .255.248.0 0 Any
Router(config)# IP NAT inside souce list 101 overload F0/1 interfàce
F0/1 是连接 ISP 链路的出口接口。
当局域网用户访问 google . PC 的私有 ip 地址是源转换发生到分配的公共 ip 地址。随机生成的源端口生成在保存在NAT表中。该源端口用于将流量返回到目的地,以纠正验证 NAT 表源端口的源 PC。
其他答案都不正确。要从外部 PC 启动连接,您必须拥有公共 IP 地址。一个 IP 地址看起来像这样 111.222.333.444 没有别的东西存在,如果你进行了 DNS 查找,你得到的就是这些。
但是,本地设备可以运行多个程序,每个程序都可以附加到一个端口号 - 因此对于网络服务器,程序始终在端口 80 上运行,通过在 IP 地址后添加 :80 来显示。
所以聪明的一点是使用你的路由器来理解端口——这样约翰的 PC 可以有一个私有 IP 地址(例如 10.0.0.1),可以在每个房子或办公室重复使用。路由器通过将其更改为公共 IP 地址并在末尾添加一个随机数作为端口来更改此设置,例如 10.0.0.1 = 123.0.0.456:99999 它将信息发送出去。当回复回来时,端口 # 仍然连接,路由器知道将回复的 IP 数据包发送到哪里。这就是 NAT 的作用。
这里软件会自动分配端口号。但它不能反向工作,因为路由器(使用 NAT)必须分配端口号。如果外部人员输入了 IP 地址并给出了一个随机端口号,路由器将不知道如何处理传入的数据包。
我们可以做的是对路由器进行预编程(即人类这样做)以知道这两个地址匹配。完成后,它会发现数据包上的尾随端口#,知道将外部传入数据包发送到哪个内部(私有)IP 地址;这称为端口转发。
一个简单的用途是用于网络服务器 - 公共内容出现在端口 80 上,管理后端出现在端口 8080 上。两个程序都在同一台计算机上运行。管理员在连接到管理面板时只需添加 :8080