您可以将相同的端口转发到 2 个不同的内部 IP 地址吗?

您可以将相同的端口转发到 2 个不同的内部 IP 地址吗?

如果我在我的电脑上转发端口 80 UDP,我可以从我的另一台笔记本电脑访问端口 80 吗?

答案1

您在这里问了两个不同的问题。

您可以将相同的端口转发到 2 个不同的内部 IP 地址吗?

不。想想看。如果一个数据包到达你的外部地址和 UDP 端口 80(假设你只有一个外部 IP 地址),你的路由器如何知道哪个应该转发到两个内部 IP 地址中的哪一个?

如果您想要托管两个不同的服务,则每个服务都需要一个单独的端口。

如果我在我的电脑上转发端口 80 UDP,我可以从我的另一台笔记本电脑访问端口 80 吗?

是的。端口转发通常只影响端口 80 上的数据包你的端。当有人尝试连接您时,您的路由器将看到:

  • 从其他计算机的随机端口 X 传入数据包到你的端口 80
  • 从你的 80 端口向别人的 X 端口发出回复

但传出连接(当如果您访问其他地方的网页,从路由器的角度来看,情况就会相反。

  • 从随机端口 X 向另一台计算机(Web 服务器)的端口 80 发送数据包
  • 从对方的端口 80 传入回复到你的端口 X

因此端口转发根本不会影响这些。

(顺便说一下,HTTP 通常运行在TCP。只有 Chrome 的 QUIC 实验使用 UDP。)

答案2

您可以将相同的端口转发到 2 个不同的内部 IP 地址吗?

是的,你绝对可以这样做UDP并且在某种程度上TCP

自从UDP是无连接无状态协议,您可以监听特定端口,一旦数据包到达,您就可以复制它并发送到两个不同的内部目的地。由于没有握手或状态跟踪,所有目的地都能够成功接收这些数据包。取样器是可以为您完成此操作的程序之一。请注意,根据其定义,这不是纯粹的端口转发。

这可能适用于TCP,但有一些限制 - 您可以监听特定端口,一旦数据包到达,您就可以将其转发到池中的特定内部主机。 TCP 使用连接,因此一旦您将初始数据包转发到特定内部主机,现在就需要将此会话中的其余数据包转发到同一内部主机。

通过使用此技术,您可以让多个后端服务器处理对一个外部目的地的请求。

如果我在我的电脑上转发端口 80 UDP,我可以从我的另一台笔记本电脑访问端口 80 吗?

这个问题有点不清楚。如果您将流量从外部地址转发到内部主机之一,那么仅凭这一事实并不能阻止您从内部网络访问同一端口。

假设你将端口 80 从 转发AB。同时C将能够直接访问 上的端口 80B而不会出现任何问题。

     A (external IP)
     |
 ---------
 |       |
 B       C

答案3

您不能同时将同一个端口转发到多个 IP,我甚至还没看到有路由器/托管交换机能让您这么做而不返回配置错误消息。 您可以为多个 IP 设置它,但一次只能启用一条转发规则。 因此,您可以禁用一个启用另一个,反之亦然,但这是一种浪费 只有在您想通过外部 IP 地址访问 LAN 计算机上的特定端口/服务时,才需要担心转发端口。 假设您想在 2 台 LAN PC 上运行 2 个 Web 服务器,并且能够始终访问它们,那么最简单的方法是更改​​服务的端口,让一个监听端口 80,另一个监听 8080 或您想要的端口。 99% 的服务允许您在任何您想要的端口上托管/监听。 如果您不指定端口,它将恢复为服务默认值。还有其他更先进的方法,但这是最简单的方法,并且先进的方法不被考虑或称为“端口转发”,任何持不同意见的人都需要回到网络学校。

答案4

您可以在内部使用代理,例如 WAP 服务器,它可以根据 http 标头的主机属性确定哪个服务器应处理请求...此外,端口转发也需要指向此代理

相关内容