安装了一台Linux服务器,服务器上运行了包括FTP server在内的多个服务,启用防火墙,并开放FTP等若干种服务。 实际效果是,ftp客户端通过主动模式可以连接ftp server,但是通过被动模式不能连接,显示“connect:no route to host”. 到网上搜了一下,在iptables 里要开放21端口,用iptables –L -n查看了一下,没错,存在这条规则: ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21 还说,iptables 里要开放连接相关端口,因为FTP被动模式使用的是大于1024的端口号,并且是不固定的,查看了一下,OK,有这条规则: ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 但是,就是不通啊,怎么办? 接着搜,看到这样的说法:“需要在系统中加载ip_nat_ftp,ip_conntrack,ip_conntrack_ftp几个模块才能支持FTP的被动模式”。 用lsmod命令查看了系统当前加载的模块,果然没有ip_nat_ftp模块。接下来,使用modprobe ip_nat_ftp命令将ip_nat_ftp载入(好像ip_nat_ftp会自动载入其他的两个模块),再测试FTP被动模式,嗯,大功告成。 为了使 ip_nat_ftp 在系统启动的时候能自动载入,可以修改 iptables 的配置文件: /etc/sysconfig/iptables-config ,在其中加入一行配置项: IPTABLES_MODULES="ip_nat_ftp" 即可。 |