转发端口时,网络上的其他计算机会发生什么情况?

哈德良·休斯(Hadrian Hughes)

我只是在阅读端口转发,这是在考虑使用RaspberryPi托管Web服务器。

我发生的一件事就是这样。某个端口上的所有请求都将转发到特定的内部IP地址。回复是否以相同的方式转发?可以肯定的是,这将阻止网络上的其他计算机访问Internet,因为来自已访问网站的所有响应都将到达服务器。

LPC芯片

为了回答这个问题,您需要了解客户端和服务器之间的网络流量是如何工作的。

当您具有客户端服务器程序时,服务器将设置一个侦听端口。

然后,任何客户端都可以连接到该侦听端口并要求连接。因为您只能与一个端口建立一个连接,所以一旦服务器接受连接(在一秒钟内),服务器便会开始重新建立与客户端的新连接(通常是通过uPNP,可以选择指定它将使用哪个端口) )进行实际的数据传输。从客户端到服务器的初始端口被删除以释放侦听端口。

由于服务器位于NAT(路由器)的后面,因此当客户端使用端口号连接到公用ip时,路由器将应答,而不是位于其后的服务器。由于路由器没有服务器软件(在您的情况下为Web服务器),因此它不知道如何应答,并且连接失败,因为路由器只是忽略了请求。

通过添加端口转发,您可以告诉路由器当有人尝试使用该指定端口连接到公共ip时该怎么做。对于您的情况,规则说:将流量中继到树莓派。

现在,正如您所看到的,发生的唯一一件事情是,路由器在向公共ip和端口发出请求时了解了该做什么。网络内部的PC并不请求通过公共ip进行访问,而是通过私有ip进行访问。另外,路由器允许设置它侦听的公共端口。因此,如果您有3个树莓派,每个树莓派都有自己的IP地址,则可以设置3条规则:

- port 8081 to pi1, port 80
- port 8082 to pi2, port 80
- port 8083 to pi3, port 80

然后,客户端将连接到您的附加:8081的公共ip来打开该端口,并且所有端口仍然有效。

没有铺设物理链路,因此所有端口均保持原样。只是路由器现在知道如何处理端口以及流量应该流向何方。

请注意,并非所有路由器都具有环回流量的能力,这意味着它们希望具有公共ip地址的NAT上的连接来自WAN端口而不是来自任何LAN端口,因此可能无法测试转发规则从网络内部在您的路由器上。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Qt 如何使用QtNetwork查看网络上的其他计算机?

来自分类Dev

如果调用析构函数并将分配的内存再次用于其他对象,会发生什么情况?

来自分类Dev

iOS:当我从其他类调用重写的方法时,会发生什么情况

来自分类Dev

调用exec()时,线程会发生什么情况?

来自分类Dev

在提示中键入“ unset *”时,会发生什么情况?

来自分类Dev

如何为网络上的其他计算机提供Vue项目

来自分类Dev

在提示中键入“ unset *”时,会发生什么情况?

来自分类Dev

当同一网络上的两台计算机具有相同的MAC地址时,会发生什么情况?

来自分类Dev

启动计算机时会发生什么?

来自分类Dev

关闭计算机时会发生什么?

来自分类Dev

我在Windows Vista上,并且“网络”不显示其他计算机或文件共享

来自分类Dev

将WinXP路由器上的RDP端口转发到内部(NATted)网络中的计算机

来自分类Dev

Qt 如何使用QtNetwork查看网络上的其他计算机?

来自分类Dev

从网络上的其他计算机访问本地服务器

来自分类Dev

为本地计算机提供外部静态IP(可以只是转发端口)

来自分类Dev

计算机意外关闭时会发生什么?

来自分类Dev

关闭计算机电源时,究竟会发生什么?

来自分类Dev

如何与我的网络上的其他计算机共享VPN连接

来自分类Dev

在Mac OSX的“终端”命令行上键入“ bash”时,会发生什么情况?

来自分类Dev

Windows 7不显示网络上的其他计算机

来自分类Dev

如果调用析构函数并将分配的内存再次用于其他对象,会发生什么情况?

来自分类Dev

硬盘突然关闭时,磁头会发生什么情况?

来自分类Dev

无法ping我网络中的其他计算机

来自分类Dev

在linux网络套接字服务器计算机上,当为客户端分配所有网络端口时会发生什么

来自分类Dev

将Mac Osx上的Docker端口公开到其他计算机

来自分类Dev

网络突然终止时,TCP连接会发生什么情况

来自分类Dev

如果本地计算机的存储空间小于保管箱存储空间,将会发生什么情况?

来自分类Dev

SSH远程端口转发到NAT后面的计算机:如果公用IP地址更改,会发生什么情况

来自分类Dev

通过命令行查找网络上的其他计算机

Related 相关文章

  1. 1

    Qt 如何使用QtNetwork查看网络上的其他计算机?

  2. 2

    如果调用析构函数并将分配的内存再次用于其他对象,会发生什么情况?

  3. 3

    iOS:当我从其他类调用重写的方法时,会发生什么情况

  4. 4

    调用exec()时,线程会发生什么情况?

  5. 5

    在提示中键入“ unset *”时,会发生什么情况?

  6. 6

    如何为网络上的其他计算机提供Vue项目

  7. 7

    在提示中键入“ unset *”时,会发生什么情况?

  8. 8

    当同一网络上的两台计算机具有相同的MAC地址时,会发生什么情况?

  9. 9

    启动计算机时会发生什么?

  10. 10

    关闭计算机时会发生什么?

  11. 11

    我在Windows Vista上,并且“网络”不显示其他计算机或文件共享

  12. 12

    将WinXP路由器上的RDP端口转发到内部(NATted)网络中的计算机

  13. 13

    Qt 如何使用QtNetwork查看网络上的其他计算机?

  14. 14

    从网络上的其他计算机访问本地服务器

  15. 15

    为本地计算机提供外部静态IP(可以只是转发端口)

  16. 16

    计算机意外关闭时会发生什么?

  17. 17

    关闭计算机电源时,究竟会发生什么?

  18. 18

    如何与我的网络上的其他计算机共享VPN连接

  19. 19

    在Mac OSX的“终端”命令行上键入“ bash”时,会发生什么情况?

  20. 20

    Windows 7不显示网络上的其他计算机

  21. 21

    如果调用析构函数并将分配的内存再次用于其他对象,会发生什么情况?

  22. 22

    硬盘突然关闭时,磁头会发生什么情况?

  23. 23

    无法ping我网络中的其他计算机

  24. 24

    在linux网络套接字服务器计算机上,当为客户端分配所有网络端口时会发生什么

  25. 25

    将Mac Osx上的Docker端口公开到其他计算机

  26. 26

    网络突然终止时,TCP连接会发生什么情况

  27. 27

    如果本地计算机的存储空间小于保管箱存储空间,将会发生什么情况?

  28. 28

    SSH远程端口转发到NAT后面的计算机:如果公用IP地址更改,会发生什么情况

  29. 29

    通过命令行查找网络上的其他计算机

热门标签

归档