您好,我正在尝试设置 iptables 以允许 FTP。当我连接 FTP 时,我的 filezilla 中收到以下消息。
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is the current directory.
Command: TYPE I
Response: 200 Type set to: Binary.
Command: PASV
Response: 227 Entering passive mode (X,X,X,X,225,8).
Command: MLSD
Response: 150 File status okay. About to open data connection.
Error: Connection timed out
Error: Failed to retrieve directory listing
我的 IP 表如下所示:http://pastebin.com/er1CtZjZ
任何帮助我将不胜感激。
答案1
为了使 ftp 守护程序运行,您需要打开某个范围的传入 TCP 端口(例如 40000:41999),并将这些端口与 ftp 守护程序的匹配配置文件进行匹配。例如,我在我的/etc/proftpd.conf
:
<VirtualHost ftp.foo.bar>
Port 21
DefaultRoot ~
HiddenStores on
PathDenyFilter (\\.ftpaccess|\\.htaccess|\\.php|\\.rar)
Umask 077
DirFakeGroup on
DirFakeUser on
DefaultTransferMode binary
DeferWelcome on
MaxClients 12 "Too many logins"
MaxClientsPerHost 4 "Too many logins"
PassivePorts 40000 41999
</VirtualHost>
PS:还需要我说吗?当然,传入端口 20 和 21 也必须打开以用于控制连接。