У нас есть запланированная задача, которая передает большой файл (~ 130 МБ) между двумя серверами Windows с помощью программы FTP командной строки Windows. Это очень медленно (занимает около 30 минут) и иногда завершается до завершения передачи. Серверы - 2003 (отправка) и 2008 (получение).
Если я передаю файл вручную с помощью графического интерфейса FileZilla, он будет работать значительно быстрее и будет выполнен за пару минут. Однако я не могу использовать этот подход, потому что мы хотим, чтобы он запускался автоматически, а FileZilla не может быть написан сценарием.
Я также заметил, что когда я отключаю брандмауэр Windows 2003, FTP в командной строке внезапно становится намного быстрее и достигает той же скорости, что и FileZilla.
Итак, похоже, у меня есть способ отключить / включить брандмауэр до и после передачи. Но после обширного поиска в Google это не кажется распространенной проблемой, и я чувствую, что что-то где-то настроено неправильно.
Может ли кто-нибудь пролить свет на то, почему отключение брандмауэра так резко увеличивает скорость? И почему FileZilla быстрее, чем FTP из командной строки (когда включен брандмауэр)?
вам нужно знать, что блокирует в первую очередь. Загрузите Process Monitor с сайта Sysinternals (Microsoft).
В этой программе выберите только «показывать сетевую активность» (кнопка на панели слева вверху)
проверьте пакеты и найдите FTP.
server1.domain.com:12345 -> server2.domain.com:21
Щелкните правой кнопкой мыши имя процесса и выберите включить, чтобы добавить процесс, на котором запущен ftp.
протестируйте ftp-перенос с брандмауэром и без него.
сравните оба данных. это должен быть порт, заблокированный брандмауэром. вы должны открыть этот порт между обоими компьютерами.
ICMP - это требование к Интернет-хосту. Иногда администраторы блокируют все ICMP, потому что «где-то слышали, что это угроза безопасности». Но ICMP не является обязательным, и TCP полагается на него. (Минимум, 'требуется фрагментация' должно быть разрешено.)
Проблема в том, что в командной строке FTP используется FTP в активном режиме.
Filezilla автоматически переключается в пассивный режим ftp, который более удобен для брандмауэра.
Командная строка FTP поддерживает только активный, так что вы там застряли.
Используйте альтернативную утилиту для ftp, которая поддерживает пассивный режим из командной строки (есть параметры строки cmd для filezilla, которые могут удовлетворить ваши потребности).