允许 curlftpfs 通过 iptables 防火墙,怎么做?

允许 curlftpfs 通过 iptables 防火墙,怎么做?

我已经允许 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

相关内容