Ftp

vsftpd - 無法建立數據連接:EHOSTUNREACH - 沒有到主機的路由

  • February 21, 2016

我有一個在 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 中如果我有空格,那會導致錯誤,但事實並非如此。

看起來是active/passive模式問題。看來你使用Passive模式。

我會嘗試Active模式。

如果您真的想要Passive模式,我懷疑您沒有打開所有必需的埠(from TCP/1024 to TCP/65534)。

請注意,您可以使用pasv_min_portpasv_max_port中的指令限制被動模式的埠範圍vsftpd.conf

NAT 的伺服器?

vi /etc/sysconfig/iptables-config

IPTABLES_MODULES="ip_nat_ftp"

引用自:https://serverfault.com/questions/566593