我已经允许 FTP 端口 21 和 20,然后允许我通过“ftp”命令连接到我的 FTP 服务器,但我仍然无法让 curlftpfs 工作。
curlftpfs 都使用哪些端口?或者我需要对 iptables 做其他操作才能允许 curlftpfs?
curlftpfs -v 10.10.10.1 /ftp1/ -o user=user:pass
当我尝试在 /ftp1/ 中执行“ls -l”时,我在日志中看到了此信息 http://drp.ly/13573T
我把日志上传到了那个网站,因为在这里看起来会很乱
我使用这些规则来允许 FTP:
iptables -A INPUT -p tcp --sport 21 -j ACCEPT
iptables -A INPUT -p tcp --sport 20 -j ACCEPT
答案1
看起来 curlftpfs 正在使用 pasv 模式。您需要强制使用主动模式,或者modprobe ip_conntrack_ftp
允许 pasv 连接通过。
强制主动模式:
curlftpfs -oftp_port=- myserver.example.com /mnt/my_ftpfs_mountpoint
确保您的防火墙也接受端口 20 上的传入和传出流量。端口 21 仅用于传出。
答案2
ip_nat_ftp
如果内核中没有编译支持,则需要加载内核模块。
尝试:
/sbin/modprobe ip_nat_ftp