2

У меня настроен FTP-сервер на моей Windows 10. Когда я выключаю свой брандмауэр Windows, я могу получить доступ к FTP-серверу с других компьютеров в той же локальной сети. Но когда я включаю брандмауэр, я не могу получить доступ к FTP. Это правила входящего трафика моего брандмауэра, которые, как мне кажется, являются специфическими для моей проблемы (я думал обрезать и поделиться полным списком правил брандмауэра Windows. Но это огромное. Пожалуйста, укажите мне любое другое правило, которое мне нужно настроить. Я отрежу это и поделюсь здесь.)

Входящие правила

Исходящие правила

Подскажите пожалуйста что плохо настроено. (Нахожусь на Windows 10)

1 ответ1

4

Для FTP вы должны убедиться, что вы открыли оба порта TCP 20 и 21 . Кроме того, если серверная служба, работающая на машине, использует пассивный режим, вам также потребуется открыть диапазон портов TCP, который настроен для использования FTP-сервером.

Быстрое разрушение порта

Похоже, что вы используете небезопасный FTP на TCP-портах 20 и 21 (т.е. активный и пассивный), а также, возможно, FTPS с неявным SSL на TCP-портах 990 и 989 .

Протокол FTP использует порт / канал для элементов управления / команд и другой порт / канал для части обмена данными клиента и сервера.

Небезопасный FTP

  • Командный канал: TCP-порт 21
  • Канал данных (активный): порт TCP 20
  • Канал данных (пассивный): <FTP Server configured TCP port range>

FTPS с неявным SSL

  • Командный канал: TCP-порт 990
  • Канал данных (активный): TCP-порт 989

Брандмауэр командной строки (этот раздел должен решить проблему)

Запустите приведенное ниже в командной строке с повышенными правами администратора, чтобы создать правило брандмауэра Windows, позволяющее входящему трафику на службу FTP-сервера обмениваться данными через соответствующие порты команд и данных для любого IP-адреса и любой области профиля сетей, классифицированных ОС Windows.

Вам нужно указать значение program="<C:\FTPServer\FTPServer.exe>" соответствующее вашему серверу, или использовать вместо него service=<ftpsvc> вместо этого указав на имя службы.

netsh advfirewall firewall add rule name="FTP Inbound" dir=in action=allow program="%windir%\system32\svchost.exe" remoteip=any localip=any protocol=TCP localport=20,21,990,989 remoteport=20,21,990,989 profile=any

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

netsh advfirewall set global StatefulFTP disable

Windows Firewall GUI

Убедитесь, что у вас есть область действия, определенная в правилах, чтобы диапазон IP-адресов локальной сети был разрешен, либо разрешите доступ через любой IP-адрес . Наконец, вы должны убедиться, что сетевые адаптеры на сервере настроены в профиле, который разрешает правило брандмауэра.

Порты

Примечание. Добавьте диапазон пассивных портов, если это применимо.

Объем

профили


Дополнительные ресурсы

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