Маршрут через SOCKS для FTPSClient из Commons Net
Используйте интерфейс socket-прокси Commons Net для FTPS, сохраняя имя хоста сервера, пассивные соединения данных и проверку TLS.
Когда доступен посредник SOCKS, FTPSClient из Commons Net может использовать унаследованный интерфейс socket-прокси. Оставьте сервер FTPS пунктом назначения соединения:
var client = new org.apache.commons.net.ftp.FTPSClient(false);
client.setProxy(new java.net.Proxy(
java.net.Proxy.Type.SOCKS,
new java.net.InetSocketAddress("proxy.example", 1080)));
client.setTrustManager(null);
client.setEndpointCheckingEnabled(true);
client.setConnectTimeout(10000);
client.connect("ftps.example", 21);
Это запускает явное соединение FTPS. Приложение по-прежнему отвечает за вход, согласование защиты данных, обработку передачи и отключение. Настройка null trust manager выбирает стандартные trust manager-ы JVM вместо проверки сертификата только по дате в Commons Net. Используйте предусмотренное хранилище доверия и имя хоста сертификата сервера.
При пассивных передачах текущая реализация FTPSClient создаёт свой сокет данных тоже через настроенный прокси, а затем добавляет уровень TLS. После входа используйте пассивный режим и согласуйте требуемый защищённый канал данных через обычный API FTPS. Успешное управляющее соединение не завершает эту работу; пассивное соединение данных остаётся отдельным путём.
Код предполагает службу SOCKS без дополнительной учётной записи. Поддержка аутентификации требует отдельного рассмотрения для выбранной среды выполнения Java и развёртывания.
Это не интерфейс HTTP CONNECT из FTPHTTPClient. Тот собрат обрабатывает обычный FTP через HTTP-туннель; смена его порта не добавляет FTPS. Если сеть разрешает только HTTP-прокси, выберите реализацию FTPS или поддерживаемую адаптацию с поддержкой CONNECT и на управляющем, и на канале данных.
Сохраняйте настройку прокси на протяжении всего жизненного цикла клиента и пересматривайте её перед повторным подключением используемого экземпляра: отключение FTPS сбрасывает фабрики сокетов. Не заменяйте проверки сертификатов менеджером полного доверия, чтобы маршрут казался успешным.