我的IPTables规则如下:
# Generated by iptables-save v1.4.4 on Mon Aug 23 18:34:35 2010 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [9356:4246018] -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 6685 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8089 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT -A INPUT -j DROP COMMIT
这是阻止FTP,我不知道为什么。 FTP确实在端口21,因为它没有被改变。 我正在使用VSFTPD。 当我清除所有的IPTables规则,我可以使用FTP就好了。
你是否加载了ip_conntrack_ftp内核模块?
ip_conntrack_ftp模块“知道”ftp协议,并监视到端口21的传入连接,以确定连接将用于数据的端口,然后打开该端口。
你不需要使用被动。
但是,如果你想使用被动,那么这与vsftpd无关,这是一个客户端选项。
即客户端用户需要设置他的客户端使用被动模式。
抛出这些行,然后检查你的系统日志,看看什么stream量被阻止:
-A INPUT -p tcp -m tcp --dport 20 -j LOG -A INPUT -p tcp -m tcp --dport 21 -j LOG -A OUTPUT -p tcp -m tcp --sport 20 -j LOG -A OUTPUT -p tcp -m tcp --sport 21 -j LOG