У меня настроен FTP-сервер на Windows 10. Когда я отключаю брандмауэр Windows, я могу получить доступ к FTP-серверу с других машин в той же локальной сети. Но когда я включаю брандмауэр, я не могу получить доступ к FTP. Это мои входящие правила брандмауэра, которые, как мне кажется, имеют отношение к моей проблеме (я думал вырезать и поделиться полным списком правил брандмауэра Windows. Но он огромный. Пожалуйста, укажите мне любое другое правило, которое мне нужно подправить. Я вырежу его и поделюсь здесь.)
Пожалуйста, скажите мне, что неправильно настроено. (У меня Windows 10)
решение1
ДляФТПвам нужно убедиться, что вы открыли оба порта TCP 20
и 21
. Кроме того, если служба сервера, запущенная на машине, используетпассивный режим, то вам также потребуется открыть диапазон портов TCP, на использование которого настроен FTP-сервер.
Быстрый разбор порта
Похоже, вы используете небезопасный FTP на портах TCP
20
и21
(т.е. активный и пассивный), а может быть также ФТПСс неявным SSL на порту TCP990
и989
.Протокол FTP использует порт/канал для элементов управления/команд и другой порт/канал для обмена данными между клиентом и сервером.
- Канал управления: TCP-порт
21
- Канал данных (активный): TCP-порт
20
- Канал данных (пассивный):
<FTP Server configured TCP port range>
- Канал управления: 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
Убедитесь, что у вас естьобъемопределены в правилах, поэтомуДиапазон IP-адресов локальной сетиразрешены через или же разрешаютлюбой IP-адресНаконец, вам нужно убедиться, что сетевые адаптеры на сервере настроены в профиле, разрешенном правилом брандмауэра.
Порты
Примечание: Если применимо, добавьте диапазон пассивных портов.
Объем
Профили