Назад | Перейти на главную страницу

vsftpd игнорирует изменения в файле конфигурации

У меня установлен 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-адрес.