Моя серверная ОС: Amazon Linux
Пытаюсь настроить ftp. У меня есть:
Установлен vsftpd
открыть порт 20-21
открытый порт 1024-1048
В основном я следил за каждым из эти шаги
Я использую filezilla для своего ftp-клиента.
Вот моя настройка / конфигурация:
Хост: ec2-XX-XX-XXX-XX.compute-1.amazonaws.com
Порт: - (пусто, но я пробовал 20 и 21)
Тип сервера: FTP - протокол передачи файлов
Тип входа: нормальный
Имя пользователя: (пробовал root и ec2-пользователь)
Режим передачи: испытанный пассивный и активный
У меня всегда такая ошибка:
Status: Waiting to retry...
Status: Resolving address of ec2-XX-XX-XXX-XX.compute-1.amazonaws.com
Status: Connecting to XX.XX.XXX.XX:21...
Error: Connection timed out
Error: Could not connect to server
Я пропустил какую-либо конфигурацию / настройки?
РЕДАКТИРОВАТЬ
После выполнения / sbin / iptables -L -n
Вот результат:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Вы должны включить пассивный режим в vsftpd и заставить его прослушивать эластичный IP-адрес вашего экземпляра:
Кроме того, откройте порты 1024-1048 в группе безопасности сервера и на вашем сервере Linux. Не забывайте и порт 21;)
Если вы просто хотите передавать файлы между вашим экземпляром EC2 и вашим локальным компьютером, я не вижу причин, по которым вам нужно устанавливать FTP-сервер. Вы можете использовать psftp или filezillia со своим закрытым ключом для безопасного подключения к вашему экземпляру EC2 через порт 22. В этом посте есть пошаговые инструкции. http://lzw-programmingjourney.blogspot.com/2011/12/set-up-ftp-server-on-amazon-aws-ec2.html
Из журнала видно, что порт 21 каким-то образом заблокирован.
На стороне сервера вам необходимо проверить, прослушивает ли VSFTPD ВСЕ IP-адреса, и проверить это с помощью команды
netstat -ntlp
После этого порт 21 должен быть открыт в группе безопасности облака Amazon с желаемого IP-адреса.
Перед установкой любого соединения с сервером попробуйте запустить сканирование портов NMAP, чтобы увидеть, действительно ли порт 21 открыт со стороны клиента. для этого запустить:
nmap -vv -P0 (IP-адрес сервера или DNS)
Вы не говорите, какой дистрибутив Linux вы используете, поэтому трудно быть уверенным, но я подозреваю, что вам нужно настроить брандмауэр Linux (iptables), чтобы разрешить FTP.
Попробуйте следующее
sudo iptables -I INPUT -p tcp -m tcp --sport 20 --dport 1024:1048 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 21 -j ACCEPT
РЕДАКТИРОВАТЬ Не похоже, что проблема с iptables в вашем экземпляре EC2, так что это должно быть что-то еще. В консоли AWS проверьте, находится ли экземпляр в группе безопасности по умолчанию и что группа безопасности по умолчанию содержит настройки, аналогичные этим.
Connection Method Protocol From Port To Port Source (IP or Group)
- tcp tcp 20 20 0.0.0.0/0
- tcp tcp 21 21 0.0.0.0/0
- tcp tcp 1024 1048 0.0.0.0/0
Если это так, то проблема в другом, поскольку что-то еще блокирует ваше соединение.
Я использую Filezilla для входа в систему и выполняю следующие действия.
Чтобы подключиться к работающему экземпляру Amazon EC2 с помощью Filezilla:
Правка -> Настройки -> Соединение -> SFTP. Нажмите «Добавить ключевой файл».
Перейдите к местоположению вашего файла .pem и выберите его.
Появится окно сообщения с запросом вашего разрешения на преобразование файла в формат ppk. Щелкните Да, затем дайте файлу имя и сохраните его где-нибудь.
Если новый файл отображается в списке ключевых файлов, перейдите к следующему шагу. Если нет, нажмите «Добавить ключевой файл ...» и выберите преобразованный файл.
Файл -> Менеджер сайта
Добавьте новый сайт со следующими параметрами:
Хост: ваше общедоступное DNS-имя экземпляра ec2
Протокол: SFTP
Тип входа: нормальный
Пользователь: ec2-user
Нажмите кнопку подключения
Видеоурок: Кликните сюда