为什么需要“端口转发”?

网络工程 互联网
2021-07-24 22:35:10

一个简单但重要的问题。

为什么作为程序员,我需要"port forwording"在我的世界中使用这句话,如果我使用我的语言中有一个简单的工具,称为"bind()""listen()" "accept()"它可以帮助我在我决定的 sime 端口中作为服务器监听客户端?

2个回答

我会尽量通俗地解释。当 WAN 侧(例如 Internet)的主机需要联系位于调制解调器 LAN 侧的专用服务器/PC 时,端口转发的概念就出现了。

由于技术限制,不可能为世界上所有的客户端拥有一个 IPv4 公共地址,但是这个问题可以通过端口转发来解决。

用例 #1

让我们假设您有一个来自 ISP 的调制解调器的静态公共 IP 地址 (111.22.33.44)。您还有一台 linux PC 连接到具有私有 IP 192.168.1.15 的调制解调器。

在这种特殊情况下,无法从 WAN 侧/互联网访问 PC 主机。想象一下,您在度假时必须通过 SSH 访问 LAN PC。

如果您可以在调制解调器中启用 SSH 端口转发(端口 22)到目标 IP 192.168.1.15,那么只需访问 111.22.33.44 IP 地址的 ssh,就可以从 Internet 访问同一台 PC。当调制解调器在其 WAN IP 的 22 端口收到 TCP 同步数据包时,它会负责路由。

作为程序员,你真的不需要。这是网络功能,通常用于通过公共网络连接到位于 NAT 之后的服务器。有时也可用于将 TCP/UDP 端口 X 转换为端口 Y 或类似网络需要