2024年5月26日发(作者:)

FTP Server通过网闸映射进入内部局域网的步骤及注意事项

1、在DMZ区安装FTP Server程序,本示例采用的是FileZilla Server,正常安装完

成后进行配置。

设置监听端口号,默认是21,为了安全起见我们这里设置成50021

2、设置用户名密码,及用户及共享路径

3、设置完成后,即可到网闸上进行配置,把此服务器的地址如192.168.11.11:50021

映射到公司内部后,其内部局域网地址假设为192.168.0.3:50021。

按照普通端口映射的经验来说,直接在公司内网访问ftp://192.168.0.3:50021即可访

问DMZ区的FTP服务,但是经过测试能提示录入用户名密码,报错,一般是报没有访问

目录的权限。

经过一番百度之后还是没有找到直接答案。没办法,百度FTP的协议原理。

在百度百科查到如下一段话:

Passive

在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,

而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)

并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,通过三次

握手建立通道,然后FTP服务器将通过这个端口进行数据的传送。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后

或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高

端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20

无法和内部网络的客户端建立一个新的连接,造成无法工作。

以下需要特别注意,是配置成功的关键点:

我们进行分析理解,客户端在公司内网访问ftp://192.168.0.3:50021, DMZ取ftp

server“在接受到Pasv命令后,会随机打开一个高端端口,并通知客户端在这个端口上

传送数据的请求,客户端连接FTP服务器此端口,通过三次握手建立通道,然后FTP服

务器将通过这个端口进行数据的传送。”

这就是不通的关键,FtpServer又创建了个新的端口号,来与客户端进行数据通信。

为此,在FileZilla 上找到如下的配置界面,尝试为其配置数据传输端口。Use custom

port,设置上50020端口,又在网闸上将其映射进入内网比如192.168.0.3:50020,经测

试仍然报错,有仔细看了FileZilla Server的Passive mode settings的配置选项,把公司

内网网闸的IP地址填写到Use the following IP位置后,再测试ftp://192.168.0.3:50021/

后就通了。