Как выяснить, почему FTP не работает?

Я попытался настроить FTP-сервер на моем нетбуке, но не могу подключиться к нему. Теперь мне интересно, как я могу понять, что я сделал не так.

У меня запущен сервер Apache2 для использования с доменом (domain.dnsdynamics.com), и я могу подключиться к нему. // Редактировать: я могу перейти на http://domain.com , но не ftp://domain.com

Какие шаги я могу предпринять, чтобы понять что не так?

Редактировать: сеть подключена через маршрутизатор D-Link DIR-615, по перенаправленным портам 20 и 21, оба перенаправлены на мой нетбук со статическим IP.

На нетбуке не установлен брандмауэр.

Я пытался подключиться через Интернет и из локальной сети.

Я тестировал через Chrome и FileZilla, оба не ответили. (Тайм-аут для FileZilla, страница не найдена для Chrome). Переходя к http: // works, ftp: // not

Edit2: я пробовал vsftpd, который, по-видимому, является FTP-сервером по умолчанию для Ubuntu

Edit3: the vsftpd.conf (без комментариев). Версия по умолчанию, я не внес в нее никаких изменений.

listen=YES  
local_enable=YES  
dirmessage_enable=YES  
allow_writeable_chroot=YES  
use_localtime=YES  
xferlog_enable=YES  
connect_from_port_20=YES  
chroot_local_user=YES  
chroot_list_enable=YES  
secure_chroot_dir=/var/run/vsftpd/empty  
rsa_cert_file=/etc/ssl/private/vsftpd.pem
1
задан 7 January 2018 в 23:09

1 ответ

Прежде всего, убедитесь, что служба vsftpd работает, используя следующую команду:

sudo systemctl status vsftpd.service

Если это не так: sudo systemctl start vsftpd.service

Далее вам нужно убедитесь, что вы можете подключиться к вашему ftp, используя сам сервер (с обратной связью):

ftp 127.0.0.1
[YOUR_USERNAME]
[YOUR_PASSWORD]

Если ваш пользователь вошел в систему, это означает, что проблема не в самой службе vsftpd. Я предполагаю, что это может быть из-за режима соединения FTP. На FTP есть два режима подключения: активный режим и пассивный режим. Вот краткое объяснение этих двух режимов:

Активный режим :

1. Клиент подключается к порту 21 сервера (Command Channel)

2. Сервер соединяет С порт 20 с портом, указанным клиентом (DATA)

Пассивный режим :

1. Клиент подключается к порту 21 сервера (Command Channel)

2. Клиент подключается со случайного порта к порту , указанному сервером (DATA)

ACTIVE MODE vs PASSIVE MODE

По умолчанию Клиентские приложения FTP используют пассивный режим, потому что он более «безопасный». Таким образом, в этом режиме переадресация портов порта 20 (КАНАЛ ДАННЫХ) устарела, поскольку внешний клиент (Интернет) пытается подключиться к другому порту для канала данных. Поэтому вам нужно переключиться в активный режим, чтобы соединение с каналом передачи данных осуществлялось сервером (который использует порт 20 для отправки), а не клиентом.

Как показано на следующем рисунке, в клиенте FileZilla вы можете переключиться в активный режим: FileZilla Active Mode

Команда ftp по умолчанию использует пассивный режим как Что ж. Чтобы перевести его в активный режим, вам нужно сделать следующее:

ftp [YOUR_FTP_SERVER_IP]
passive

При этом для пассивного флага будет установлено значение false , а канал данных будет использовать Активный режим (если вы сделаете это снова, он вернется к true ). (Источники: https://www.tutorialspoint.com/unix_commands/pftp.htm https://serverfault.com/questions/152245/how-to-disable-passive-mode-in -linux-ftp-command )

Надеюсь, мои объяснения не были слишком запутанными ...

0
ответ дан 7 January 2018 в 23:09

Другие вопросы по тегам:

Похожие вопросы: