因为现在很多家庭都拥有一个路由器,而默认情况下,路由器都会打开NAT功能。NAT为网络世界节省了上亿个IP地址,但带来的“困扰”却也是明显的——端口的转换映射等等。
 
按照上一篇的教程,×××连接创建应该是没有问题了,但或许还是有很多人无法成功接入。这其中,绝大多数都是因为路由器的端口映射而造成的。这里我们大致介绍一下NAT和端口映射问题(非专家,如有不对,请指教更正,谢谢)
 
NAT技术,通俗的说就是以一个家庭、组织、企业为单位,在这个单位下的所有电脑将共享一个连接通往Internet的出口,也就是说大家共用一个公网IP(甚至可以是另外一个内网IP)
NAT
上面是我从网上找到的图(自己懒,不想画了)。中间那个有红色箭头的就理解为我们的路由器,那三台电脑理解为任何家里局域网中的终端,可以是手机、笔记本电脑,甚至是电视、冰箱(我见过可以联网的冰箱的~)。这些局域网内的终端将分享一个内网IP段,常见的有192.168.x.x或者10.0.x.x
 
其实,终端被分配到什么IP并没有多大关系,反正所有终端要接入英特网的话,都是通过路由器这一个出口。但问题也就在这里了。任何一个接入网络的终端,根据我们今天的TCP/IP协议和规范,这个设备必然要使用到一些特定的端口(数据就是通过这些端口与电脑交流的)。一台设备,最多就是65535个端口了。看上去,感觉用不完,但是,其中1024个端口是固定的,有指定的协议和程序使用,如我们提到的×××。所以,当家里的电脑A与电脑B都需要使用这一个端口时,问题就来了。
 
从外网(也就是英特网)拨入家里的×××连接,路由器是收到指令了,但是路由器不知道该指令要传达给哪一台电脑(即使家里只有一台电脑连接到路由器上)。所以,我们要登录路由器设置,映射×××的端口给指定的终端。
 
PPTP协议(Windows中默认的那个)的×××所使用的端口为TCP的1723.
 
我的Home Server所使用的内网IP为192.168.1.3
 
所以下图是我的路由设置:
router
上图大意为将Public(公网)的1723端口(TCP协议)映射到192.168.1.3这台电脑上的1723端口(当然你也可以把公网端口100映射到内网某台电脑上的端口200,这可以起到保护的作用,因为***不能直接看到你所曝露的服务器端口,但除非你知道你在做什么,否则还是不要弄太复杂)。
 
通过上面的设置,×××接入应该是正常了。如果还是不行,请检查服务器上的防火墙设置(Windows自带的,或者你自己安装的)。如果你不懂得如何在防火墙中打开某一端口,请直接关闭防火墙。