У меня установлен vsftpd версии 3.0.2 в современной системе Arch Linux. Я могу получить доступ и успешно использовать сервер в своей локальной сети, но он не работает через Интернет: после входа в систему сервер отправляет свой локальный IP-адрес, отвечая на запрос клиента о переходе в пассивный режим. Это делает сервер бесполезным за пределами локальной сети, поскольку клиент отказывается отправлять команды на недопустимый IP-адрес. (См. Вывод FileZilla ниже)
Я исследовал проблему и обнаружил, что могу указать в файле конфигурации vsftpd, какой адрес отправлять при использовании пассивного режима (нажмите здесь для исследования). Я добавил pasv_address
в мой /etc/vsftpd.conf вместе с указанием минимального и максимального пассивных портов и соответствующим образом настроил мой маршрутизатор.
После использования systemctl
Чтобы перезапустить vsftpd, ни одно из изменений конфигурации не вступило в силу. Затем я попытался перезагрузить всю систему и получил тот же результат. Я проверил некоторые другие настройки в /etc/vsftpd.conf
и обнаружил, что ни один из них не вступил в силу. Мне кажется, что vsftpd игнорирует изменения, внесенные в /etc/vsftpd.conf
.
Я нашел множество веб-сайтов, на которых указано, что файл конфигурации vsftpd - это /etc/vsftpd.conf, но он может использовать другой, если он указан в командной строке. Я проверил свою систему в меру своих возможностей, но не могу найти ссылку на другой используемый файл конфигурации.
Кто-нибудь знает, как я могу внести эти изменения конфигурации в vsftpd? Предположим, что я использую настройки по умолчанию, если я не указал иное. Заранее спасибо за вашу помощь.
Попытка подключения к моему FTP-серверу через Интернет после изменения /etc/vsftpd.conf:
Status: Connecting to 71.###.###.###:21...
Status: Connection established, waiting for welcome message...
Response: 220 server-name FTP server (GNU inetutils 1.9.2) ready.
Command: USER user
Response: 331 Password required for user.
Command: PASS ******
Response: 230 User user logged in.
Command: SYST
Response: 215 UNIX Type: L8 Version: Linux 3.17.6-1-ARCH
Status: Server does not support non-ASCII characters.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/home/user" is current directory.
Command: TYPE I
Response: 200 Type set to I.
Command: PASV
Response: 227 Entering Passive Mode (192,168,0,16,221,70)
Status: Server sent passive reply with unroutable address. Using server address instead.
Command: LIST
Error: Connection timed out
Error: Failed to retrieve directory listing
Я не нашел решения этой проблемы с vsftpd, но из-за отсутствия ответа я изучил некоторые другие параметры демона FTP. В настоящее время я использую bftpd, который мне удалось настроить для отправки клиентам соответствующего адреса. Это устранило у меня отсутствие работающего FTP-сервера, поэтому сейчас я приму это как ответ, хотя мне все равно было бы интересно узнать, как исправить проблему vsftpd, если кто-нибудь знает, как это сделать.
1 марта 2015 г. РЕДАКТИРОВАТЬ: Я просто переустановил vsftpd и обнаружил, что моя проблема связана с довольно неприятным случаем ошибки пользователя: вместо загрузки службы vsftpd в systemd я загрузил общую службу ftpd, которая, конечно, не будет реагировать на изменения в файле конфигурации vsftpd. Vsftpd запущен и отправляет клиентам соответствующий IP-адрес.