![如何将端口转发至私有 IP 设备上的特定端口?](https://linux22.com/image/1494313/%E5%A6%82%E4%BD%95%E5%B0%86%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E8%87%B3%E7%A7%81%E6%9C%89%20IP%20%E8%AE%BE%E5%A4%87%E4%B8%8A%E7%9A%84%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
关于端口转发的主题,我正在尝试允许互联网上的外部设备与特定端口上的 PC 进行通信(例如,我 PC 上的端口 10,000)。
但是,端口转发似乎只允许您指定路由器上的端口,如果收到数据,则将其转发到指定的私有 IP 设备。
那么这是如何工作的呢?假设我将路由器配置为转发私有 IP 设备 192.168.1.29 的通信,如果路由器在端口 10,000 收到数据。我该如何将这些数据转发到私有 IP 设备上的端口 7777?这可能吗?
我觉得我可能不明白端口转发实际上是如何工作的。
我很感激任何帮助!
答案1
答案2
您说的没错。您的路由器将有一个端口转发配置页面,您可以在其中输入这些值。您需要以下信息:
- 原始端口(由源设置):从互联网到路由器的外部使用的端口,在您的示例中为 10000。
- 目标端口:在 LAN 上用于转发流量的端口。它可能与源的原始端口请求不同 - 在您的示例中,该端口为 7777。
- 目标 IP 地址:LAN 上接收流量的服务器的 IP 地址。这需要是固定(非 DHCP)地址,或者您必须配置保留的 dhcp 地址对于作为服务器的 PC。
- 流量类型:UDP、TCP 或两者
对于路由器来说,将流量转发到与接收流量不同的端口是微不足道的。端口是一种软件构造,可以任意分配(这并不是说它没有影响 - 当然可以 - 但不是在物理意义上)。UDP(一种无连接的数据报通信方法)和 TCP(一种面向连接的协议)都将源端口号和目标端口号嵌入到每个数据包的段头中。实际上,路由器将把目标端口地址替换为请求的端口。
端口转发与网络地址转换 (NAT) 密切相关,后者是将本地私有 IP 地址转换为路由器维护的单个公共 IP 地址的过程。由于 NAT 的工作方式,在正常的 NAT 配置中,路由器不可能知道来自互联网的未经请求的流量是发往 LAN 上的特定 IP 地址的,而是路由器跟踪给定客户端/IP 地址的传出流量,并且(对于大多数家用路由器)使用端口地址转换 (PAT) 来跟踪哪些流量属于 LAN 上的哪个主机。
它通过将传出流量中的源地址替换为指定给该本地主机的地址来实现此目的。与之通信的外部(互联网)服务器会将该端口嵌入为响应中的目标端口,因此路由器将能够将该流量“转换”到正确的本地计算机。
端口转发在一定程度上解决了这个问题 - 从可用于 PAT 的端口池中删除请求的端口(来自互联网的源端口),并简单地将该端口上接收的所有流量定向到配置的本地 IP 地址。
需要明确的是 - 这是对相当复杂的东西的过于宽泛的概括 - 这绝不是一个全面的概述。