501 Извините, но я не буду подключаться к портам <1024

Что это значит? Внезапно я не могу FTP ни к чему.

2 ответа2

2

Для меня это звучит так, будто ваш местный системный администратор только что заблокировал ваш прокси.

2

Сервер, к которому вы подключаетесь, работает под управлением Pure-FTPd, а ваш FTP-клиент находится в активном режиме. Это означает, что ваш клиент подключается к серверу через порт 21, а сервер подключается обратно к вашему клиенту для передачи данных. В активном режиме клиент указывает порт для подключения к серверу. Исторически это был порт 20, но на самом деле ничего такого не требуется. Pure-FTPd жестко запрограммирован для отказа подключаться к клиентам, которые указывают номер порта менее 1024:

/* from src/ftpd.c */
void doport2(struct sockaddr_storage a, unsigned int p)
{
    /* ... */
    if (p < 1024U) {
        addreply_noformat(501, MSG_BAD_PORT);
        return;
    }

/* from src/messages_en.h */
#define MSG_BAD_PORT "Sorry, but I won't connect to ports < 1024"

Порты TCP/UDP ниже 1024 считаются привилегированными, что в Unix/Linux означает, что только root может связываться с ними. Этот код, вероятно, является попыткой запретить пользователям подключаться от имени пользователя root, поскольку в настоящее время рекомендуется делать как можно меньше, чем пользователь root.

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

  • Перейдите в пассивный режим (PASV). То, как вы это сделаете, зависит от вашего клиента, но почти каждый FTP-клиент там поддерживает это. В пассивном режиме клиент устанавливает соединение с сервером как для контроля, так и для передачи данных. Сервер никогда не устанавливает соединение обратно с клиентом.
  • Измените порт данных, который ваш клиент предоставляет серверу, на 1024 или выше для соединений в активном режиме. Я подозреваю, что меньше клиентов будут поддерживать это, чем те, которые делают пассивные, но я уверен, что некоторые делают.

Если у вас нет ограничений на исходящий доступ или если сервер находится в вашей локальной сети, использовать пассивный режим обычно проще. Если у вас есть ограничения на исходящий доступ, ни один из этих режимов не будет проще в использовании, чем другой, и вам лучше всего проконсультироваться с тем, кто занимается безопасностью вашей сети.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .