看到很多朋友很关心端口映射(port mapping),来跟大家讨论一下portmapping,讲讲我自己试出来的心得
先看一下图:
在win2k server的routing and ras服务里面可以设置port mapping(端口映射)
在我这个例子里面,win2k server这台机器是192.168.0.1,用DSL上网;
192.168.0.2是XP PRO
192.168.0.222是一台LINUX
除了WIN2K SERVER是直接上网外,其它两台是用共享的方式(就是把网关设成192.168.0.1,可以手动,也可以用DHCP服务器配置参数)
现在,希望不在家时,可以连上xp pro的remote desktop,以及linux上的smtp, pop3邮件服务,还有ssh。简单说,我想透过网关这台机器,连接到内部的xp pro以及linux的指定端口。
设置就象图里面这样。举几个例子:
网关的4000号被映射到xp pro的3389。3389是xp的remote desktop以及2k server的terminal service用的端口。用4000的原因是不想和网关自己的terminal service冲突。这样,如果直接用terminal service
client连接网关,将进入2k server 的TS,连接网关的4000将可直接从外面操纵xp pro的远程桌面。至于如何在ts客户端指定端口,请看下一贴的图。
25252是在XP上的某个软件使用的端口(是我在XP上运行的一个DB SERVER)。我把网关的同一端口映射过去,这样就好象这个服务是长在网关上一样,对客户端来说无法确切分辨出服务到底在哪台,直接使用就行。
110是POP3, 25是SMTP, 22是sshd。同样,把网关的同一端口映射(因为和网关本身的服务不冲突)到LINUX上,这样,就好象你的网关直接安装了pop3, smtp, sshd一样。可以用ssh连接回家,操作那台linux。相当方便。
这样映射有些限制和注意事项:
1、你自己必须对网关有操纵权,比如,自己家里上网至少有一个真正的IP来当网关。如果ISP分配给你的就是内网IP,那理论上就要和ISP商量,让他们把GATEWAY的PORT映射过来。实际上应该是不可能的。
2、我举的例子是用win2k server里面的ROUTING/RAS带的NAT来做internet共享。如果你用pro的ics(internet连接共享,实际
上是ROUTING服务简化版),没有直接设置这些的地方,但听说可以改注册表让ICS实现如上的映射。具体情况,请在GOOGLE或DEJA.COM上用ics port mapping registry等字样搜索。我记得有不少。
3、内部那些要被映射的机器(象我例子的192.168.0.2, 0.222),IP地址要固定,否则要每次改port mapping设置。默认情况下routing/ras有一个DHCP子服务器,实现类似DHCP的功能,并自动配置客户机的网关。这样不太方便。方法一是直接在客户端上手工设置,方法二是安装真正的DHCP SERVER,用MAC地址(网卡硬件地址)来“预约”IP地址。比如,我192.168.0.2这台机器网卡MAC是11:22:33:44:55:AA,我就在DHCPSERVER 上设置,让这个MAC永远得到192.168.0.2这个地址。客户端可以保留自动设置的简单性。具体请看dhcp 的reservation。真正的DHCP服务是有很多功能的,不光是分配IP,还可以配置客户机的TCPIP参数,比如DNS,网关等等。
4、简单服务可以很方便的找出所用端口并映射,但有很多服务使用动态端口,就很麻烦。比如netmeeting 是用动态的端口。如果要用内部机器来接受netmeeting请求的话,要把网关的“所有”未用端口映射过去。
理论上是可能的,但WIN2K的这个ROUTING服务好象没有映射端口范围的方法……也许其它ROUTING服务软件有。
另外就是FTP,现在很多用PASV模式,这个模式的特点,是用21端口连接后,另外随机分配一个端口来进行数据传输。因此只映射21是无法用PASV的FTP的。如果要映射FTP服务,需要要求客户端使用PORT而不是PASV 模式。
这张图是用terminal service/remote desktop连接非默认端口的方法。很简单,在IP后加上冒号端口就行。文档没看到有,试试就知道了。
另外2k terminal service client和xp remote desktop基本上是一回事,因此客户端也通用。现在不要再安装2K生成出来的那个客户端了,太老。最方便的方法,是把XP的system32下
mstsc.exe
mstscax.dll
两个文件复制到任何机器上(95,98,NT,2K,XP),运行mstsc就可以连接了。这个程序不需要安装。
XP带的客户端有些好处,比如,如果服务器也是XP的话,可以达到16位/24位颜色,而2K带的那个最老的客户端只有256色。不过2K的TS服务只支持到256色,所以不管用哪个客户端都是完全一样的。
我用raspppoe 0.96。用Routing/RAS做共享一切正常。
用Routing/RAS来做有个地方要注意,设置时有一步是一个对话框有五六个选项,有一个是“允许使用明文/未加密的密码”,一定要勾上。否则无法连接。大部分的DSL服务器是使用明文密码的。我当时也试了很久才发现这个选项
如果设置时没选 上,现在改也来得及。看图: