<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AlvinJ.NET &#187; Port Forwarding</title>
	<atom:link href="http://alvinj.net/tag/port-forwarding/feed/" rel="self" type="application/rss+xml" />
	<link>http://alvinj.net</link>
	<description>Tech-Life</description>
	<lastBuildDate>Wed, 09 Jun 2010 08:54:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DD-WRT PortForwarding配置及其作用</title>
		<link>http://alvinj.net/2010/02/07/dd-wrt-portforwarding%e9%85%8d%e7%bd%ae%e5%8f%8a%e5%85%b6%e4%bd%9c%e7%94%a8/</link>
		<comments>http://alvinj.net/2010/02/07/dd-wrt-portforwarding%e9%85%8d%e7%bd%ae%e5%8f%8a%e5%85%b6%e4%bd%9c%e7%94%a8/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 09:06:55 +0000</pubDate>
		<dc:creator>Alvin.J</dc:creator>
				<category><![CDATA[技术/教程]]></category>
		<category><![CDATA[DD-WRT]]></category>
		<category><![CDATA[Port Forwarding]]></category>

		<guid isPermaLink="false">http://alvinj.net/2010/02/07/dd-wrt-portforwarding%e9%85%8d%e7%bd%ae%e5%8f%8a%e5%85%b6%e4%bd%9c%e7%94%a8/</guid>
		<description><![CDATA[
PortForwarding字面上译作端口转发，更形象的翻译是端口映射。
顾名思义，端口映射就是在对两个端口进行关联使他们对应起来，而这里的两个端口分别是对应外网（WAN）的端口和对应内网（LAN）的端口。

为什么要端口映射？
大家知道内网共享上网都要用到NAT吧？要知道为什么要进行端口映射，还是有必要了解一下NAT的。通过NAT，内网多个私有地址可以共享一个公网地址与外网通信。最早的NAT并不关注Port（端口号），它最主要的任务是将两个地址进行转换。这也决定了在同一时间只能有一对地址（一个公网地址和一个内网地址）进行NAT，即使是动态NAT也是这样，如果有两个内网地址需要使用一个公网地址的话，就要分时进行。这种NAT并不能很好解决IPv4地址贫乏问题。后来PAT（NAT Overload，NAT重载）出现，它实现了多个内网地址同时通过一个公网地址对外进行通信！PAT的出现在一定程度上缓解了IPv4地址的贫乏问题。但在进行PAT的时候，为了区分内网的流量，路由器会随机为流量分配一个对外源端口（x）并记录这个端口与内网IP（C）、内网端口（Y）的关系，当路由器从外网上收到一个目的端口号为X的数据包时，就将该数据包的IP地址转换为C、端口转换为Y，这就是PAT的基本原理。这同时也带来了一个问题，对外的源端口是由路由器随机进行分配的，这就导致了源端口的不确定性了。如果内网有一台服务器对外提供一种服务，就需要一个固定的端口（z），好让外网可以通过这个端口来对服务器进行访问，但由于PAT，路由器从外网收到一个目的端口为（z）的数据包时，查找NAT表发现并没有端口Z的对应项，也就不会将该数据包正确转发至内网了。在外网看来可能就是这个端口响应超时或者没有开启！
显然，动态而随机的端口会令外网无法主动发起与内网的通信。要改善这一情况我们需要静态地对端口进行映射，这也是我们常说的PortForwarding（其实端口映射一直都在进行，我们只是认为地对端口进行静态的映射）。静态端口映射需要手动指定对外的端口号和内网某个地址的端口号，使他们唯一对应起来。静态端口映射会告诉路由器来自外网的目的端口为z的数据包需要确定地转换为内网的某个地址，目的端口号也将确定地转换至指定的目的端口。这样外网就可以主动对内网发起通信了，而不用等待内网主动发起通信并在路由器NAT表中创建表项才能根据表项与内网通信！
什么情况下需要端口映射？
就像我上面说的那样，静态的端口映射可以方便外网主动发起与内网通信，可能对与普通用户来说他们不需要也不希望外网主动对它发起通信，但总有一些应用时需要的，如你在内网开了一个服务器，又或者需要在外网远程连接内网的摄像头进行监控等工作，那么就可能需要对端口进行静态映射了。
而对于我，暂时只是为了PT……开启端口映射可以方便其他用户主动连接我，提高我的上传速度
用过uTorrent都知道，它会自动检测你所设定的端口工作是否正常（如果端口转发检测失败会有一个红色的感叹号，正常时是一个绿色的勾）。
DD-WRT如何设置静态端口映射？

1.用浏览器登入DD-WRT的管理页面；
2.确定你自己的PC使用的是静态的内网IP；
3.在管理页面找到“NAT/QOS”；
4.在该页下找到“PortForwarding”；
5. 如果你需要将内网地址192.168.1.2使用的端口8625与外网地址的8625对应起来，那么就像上面那样设置。其中PortFrom代表对外的端口号，IP address代表需要转换为的内网IP地址，Port代表装换后的内网端口号，protocol可以指定你需要对哪些协议进行静态映射。
6.勾选Enable，使该条目生效！
7.点击Apply setting和Save，设置完毕，最好重启一下路由器。
特别注意！：

如果你需要对192.168.1.2内网地址进行映射的话，这个地址不能处于DMZ区域！否则可能会造成映射失败！我之前就是因为这样一直映射不成功。
如果你开启了UPnP的话，可能会对覆盖静态端口映射，所以如果你配置的端口映射非常重要，请考虑关闭UPnP。
检查SPI Firewall是否处于开启状态，关闭该功能可能会导致静态端口映射不生效，此外请确保其中的“Filter WAN NAT Redirection”项处于关闭

检查PortForwarding是否生效：
打开：http://www.whatsmyip.org/ports/
在Custom Port Test中填入你需要测试的端口，点旁边的CheckPort

如果端口映射成功：（前提是该端口在你的PC上已经被打开，并且没有被防火墙阻隔）

暂时写到这里，如有纰漏，欢迎大家指出。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://alvinj.net/wp-content/uploads/2010/02/portforwarding4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="portforwarding4" src="http://alvinj.net/wp-content/uploads/2010/02/portforwarding4_thumb.png" border="0" alt="portforwarding4" width="551" height="75" /></a></p>
<p>PortForwarding字面上译作端口转发，更形象的翻译是端口映射。</p>
<p>顾名思义，端口映射就是在对两个端口进行关联使他们对应起来，而这里的两个端口分别是对应外网（WAN）的端口和对应内网（LAN）的端口。</p>
<p><span id="more-416"></span></p>
<p>为什么要端口映射？</p>
<blockquote><p>大家知道内网共享上网都要用到NAT吧？要知道为什么要进行端口映射，还是有必要了解一下NAT的。通过NAT，内网多个私有地址可以共享一个公网地址与外网通信。最早的NAT并不关注Port（端口号），它最主要的任务是将两个地址进行转换。这也决定了在同一时间只能有一对地址（一个公网地址和一个内网地址）进行NAT，即使是动态NAT也是这样，如果有两个内网地址需要使用一个公网地址的话，就要分时进行。这种NAT并不能很好解决IPv4地址贫乏问题。后来PAT（NAT Overload，NAT重载）出现，它实现了多个内网地址同时通过一个公网地址对外进行通信！PAT的出现在一定程度上缓解了IPv4地址的贫乏问题。但在进行PAT的时候，为了区分内网的流量，路由器会随机为流量分配一个对外源端口（x）并记录这个端口与内网IP（C）、内网端口（Y）的关系，当路由器从外网上收到一个目的端口号为X的数据包时，就将该数据包的IP地址转换为C、端口转换为Y，这就是PAT的基本原理。这同时也带来了一个问题，对外的源端口是由路由器随机进行分配的，这就导致了源端口的不确定性了。如果内网有一台服务器对外提供一种服务，就需要一个固定的端口（z），好让外网可以通过这个端口来对服务器进行访问，但由于PAT，路由器从外网收到一个目的端口为（z）的数据包时，查找NAT表发现并没有端口Z的对应项，也就不会将该数据包正确转发至内网了。在外网看来可能就是这个端口响应超时或者没有开启！</p></blockquote>
<blockquote><p>显然，动态而随机的端口会令外网无法主动发起与内网的通信。要改善这一情况我们需要静态地对端口进行映射，这也是我们常说的PortForwarding（其实端口映射一直都在进行，我们只是认为地对端口进行静态的映射）。静态端口映射需要手动指定对外的端口号和内网某个地址的端口号，使他们唯一对应起来。静态端口映射会告诉路由器来自外网的目的端口为z的数据包需要确定地转换为内网的某个地址，目的端口号也将确定地转换至指定的目的端口。这样外网就可以主动对内网发起通信了，而不用等待内网主动发起通信并在路由器NAT表中创建表项才能根据表项与内网通信！</p></blockquote>
<p>什么情况下需要端口映射？</p>
<p>就像我上面说的那样，静态的端口映射可以方便外网主动发起与内网通信，可能对与普通用户来说他们不需要也不希望外网主动对它发起通信，但总有一些应用时需要的，如你在内网开了一个服务器，又或者需要在外网远程连接内网的摄像头进行监控等工作，那么就可能需要对端口进行静态映射了。</p>
<p>而对于我，暂时只是为了PT……开启端口映射可以方便其他用户主动连接我，提高我的上传速度</p>
<p>用过uTorrent都知道，它会自动检测你所设定的端口工作是否正常（如果端口转发检测失败会有一个红色的感叹号，正常时是一个绿色的勾）。</p>
<p>DD-WRT如何设置静态端口映射？</p>
<p><a href="http://alvinj.net/wp-content/uploads/2010/02/portforwarding.png"><img style="display: inline; border: 0px initial initial;" title="portforwarding" src="http://alvinj.net/wp-content/uploads/2010/02/portforwarding_thumb.png" border="0" alt="portforwarding" width="544" height="263" /></a></p>
<p>1.用浏览器登入DD-WRT的管理页面；</p>
<p>2.确定你自己的PC使用的是静态的内网IP；</p>
<p>3.在管理页面找到“NAT/QOS”；</p>
<p>4.在该页下找到“PortForwarding”；</p>
<p>5. 如果你需要将内网地址192.168.1.2使用的端口8625与外网地址的8625对应起来，那么就像上面那样设置。其中PortFrom代表对外的端口号，IP address代表需要转换为的内网IP地址，Port代表装换后的内网端口号，protocol可以指定你需要对哪些协议进行静态映射。</p>
<p>6.勾选Enable，使该条目生效！</p>
<p>7.点击Apply setting和Save，设置完毕，最好重启一下路由器。</p>
<p>特别注意！：</p>
<ul>
<li>如果你需要对192.168.1.2内网地址进行映射的话，这个地址不能处于DMZ区域！否则可能会造成映射失败！我之前就是因为这样一直映射不成功。</li>
<li>如果你开启了UPnP的话，可能会对覆盖静态端口映射，所以如果你配置的端口映射非常重要，请考虑关闭UPnP。</li>
<li>检查SPI Firewall是否处于开启状态，关闭该功能可能会导致静态端口映射不生效，此外请确保其中的“Filter WAN NAT Redirection”项处于关闭</li>
</ul>
<p>检查PortForwarding是否生效：</p>
<p>打开：<a title="http://www.whatsmyip.org/ports/" href="http://www.whatsmyip.org/ports/">http://www.whatsmyip.org/ports/</a></p>
<p>在Custom Port Test中填入你需要测试的端口，点旁边的CheckPort</p>
<p><a href="http://alvinj.net/wp-content/uploads/2010/02/portforwarding2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="portforwarding2" src="http://alvinj.net/wp-content/uploads/2010/02/portforwarding2_thumb.png" border="0" alt="portforwarding2" width="319" height="171" /></a></p>
<p>如果端口映射成功：（前提是该端口在你的PC上已经被打开，并且没有被防火墙阻隔）</p>
<p><a href="http://alvinj.net/wp-content/uploads/2010/02/portforwarding3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="portforwarding3" src="http://alvinj.net/wp-content/uploads/2010/02/portforwarding3_thumb.png" border="0" alt="portforwarding3" width="488" height="196" /></a></p>
<p>暂时写到这里，如有纰漏，欢迎大家指出。</p>
]]></content:encoded>
			<wfw:commentRss>http://alvinj.net/2010/02/07/dd-wrt-portforwarding%e9%85%8d%e7%bd%ae%e5%8f%8a%e5%85%b6%e4%bd%9c%e7%94%a8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
