Я следовал всем инструкциям, но просто не могу войти через ftp.
...
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Switching to Binary mode.
local: 21 remote: 21
229 Entering Extended Passive Mode (|||12028|)
550 Failed to open file.
221 Goodbye.
даже в iptables:
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpts:12000:12100
у меня есть min
и max
порт установлен в vsftpd.conf
к 12000-12100
и те же порты, включенные через консоль AWS.
В вашем конкретном случае я вижу, что у вас есть ошибка 550, которая заставляет меня думать, что есть проблема с разрешением файла.
В общем, наиболее частая причина отказа режима PASV, когда vsftpd работает на EC2, заключается в том, что vsftpd сообщает клиенту подключиться к частный IP-адрес экземпляра EC2, и клиент не может подключиться к нему по очевидным причинам.
Одно из возможных решений - назначить этому экземпляру эластичный IP-адрес, а затем указать vsftpd объявить себя с помощью этого общедоступного IP-адреса (например, 1.2.3.4), добавив следующую строку в vsftpd.conf:
pasv_address=1.2.3.4
Сделаем шаг назад и посмотрим, как работает режим PASV:
С участием pasv_address
вы заставляете vsftpd возвращать указанный IP-адрес при получении команды PASV вместо попытки угадать IP-адрес.
как сказал @Luca Gibelli, это в основном проблема с правами доступа к файлам.
Может быть лучше, если вы разместите список файлов и проверите, какие разрешения есть.
Но я бы ответил на этот вопрос, чтобы немного рассказать об использовании pasv_address
на EC2
Если вы используете эластичный IP
pasv_address={your public IP address}
в противном случае, может быть, лучше использовать
pasv_addr_resolve={your public domain or DNS}
посмотрите здесь: https://www.gosquared.com/blog/fix-ftp-passive-mode-problems-on-amazon-ec2-instances
Некоторые маршрутизаторы блокируют обычный ftp через стандартный порт. Переключение на нестандартный порт решило эту проблему для меня.