当前位置: > Linux故障 >

开启LINUX防火墙后,FTP PASV不能正常登录问题

时间:2014-03-09 20:17来源:linux.it.net.cn 作者:IT网
linux服务器开启防火墙,常规设置在防火墙配置文件中添加21端口, FTP服务器通过port能够访问,pasv不能访问.而客户端一般是采用pasv方式连接.解决方法如下:

要了解概念;

FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式). Standard模式 FTP的客户端发送 PORT 命令到FTP服务器.Passive模式FTP的客户端发送 PASV命令到 FTP Server.

PORT 和 PASV的简单区别如下:

Port模式FTP 客户端和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令. PORT命令包含了客户端用什么端口接收数据.在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据. FTP server和客户端建立一个新的连接用来传送数据.

Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令.FTP服务器收到 Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接.

IE浏览器默认使用的是Passive(被动)模式,要连接Linux服务器大于1024端口,而防火墙并没有开发1024以上的端口,导致登录ftp服务器被防火墙阻止.

vsftp:

修改vsftpd.conf配置文件让它支持Passive(被动)模式

#vim /etc/vsftpd/vsftpd.conf

在一行添加如下内容:

pasv_min_port=10050 (设置被动模式的端口范围)

pasv_max_port=10060(设置被动模式的端口范围)

pureftp:

vi pure-ftpd.conf

# 被动连接响应的端口范围.- for firewalling.

# PassivePortRange 10050 10060


在防火墙配置文件iptables中添加端口

#vim /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10050:100060 -j ACCEPT

重启服务使其生效

#service vsftpd rstart

#service iptables restart

(责任编辑:IT)
------分隔线----------------------------