我设置了 SFTP,但我遇到了有关 iptables 的问题。这是我的规则:
A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
顺便说一句,我正在使用vsftpd
FTP 服务。因此,在停止 iptables 服务之前,它不会连接到 FTP。当我尝试连接到 FTP 时,出现“列出远程文件夹失败”错误。
我应该怎么办?
答案1
SFTP 和 FTP 不是一回事。
如果您真正指的是 SFTP,那么这是一种基于 SSH 的传输,仅通过端口 22 进行(除非您将 SSH 守护程序配置为侦听另一个端口)。
FTP 是一种古老的文件传输协议,在端口 21 和 21(也可能是其他端口)上运行。防火墙需要进行连接状态跟踪才能正确支持它。确保您已nf_conntrack_ftp
加载 netfilter ftp 连接跟踪模块 ( )。
pasv_min_port
您可以通过和pasv_max_port
选项在 vsftp 中配置“被动模式”FTP 的最小/最大端口vsftpd.conf
:您能否将范围缩小到少量端口(也许是一个端口)并在防火墙中打开它们?
您确定防火墙有问题吗?如果暂时禁用它,还能正常工作吗?