Board logo

标题: 如何用端口映射建立内网FTP [打印本页]

作者: cqmis    时间: 2003-11-26 16:01     标题: 如何用端口映射建立内网FTP

如何用端口映射建立内网FTP
一、端口映射的问题
  端口映射是指将一个IP上的某个端口映射到另外一个IP的某个端口上去。如下例:

Host3欲登陆到FTP Server,但是由于FTP Server在Lan中,没有公网上的IP地址,因此Host3无法定位到FTP Server,此时,可在Lan中的网关(或路由器)即Host1上做端口映射,将Host1的21端口映射到FTP Server上,Host1负责将发送到21端口的数据转送到FTP Server的21端口上,如此一来,Host3可直接连接Host1的21端口,而所有发送的数据则由Host1转送到FTP Server上了。
  “这么说,只要将Host1的21端口映射到FTP Server就可以在内网中做FTP服务器了?”非也,如果你仅仅映射21端口,那么要连接到FTP的客户端必须关闭PASV模式,而且有的客户端可以登陆,而有的根本无法登陆。为什么会这样?PASV又是什么?这就先要从FTP服务器的工作模式说起了。
二、FTP的工作模式
  FTP服务器在启动后,会打开一个命令模式端口(默认是21),客户端连接上FTP时,会首先连接到命令模式端口,这时候就建立起一个命令通道,所有发送的命令与服务器的反馈就通过这个通道传送。但这条通道仅仅能传送命令,要传送文件数据信息(如文件内容、目录列表等等)就得经过另外一个通道(数据通道),而这个数据通道是用Port命令或Pasv命令建立的。
  1、PORT模式。使用PORT命令后,客户端会打开一个没有被占用的端口,然后由服务器的20端口发起一个连接,连接到这个端口,从而建立起一条数据通道。
  2、PASV模式。使用PASV命令后,客户端会请求服务器再打开一个没有被占用端口,然后客户端连接到服务器的这个端口上,建立起一条数据通道。
  因此,看得出来,如果FTP服务器是内网的,且仅映射了21端口,则其它内网用户用Port模式能连接上服务器,但无法列出文件列表,更遑论下载文件了。更要命的是Pasv模式根本无法使用,因为PASV模式需要用到的端口没有被映射。因此,我们需要映射所有被PASV模式用到的端口(可怕的工作量)。那么如何得知FTP服务器能使用哪些PASV模式端口并一一映射它们呢?幸运的是,有一个PortTunnel的端口映射软件,它能自动侦测到PASV模式需要使用的端口且自动映射它们,这实在太好了,我们就不必一个个的去映射这些PASV用到的端口了。如图:


不过PortTunnel只能用在网关机(即Host1)上,如果Host1根本不是一台PC,而是路由器或者是ADSL Modem,怎么办?没办法啦,您就只有一个一个映射了,那么,先找出PASV用到了哪些端口吧,以Serv-U这个FTP服务器软件为例:


这里PASV端口范围可以自己确定(根据服务器的最大同时连接数量确定),端口知道了,那么就一个一个的映射吧~~~路由器和ADSL Modem设置端口映射的方法我就不说了,因为每一款产品可能都不一样。
案例1:一个LAN,主机装WIN2K,共享上网,FTP服务器在内网上,则可在主机上安装PortTunnel,映射21端口,然后启用“使用Port和PASV命令”,如此即可。





点“开始”之后,端口映射工具PortTunnel就开始工作了
案例2:家庭用户,用ADSL Modem + LAN方式上网,由于网关是ADSL Modem,因此无法使用PortTunnel,不过ADSL Modem本身支持端口映射,则确定FTP服务器的PASV端口后,一一在Modem上设置好映射即可。因为我没有ADSL,所以图略:)

作者: LiLianjiang    时间: 2004-10-8 00:19     标题: 如何用端口映射建立内网FTP

顶!




欢迎光临 EZB 论坛 (http://ultraiso.net/ezbbbs/) Powered by Discuz! 6.1.0