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

Oct*_*cat 17 networking router internet

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

use*_*686 14

你在这里问两个不同的问题。

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

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

如果要托管两个不同的服务,则需要为每个服务提供一个单独的端口。

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

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

  • 从其他计算机的随机端口 X 到您的端口 80 的传入数据包
  • 从您的端口​​ 80 到其他端口 X 的传出回复

但是传出连接(当在别处访问网页时)将从路由器的角度将其颠倒。

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

所以端口转发根本不会影响这些。

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


VL-*_*-80 6

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

是的,您绝对可以使用UDP并在某种程度上使用TCP来做到这一点。

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

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

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

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

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

假设您将端口 80 从 转发AB。同时C就可以直接访问80端口就B没有任何问题了。

     A (external IP)
     |
 ---------
 |       |
 B       C
Run Code Online (Sandbox Code Playgroud)

  • 1)问题没有说明它必须是消费级设备。2)不管你写了什么,我描述的技术都是有效的。 (4认同)
  • 这个答案很好。我正要说类似的话。对于 UDP,这就是多播和 IGMP 的全部意义所在。TCP,是的,轮询,故障转移等...是的,路由器可以做到这一点——今天的路由器不是 90 年代的盲设备。这个问题很模糊,可以允许多次阅读,但这也是我阅读问题的方式。 (4认同)
  • 问题是关于路由器。没有消费级路由器具有您描述的 UDP 复制/TCP 负载平衡功能,而且这些功能都称为“端口转发”。 (2认同)
  • 专业级路由器也不会具有这些功能,除非包装中包含的不仅仅是路由器。它不是端口转发,路由器不执行这些功能。该问题询问“端口转发”并被标记为 [tag:router]。想想有同样问题的人,找到它并阅读你的答案,并考虑你是在帮助还是困惑。无论如何,您的术语都是错误的。 (2认同)