端口转发和伪装之间有什么关系?
如果服务器 A 配置为伪装其客户端,并且客户端 B 通过服务器 A 访问互联网,
那么既然客户端 B 伪装成服务器 A,那么这与转发客户端 B 的所有端口本质上是一样的吗?
答案1
伪装:内部网络中的所有计算机都显示在相同(一组)公共地址。即,您可以拥有 8 个公共 IP 地址,以及一个由 200 台具有专用地址的计算机组成的网络,使用它们“向外”传送。当内部主机想要打开与外部的连接时,该连接将从该池中分配一个 IP 地址和端口。当人们发现 IPv4 地址越来越稀缺时,它被认为是一种保存 IPv4 地址的方法,然后(滥用)用作安全措施(任何传入连接都受到进行翻译的机器的支配)。这通常称为NAT(网络地址转换),如果只有一个公共地址,则更准确地称为PAT(端口地址转换,仅转换端口)。但两者通常都被称为 NAT。
转发端口:所有针对某个 IP 地址和端口的流量都会发送到另一个地址和端口,任何响应都遵循相反的路径。这通常与伪装相结合(即,外部访问伪装地址之一上的 HTTP 或 SMTP 端口,到该端口的流量由提供该服务的内部计算机处理)。如果转发器和目标都有公共地址,也可以这样做,但毫无意义。
防火墙:过滤网络(通常是内部网络和互联网)之间流量的机器,但它也可以分隔两个内部网络。防火墙检查连接请求和/或流动流量,并拒绝流量(或修改流量)。通常与以上两者结合使用。
答案2
伪装=NAT
端口转发 = 告诉 NAT 将某个端口上的新传入流量转发到“其后面”的另一个 IP 和端口。
如果您没有在 A 上设置端口转发,B 将不会接收来自 A 外部的任何新传入连接。
答案3
IP伪装
IP 伪装的目的是允许网络上具有私有、不可路由 IP 地址的计算机通过进行伪装的计算机访问 Internet。必须对从专用网络发往 Internet 的流量进行操作,才能将答复路由回发出请求的计算机。为此,内核必须修改每个数据包的源 IP 地址,以便将回复路由回该数据包,而不是路由回发出请求的私有 IP 地址,而这在 Internet 上是不可能的。 Linux 使用连接跟踪 (conntrack) 来跟踪哪些连接属于哪些机器,并相应地重新路由每个返回数据包。因此,离开您的专用网络的流量被“伪装”为源自您的 Ubuntu 网关计算机。此过程在 Microsoft 文档中称为 Internet 连接共享。
https://help.ubuntu.com/lts/serverguide/firewall.html.en#ip-masquerading
转发端口
所有网络连接请求都包含一个“端口”。端口只是一个数字,它是计算机了解数据包内容的一部分。 IANA 已指定端口 80 用于 HTTP。这意味着端口号为 80 的传入数据包必定是针对 Web 服务器的请求。路由器上的端口转发允许您输入端口号(或者可能是数字范围或组合,具体取决于路由器)和 IP 地址。所有具有匹配端口号的传入连接都将转发到具有该地址的内部计算机。
也可以看看这里:https://superuser.com/questions/284051/what-is-port-forwarding-and-what-is-it-used-for