尽管现代路由器会自动处理大多数功能,但是某些应用程序将需要您手动将端口转发到该应用程序或设备。X的是,如果您知道要看的地方,这真的很简单。
什么是端口转发?
我们涵盖了许多项目,这些项目将您的计算机用作其他设备的服务器。当您处于网络内部时,大多数情况都可以正常工作。但是,某些应用程序(如果要在网络之外时访问它们)会使事情变得很麻烦。让我们开始看看为什么会这样。
路由器如何处理请求和使用端口
这是一个简单的家庭网络的地图。云图标代表更大的Internet和您的公共或前向Internet协议(IP)地址。该IP地址在某种程度上代表了来自被驱逐世界的整个家庭,就像街道地址一样。
红色地址192.1.168.1是网络中的路由器地址。所有其他地址都属于在图像底部看到的计算机。如果您的公共IP地址就像街道地址,那么请考虑内部IP地址,例如该街道地址的公寓号。
该图提出了一个有趣的问题,您可能以前没有想到过。来自互联网的所有信息如何到达网络内部的正确设备?如果您在笔记本电脑X问howtogeek.com,并且所有设备的面向公众的IP地址都相同,它将如X笔记本电脑而不是儿子的桌面上显示?
这要归功于称为网络地址转换(NAT)的路由魔术的奇妙之处。此功能发生在路由器级别,其中NAT充当流量X,引导网络流量通过路由器,以便可以在路由器后面的所有设备之间共享一个公用IP地址。由于使用了NAT,您家庭中的每个人都可以同时请求网站和其他Internet内容,并且所有内容都将传递到正确的设备上。
那么端口在哪里进入这个过程呢?从网络计算的早期开始,端口就是一个古老而有用的保留方式。过去,当计算机一次只能运行一个应用程序时,您要做的就是将一台计算机指向网络上的另一台计算机以连接它们,因为它们将运行同一应用程序。一旦计算机变得复杂起来可以运行多个应用程序,早期的计算机科学家就不得不为确保应用程序连接到正确的应用程序而苦苦挣扎。因此,港口诞生了。
一些端口具有特定的应用程序,这些应用程序是整个计算机行业的标准。例如,当您获取一个网页时,它使用端口80。接收方计算机的软件知道该端口80用于提供http文档,因此它在此处进行监听并做出相应的响应。如果您通过其他端口(例如143)发送http请求,则Web服务器将无法识别该请求,因为它不在那儿监听(尽管可能还有其他情况,例如传统上使用该端口的IMAP电子邮件服务器)。
其他端口没有预先分配的用途,您可以将它们用于任何需要的用途。为了避免干扰其他遵守标准的应用程序,最好在这些替代配置中使用更大的数字。例如,Plex Media Server使用端口32400,而Minecraft服务器使用25565,这两个数字均属于此“公平游戏”领域。
每个端口都可以通过TCP或UDP使用。TCP,或传输控制协议,是最常用的。UDP(或用户数据报协议)在家庭应用程序中使用较少,但有一个主要例外:BitTorrent。根据正在侦听的内容,可以期望使用这些协议中的一种或另一种发出请求。
为什么需要转发端口
那么,到底为什么需要转发端口呢?尽管某些应用程序利用NAT来设置自己的端口并为您处理所有配置,但仍有许多应用程序不需要这些,并且在连接服务和应用程序时,您需要为路由器提供帮助。
在下图中,我们以一个简单的前提开始。您正在世界上某个地方的笔记本电脑上(IP地址为225.213.7.32),并且想要连接到家庭网络以访问某些文件。如果您只是将家庭IP地址(127.34.73.214)插入正在使用的任何工具(例如FTP客户端或远程桌面应用程序)中,而该工具没有利用我们刚才提到的高级路由器功能,你不走运。它不知道将请求发送到哪里,什么也不会发生。
顺便说一下,这是一个 很好的安全功能。如果有人连接到您的家庭网络,而他们没有连接到有效端口,则您 希望连接被拒绝。这就是路由器执行任务的防火墙元素:拒绝不受欢迎的请求。但是,如果敲您虚拟门的人是您,那么拒绝就不那么受欢迎了,我们需要做一些调整。
为了解决该问题,您想告诉路由器“嘿:当我使用该程序访问您时,您需要将其发送到该端口的该设备上”。有了这些说明,路由器将确保您可以访问家庭网络上的正确计算机和应用程序。
因此,在此示例中,当您外出使用笔记本电脑时,将使用不同的端口来发出请求。当您使用端口22访问家庭网络的IP地址时,在家中的路由器知道该地址应该到达网络内部的192.168.1.100。然后,Linux安装上的SSH守护程序将响应。同时,您可以通过端口80发出请求,路由器会将其发送到192.168.1.150处的Web服务器。或者,您可以尝试使用VNC远程控制姐姐的笔记本电脑,路由器会将您连接到192.168.1.200的笔记本电脑。这样,您可以轻松连接到已为其设置端口转发规则的所有设备。
相关: 如何锁定SSH服务器
端口转发的有用之处还不止于此!您甚至可以使用端口转发来更改现有服务的端口号,以使其更加清晰和方便。例如,假设您有两个运行在家庭网络上的Web服务器,并且您希望其中一个易于访问且显然可访问(例如,这是您希望人们能够轻松找到的天气服务器),而另一个Web服务器是针对个人的项目。
当您从面向公众的端口80访问家庭网络时,可以告诉路由器将其发送到192.168.1.150的气象服务器上的端口80,它将在端口80进行侦听。但是,您可以告诉路由器当您通过端口10,000访问它时,它应该转到您的个人服务器192.168.1.250上的端口80。这样,不必将第二台计算机重新配置为使用其他端口,但是您仍然可以有效地管理流量-同时,通过将第一台Web服务器保持链接到端口80,可以使人们更轻松地访问您的端口。前面提到的天气服务器项目。
现在我们知道什么是端口转发以及为什么要使用它,让我们在深入研究端口转发之前先了解一些有关端口转发的小注意事项。
配置路由器之前的注意事项
在坐下来配置路由器并事先运行它们之前,请记住一些注意事项,以确保减少挫败感。
设置设备的静态IP地址
首先,如果您将所有端口转发规则分配给具有由路由器DHCP服务分配的动态IP地址的设备,则所有规则都将崩溃。我们将在有关DHCP与静态IP地址分配的文章中深入探讨DHCP的详细信息,但在此处为您提供简要概述。
相关: 如X路由器上设置静态IP地址
路由器具有一个地址池,该地址池仅保留用于在设备加入和离开网络时移交给它们。您可以将其想象成在到达餐厅时获得一个号码-您的笔记本电脑连接起来,如雨后春笋般,它的IP地址为192.168.1.98。您的iPhone加入后,繁荣起来,它的地址为192.168.1.99。如果您使这些设备脱机一段时间或路由器重新启动,则整个IP地址X将再次发生。
在正常情况下,这样做是可以的。您的iPhone不在乎它拥有哪个内部IP地址。但是,如果您创建了一个端口转发规则,说您的游戏服务器位于某个IP地址,然后路由器为它提供了一个新的规则,则该规则将不起作用,并且任何人都无法连接到您的游戏服务器。为了避免这种情况,您需要为要为其分配端口转发规则的每个网络设备分配一个静态IP地址。最好的方法是通过路由器-有关更多信息,请参阅本指南。
知道您的IP地址(并设置动态DNS地址)
除了为网络内的相关设备使用静态IP分配之外,您还希望了解您的外部IP地址-您可以 在家庭网络X问whatismyip.com来找到它。尽管您可能在几个月甚至一年的时间内都拥有相同的公共IP地址,但是您的公共IP地址可以更改(除非您的Internet服务提供商明确为您提供了静态的面向公众的IP地址)。换句话说,您不能依赖于在使用的任何远程工具中输入数字IP地址(也不能依赖于将该IP地址提供给朋友)。
相关: 如何使用动态DNS从任何地方轻松访问您的家庭网络
现在,尽管您每次离开家并打算出门在外工作时(或每次您的朋友要连接到Minecraft服务器等)时都需要手动检查IP地址,但是这很麻烦头痛。相反,我们强烈建议您设置一个动态DNS服务,该服务将使您(不断变化的)家庭IP地址链接到一个令人难忘的地址,例如mysuperawesomeshomeserver.dynu.net。有关如何通过家庭网络设置动态DNS服务的更多信息,请在此处查看我们的完整教程。
注意本地防火墙
一旦在路由器级别设置了端口转发,就可能需要调整计算机上的防火墙规则。例如,多年来,沮丧的父母在设置端口转发服务时收到了很多电子邮件,以便他们的孩子可以和朋友一起玩《我的世界》。在几乎每种情况下,问题都在于,尽管在路由器上正确设置了端口转发规则,但有人忽略了Windows防火墙请求,询问是否可以运行运行Minecraft的Java平台访问更大的Internet。
请注意,在运行本地防火墙和/或包含防火墙保护的防病毒软件的计算机上,您可能需要确认已建立的连接正常。
第一步:在路由器上找到端口转发规则
所有网络课程都用尽了吗?不用担心,现在是时候进行设置了-现在您已经了解了基础知识,这非常简单。
尽管我们很乐意为您的确切路由器提供确切的说明,但事实是每个路由器制造商都有自己的软件,并且该软件的外观甚至在路由器型号之间也会有所不同。除了尝试捕获所有变化之外,我们还将重点介绍一些变化,以使您了解菜单的外观,并鼓励您查找特定路由器的手册或在线帮助文件以查找详细信息。
通常,您会寻找一种叫做“端口转发”的东西(您猜对了)。您可能需要仔细研究不同的类别才能找到它,但是如果您的路由器是好的,它应该在那里。
为了进行比较,以下是D-Link DIR-890L路由器上的端口转发菜单:
这是运行流行的第三方DD-WRT固件的同一路由器上的端口转发菜单的外观:
如您所见,即使在相同的硬件上,两个视图之间的复杂度也相差很大。此外,菜单中的位置完全不同。因此,如果您使用手册或搜索查询查找设备的确切说明,这将非常有用。
找到菜单后,就该设置实际规则了。
第二步:创建端口转发规则
在学习了有关端口转发的所有知识之后,为您的家庭IP地址设置了动态DNS,并完成了所有其他工作,制定重要规则(创建实际规则)几乎是在公园散步。在路由器的端口转发菜单中,我们将创建两个新的端口转发规则:一个用于Subsonic音乐服务器,另一个用于我们刚刚设置的新Minecraft服务器。
尽管在不同路由器软件上的位置有所不同,但一般输入是相同的。几乎普遍地说,您将为端口转发规则命名。最好简单地将其命名为服务器或服务的名称,然后在需要时将其附加清楚(例如,如果有多个,则为“ Webserver”或“ Webserver-Weather”)。还记得我们在开始时谈论的TCP / UDP协议吗?您还需要指定TCP,UDP或两者。有些人非常清楚找出每个应用程序和服务使用什么协议,并且为了安全起见将它们完美地匹配起来。我们将是第一个承认我们在这方面很懒的人,我们几乎总是选择“两者”以节省时间。
一些路由器固件,包括我们在上面的屏幕截图中使用的更高级的DD-WRT,将允许您指定“源”值,该值是出于安全目的而将端口限制转发到的IP地址列表。您可以根据需要使用此功能,但请注意,它会带来很多新的麻烦,因为它假定远程用户(包括出门在外的您和正在连接的朋友)拥有静态IP地址。
接下来,您需要放入外部端口。这是将在路由器上打开并面向Internet的端口。您可以在1到65353之间使用任何所需的数字,但是实际上,大多数较低的数字是由标准服务(如电子邮件和Web服务器)占用的,而许多较高的数字则分配给了相当普通的应用程序。考虑到这一点,我们建议选择一个大于5,000的数字,为了更加安全,请使用Ctrl + F搜索此较长的TCP / UDP端口号列表,以确保您未选择与以下端口冲突的端口:您已经在使用的现有服务。
最后,输入设备的内部IP地址,该设备上的端口以及(如果适用)打开规则。不要忘记保存设置。
第三步:测试您的端口转发规则
测试您的端口转发是否正常的最明显方法是使用用于该端口的例程进行连接(例如,让您的朋友将其Minecraft客户端连接到您的家庭服务器),但是如果您不在的话,这并不总是立即可用的解决方案从家里。
值得庆幸的是,YouGetSignal.com上有一个方便的在线端口检查器。我们可以通过简单地让端口X尝试连接来测试我们的Minecraft服务器端口是否被转发。插入您的IP地址和端口号,然后单击“检查”。
如上所示,您应该会收到一条消息,例如“端口X已在[您的IP]上打开”。如果端口报告为已关闭,请再次检查路由器的端口转发菜单中的设置以及测试仪中的IP和端口数据。
设置端口转发很麻烦,但是只要您为目标设备分配静态IP地址并为家庭IP地址设置动态DNS服务器,您只需访问一次即可完成此任务将来可以轻松无忧地访问您的网络。
原创文章,作者:dnzhu,如若转载,请注明出处: