У меня есть VPS с vsftpd v3.0.2 на CentOS 6.4. Когда я пытаюсь подключиться к своему 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_port
и pasv_max_port
директива в vsftpd.conf
.
Сервер для NAT?
vi /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_nat_ftp"