我有一个在 CentOS 6.4 上运行 vsftpd v3.0.2 的 VPS。当我尝试连接到我的 ftp 服务器时,出现错误:
The data connection could not be established: EHOSTUNREACH - No route to host
尝试连接的控制台:
Status: Connecting to xxx.xxx.xxx.xxx:21...
Status: Connection established, waiting for welcome message...
Response: 220 snapd.server01 FTP Server
Command: AUTH TLS
Response: 234 Proceed with negotiation.
Status: Initializing TLS...
Status: Verifying certificate...
Command: USER web01
Status: TLS/SSL connection established.
Response: 331 Please specify the password.
Command: PASS *********
Response: 230 Login successful.
Command: OPTS UTF8 ON
Response: 200 Always in UTF8 mode.
Command: PBSZ 0
Response: 200 PBSZ set to 0.
Command: PROT P
Response: 200 PROT now Private.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/"
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (xxx,xxx,xxx,xxx,85,175).
Command: LIST
Error: The data connection could not be established: EHOSTUNREACH - No route to host
我已转发所有必需的端口,包括 5000-5100。我还尝试禁用 SElinux - 没有用。用户 web01 主目录设置为/var/www
。
我确实研究过互联网。有人说,如果我在 vsftpd.conf 中有空格,则会导致错误,但事实并非如此。
答案1
看起来像是active/passive
模式问题。看来您使用了Passive
模式。
我会尝试Active
模式。
如果您确实想要Passive
模式,我怀疑您没有打开所有所需的端口(from TCP/1024 to TCP/65534
)。
请注意,您可以使用中的指令pasv_min_port
限制被动模式的端口范围。pasv_max_port
vsftpd.conf
答案2
NAT 服务器?
vi /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_nat_ftp"