Jam*_*rtz 233 router port port-forwarding community-faq
关于'port forwarding'有很多问题,但似乎没有一个明确说明它是什么以及它的用途。所以:
什么是端口转发?
它有什么用途,我为什么需要它?
jcr*_*dor 343
要真正解释端口转发,您首先需要更多地了解路由器的作用。您的互联网服务提供商会为您的互联网连接分配一个IP 地址。互联网上的所有计算机都需要一个唯一的 IP 地址,但是您家中有多台计算机并且只有一个地址。那么这是如何工作的呢?
如果您知道它是什么并且只想知道如何去做: http : //portforward.com/有一个操作指南,其中包含数百种不同路由器的屏幕截图。该文档隐藏在其自动 portconfig 工具的广告页面后面。(只需单击一下,您就会找到它。)
您的家用路由器内置了一个称为网络地址转换或 NAT 的功能。在您的网络中,计算机的地址类似于 192.168.1.100。192.168.* 范围(或 10.*)范围内的所有地址都是“私有”或“保留”地址。这些地址由 IANA 正式分配以在专用网络内使用。您的路由器会自动为每台通过DHCP连接的计算机分配这样的地址。这些地址是您网络中的计算机与路由器以及彼此通信的方式。
您的路由器有一个单独的网络接口,可将其连接到互联网。该接口有一个非常不同的地址,由您的 ISP 分配。这是我之前提到的一个地址,您的路由器使用它与互联网上的其他计算机进行通信。您网络中的计算机具有不可路由的私有 IP 地址,这意味着如果它们将数据包直接发送到互联网,数据包将自动被丢弃(出于稳定性原因,不允许使用私有地址的数据包穿越互联网)。但是你的路由器有一个可路由的地址。网络地址转换,顾名思义,就是翻译 在这两种地址之间,允许您网络中的多台计算机在 Internet 上表现为一台具有一个地址的计算机。
虽然这听起来可能很复杂,但实际上您的路由器如何做到这一点非常简单。每次网络中的计算机想要连接到 Internet 上的计算机时,它都会向路由器发送连接请求(它知道将其发送到路由器,因为它的默认网关参数设置为路由器的地址)。然后路由器接受该连接请求(TCP/IP 中的“SYN 请求”)并更改源地址(“回复”或返回地址)并将其从计算机的私有 IP 更改为计算机的公共 IP。路由器,以便将响应发送到路由器。然后它会在数据库(称为NAT 表)中记录连接已启动,以便稍后记住它。
当响应从远程计算机返回时(“SYN-ACK”),路由器查看其 NAT 表,发现该端口上与该主机的连接先前是由您网络上的一台私人计算机发起的,更改目的地地址到计算机的私有地址,并将其转发到您的网络中。通过这种方式,数据包可以继续在网络之间来回传输,路由器透明地更改地址以使其正常工作。当连接终止时,路由器只是将其从 NAT 表中删除。
这可能更容易用比喻来形象化——假设您是美国的一名货运代理,与中国客户合作。他们需要向美国的许多客户发送包裹,但由于海关/文书工作的原因,只将包裹发送到一个地方更容易。因此,一个包裹来自您在中国的一个客户(在本例中为专用网络),实际目的地在美国(互联网)。你把盒子上的地址标签改成美国(公共)地址,你把回邮地址改成你自己的公共地址(因为不能直接退回中国而不会给客户带来不便),然后交给邮局. 如果客户退回产品,它会来找你。你查一下你的记录,看看它来自中国的哪家公司,
这很好用,但有一点问题。如果客户需要向公司发送某些东西,比如一张汇票来支付某些东西怎么办?或者,假设 Internet 上的计算机发起与路由器的连接(SYN 请求),比如网络中的 Web 服务器。信件/数据包上只有路由器的公共地址,因此路由器实际上不知道将它发送到哪里!它可以指定给专用网络上的任何计算机,也可以不指定任何计算机。当您拨打某人的家庭电话时,您可能会遇到此问题 - 当他们给您打电话时,这没有问题,但是当您给他们打电话时,他们无法知道是谁打来的,因此可能接错了人。
虽然人类很容易解决这个问题,但对计算机来说却很棘手,因为并非网络上的每台计算机都知道所有其他计算机。
端口转发是我们解决此问题的方法:它是一种告诉您的路由器网络传入连接应定向到哪台计算机的方法。我们有三种不同的方法可以做到这一点:
让我们看一个使用示例。许多多人视频游戏(例如,反恐精英)允许您在您的计算机上运行一个游戏服务器,其他人可以连接到与您一起玩。您的计算机不知道所有想玩的人,因此无法连接到他们 - 相反,他们必须从 Internet 向您的计算机发送新的连接请求。
如果你没有在路由器上设置任何东西,它会收到这些连接请求,但它不知道网络中的哪台电脑有游戏服务器,所以它会忽略它们(或者,更具体地说,它会发送返回一个表明它无法连接的数据包)。幸运的是,您知道将用于游戏服务器连接请求的端口号。因此,在路由器上,您使用游戏服务器期望的端口号(例如,27015)和游戏服务器的计算机的 IP 地址(例如,192.168.1.105)设置一个端口转发。
路由器将知道将传入的连接请求转发到网络内部的 192.168.1.105,外部计算机将能够连接。
另一个例子是一个有两台机器的本地网络,其中第二台 IP 为 192.168.1.10 的机器使用 Apache 托管一个网站。因此路由器应该将传入的 80 端口请求转发到这台机器。使用端口转发,两台机器可以同时运行在同一个网络中。
视频游戏可能是日常用户最常遇到端口转发的地方,尽管大多数现代游戏都使用 UPnP,因此您不必手动执行此操作(而是全自动的)。每当您希望能够直接连接到网络中的某些内容时(而不是通过 Internet 上的某些中介),您都需要执行此操作。这可能包括运行您自己的 Web 服务器或通过远程桌面协议连接到您的一台计算机。
NAT 的优点之一是它提供了一些轻松的内置安全性。许多人在互联网上徘徊寻找易受攻击的机器......他们通过尝试打开与各种端口的连接来做到这一点。这些是传入连接,因此,如上所述,路由器将丢弃它们。这意味着在 NAT 配置中,只有路由器本身容易受到涉及传入连接的攻击。这是一件好事,因为路由器比运行具有大量软件的完整操作系统的计算机简单得多(因此不太可能受到攻击)。然后,您应该记住,通过对网络中的计算机进行 DMZing(将其设置为 DMZ 目标),您将失去该计算机的安全层:它现在完全对来自 Internet 的传入连接开放,所以你需要像直接连接一样保护它。当然,任何时候转发端口时,接收端的计算机都会在该特定端口上变得脆弱。因此,请确保运行配置良好的最新软件。
| 归档时间: |
|
| 查看次数: |
499240 次 |
| 最近记录: |