У меня есть FTP, работающий правильно на локальном хосте в Google Compute Engine. Я добавил правило брандмауэра, чтобы разрешить порт 21, но я до сих пор не могу подключиться из мира к FTP.Файловый сервер FTP Google Compute Engine
Любые идеи?
У меня есть FTP, работающий правильно на локальном хосте в Google Compute Engine. Я добавил правило брандмауэра, чтобы разрешить порт 21, но я до сих пор не могу подключиться из мира к FTP.Файловый сервер FTP Google Compute Engine
Любые идеи?
FTP - это сложный протокол, который использует несколько TCP-соединений, что всегда вызывает проблемы. Порт 21 используется только для командного канала, но сама передача данных выполняется с использованием нового TCP-соединения, где необходимые конечные точки (то есть номера портов) динамически распределяются и передаются внутри командного канала.
Такое поведение делает невозможным безопасное использование с помощью простых брандмауэров, т. Е. Вы должны постоянно открывать широкий диапазон портов. Более интеллектуальные брандмауэры предоставляют помощников, которые следят за командным подключением и динамически открывают порты. Но даже те, которые вы потеряли, если вы используете шифрование, то есть FTP с TLS (FTPS), потому что они больше не могут проверять соединение с командой.
Таким образом, при наличии прямого соединения между клиентом и сервером без каких-либо брандмауэров между FTP-работами обычно бывает нормально. Если одна сторона находится за брандмауэром или NAT (как и большинство домашних пользователей), у вас может быть успех после игры с активным или пассивным режимом FTP. Но если обе стороны находятся за брандмауэром или NAT, то вы обычно проигрываете.
Вместо использования FTP я бы рекомендовал использовать SFTP. Этот протокол основан на SSH и использует только одно TCP-соединение. Его можно легко настроить с помощью брандмауэров. Кроме того, это более безопасно, то есть все зашифровано по умолчанию. Многие клиенты, такие как FileZilla или WinSCP, поддерживают его.