如果我打算使用像
ssh username@public_ip
这样的命令通过 SSH 连接到服务器,如果有多个路由器具有相同的公共 IP,会发生什么情况?请求发送到哪个路由器以及它是如何工作的?
示例: 我与邻居共享相同的公共 IP,并且我们碰巧在同一端口上有 ssh 服务器。当外部人员尝试 ssh 时,它如何知道要联系哪个路由器?
具有开放IP的独立路由器 当您向
ssh username@public_ip
提交 SSH 请求时,它会到达您拥有的具有公共 IP 地址的路由器。
传入的 SSH 查询(默认情况下在端口 22 上发送)可以由路由器通过端口转发(也称为 Destination NAT
)路由到特定的内部设备(例如具有私有 IP 地址的服务器)。
多个路由器声明同一公共 IP 由于公共 IP 地址由 ISP 管理并保持不同,因此公共互联网上很难有多个具有相同地址的路由器。
如果指定了主机名,当您尝试使用
username@public_ip
加入时,您的客户端 (SSH) 将使用 DNS 来解析公共 IP 地址。然后它将数据包传输到互联网。互联网路由器使用路由表将数据包路由到预期的 ISP,并最终路由到已分配该公共 IP 地址的特定路由器。如果设置了端口转发,则具有公共 IP 的路由器将通过网络地址转发请求转换(NAT)到相关内部设备。
在专用网络中,设备被分配唯一的 IP 地址,可用于连接到其他专用网络。对于互联网连接,NAT 将这些私有 IP 地址转换为路由器的公共 IP。
根据我在互联网上读到的内容......