当前位置: 首页 > 科技观察

关于端口转发简介

时间:2023-03-13 15:15:34 科技观察

端口转发是将网络流量从一个网络侦听器(称为“端口”)发送到另一个网络侦听器的过程,无论这两个端口是否属于同一台计算机。在这里,端口不是物理实体,而是侦听网络活动的软件程序。当流量被定向到特定端口时,它首先会遇到路由器或防火墙,或其他网络程序。它最终收到的响应可以根据它想要与之通信的端口来定义。例如,当您使用端口转发时,您可以捕获目标为8080端口的流量并将其转发到端口80。这个新的目标端口可能与接收信号的原始端口在同一台设备上,也可能在另一台设备上.我们在很多情况下都会用到端口转发,实现方式也有很多种。本文介绍了一些最常见的使用场景。使用路由器进行端口转发如果您在家中托管服务器,通常不需要转发端口。您的家庭路由器(通常是您从互联网服务提供商(ISP)获得的WiFi设备)具有内置防火墙,可以阻止外界访问您的家庭网络。通过使用端口转发,您可以允许特定端口上的流量通过路由器的防火墙并发送到LAN上的特定IP地址。假设您设置了Minetest服务并想邀请您的朋友试用。为了让它们能够“通过”您的路由器到达Minetest服务,您必须将路由器上的一个端口转发到托管Minetest服务的计算机。默认情况下,Minetest服务在端口30000上运行。可以将路由器的30000端口转发到电脑的30000端口,也可以直接转发到更简单的端口,这样玩家更容易记住。我发现人们在使用30000端口时经常得到几个0(尤其是没有逗号分隔符的帮助),所以我通常在路由器上使用端口1234并将其转发到我的内部端口30000。每个制造商的路由器接口都不同,但是无论你有什么品牌的路由器,方法都是一样的。首先,您需要登录您的路由器。通常,路由器的IP地址和登录信息印在路由器上或其文档中。我有一个路由器型号TP-LinkGX90,我在浏览器中转到10.0.1.1可以登录,但你的路由器可能是192.168.0.1或其他地址。我的GX90路由器将端口转发功能称为“虚拟服务器”,它是路由器“NAT转发”选??项卡下的一个选项。NAT的意思是“网络地址转换”。在其他路由器中,此功能可能直接称为“端口转发”,或“防火墙”、“服务”等。找到正确的功能选项可能需要一些时间,因此您可能需要花一些时间研究您的路由器文档。找到路由器的端口转发设置后,添加一个新规则,命名一个外部端口(在我的例子中是1234)和一个内部端口(30000)。将外部端口转发到与您希望所有人访问的计算机的IP地址绑定的内部端口。如果您在查找本地计算机的IP地址方面需要帮助,可以阅读ArchitModi的《??在 Linux 上如何查询本地 IP 地址??》。一个简单的端口转发规则(图片由SethKenlon提供,遵循Attribution-ShareAlike4.0International协议)在这个例子中,到我家庭网络上端口1234的流量被转发到我家庭服务器的30000端口,后者的IP地址是10.0.1.2.在继续之前,保存此规则。接下来,您需要知道家庭网络的公共IP地址是什么。您可以从ifconfig.me或icanhazip.com获取此地址。您可以在浏览器中打开这两个网站之一,或者使用curl命令获取IP。$curlifconfig.me93.184.216.34现在,您的朋友可以在Minetest客户端输入169.169.23.49:1234加入您的Minetest服务器。使用防火墙的端口转发系统管理员有时需要将流量转发到服务器。例如,您可能希望从端口80接收流量,但用户的服务正在端口8065上运行。如果没有端口转发,您的用户将不得不在他们在浏览器中键入的URL的末尾附加一个指定的端口号,例如例如.com:8065。大多数用户不习惯考虑端口问题,所以你需要拦截访问网络常用端口80的请求,然后转发到你网络应用的特定端口,这会给用户带来很大的方便。您可以使用firewall-cmd在服务器上转发流量,这是访问firewalld守护进程的前端命令。首先设置你要转发的端口和协议:$sudofirewall-cmd\--add-forward-port\port=80:proto=tcp:toport=8065要使修改永久生效,需要添加--runtime-to-permanentOptions:$sudofirewall-cmd--runtime-to-permanent网络转发在网络传输中,除了端口转发外,还有其他类型的转发形式,如IP转发和代理等。当您熟悉路由时网络信息是如何处理的后,您可以尝试不同的转发形式(并使用tcpdump或类似工具),看看哪种最好,最适合您的需要。