Как запустить пассивный FTP-сервер на виртуальной машине Azure Linux?
Недостаточно настроить конечные точки на брандмауэре Azure и порты PASV, потому что клиент зависает при переходе в пассивный режим.
В настоящее время работать с пассивным FTP так же плавно, как на выделенном сервере, невозможно по двум причинам: во-первых, в настоящее время Azure позволяет открывать только 25 конечных точек (пожалуйста, поправьте меня, если я ошибаюсь) для каждого сервера, а другой - это соединение LAN <-> Virtual IP, которое использует Azure. Давайте рассмотрим проблемы одну за другой.
В настоящее время в Azure реализован NAT / брандмауэр / балансировщик нагрузки, который перенаправляет трафик с внешнего виртуального IP-адреса на внутренний сетевой адрес (10.0.0.0/8
класс). Если ты бежишь ifconfig
на вашей виртуальной машине вы найдете то, о чем я говорю. Одна конечная точка зарезервирована для SSH, и я не думаю, что вы действительно хотите ее отключать. Таким образом, если другая конечная точка зарезервирована для порта 21, вы можете использовать только 23 порта PASV (если вы не размещаете какую-либо другую службу), строго ограничивая количество клиентов, которые могут подключаться одновременно. Как только вы примете это, давайте продолжим.
Если вы открыли порты 25003-25006 (один за другим), вы можете использовать следующую конфигурацию, чтобы включить их
pasv_enable=YES
pasv_min_port=25003
pasv_max_port=25006
vsftpd
и любой другой FTP-сервер выдает PASV
команда, которая в основном говорит «подключиться к X.Y.W.Z через порт AA». Предполагается, что любой FTP-сервер считывает конфигурацию машины, чтобы получить сетевой адрес: вот почему vsftp в основном говорит «подключиться к 10.X.Y.Z на порту 25003», а затем почему клиент зависает !!!
Используйте следующее, чтобы указать vsftpd использовать другой внешний адрес
pasv_addr_resolve=YES
pasv_address=dom.cloudapp.net
Примечания: Активный FTP работает, если клиент не находится за брандмауэром или Great Wall, а SFTP - лучшая альтернатива FTP, но, к сожалению, многие устаревшие приложения его не поддерживают.