Использование FTP-прокси с Apache Commons-Net
-
12-09-2019 - |
Вопрос
Я хочу настроить FTP-соединение с использованием прокси-сервера с общей сетью Apache.
Но глядя на это Поддерживает ли FTPClient FTP-соединения через прокси-сервер FTP? меня беспокоит.
Мне приходится вмешиваться в свойства системы, и в документах Sun говорится, что «Если носкиПроксиХост указан, то все TCP-сокеты будут использовать прокси-сервер SOCKS для установления соединения или принятия его».
ЧТО?Все TCP-сокеты?А как насчет моих подключений к базе данных?Или другие FTP-соединения, которые я, возможно, захочу открыть одновременно, не используя прокси?Все ли они будут затронуты?
Есть ли какой-нибудь другой способ сделать это, который не мешает остальной части моего приложения?
Решение
У вас есть несколько способов использования прокси в Java, особенно начиная с версии 1.5.
- Использование свойств системы:быстрый и мощный, но ограниченная гибкость
- Вы можете использовать прокси-сервер SOCKS для всех TCP-соединений.
- Вы также можете установить прокси-сервер для каждого протокола, что возможно для HTTP, FTP и HTTPS.
- Для обоих методов вы можете указать список хостов, которые не буду использовать прокси
- Используя
java.net.Proxy
class (Java 1.5+), чтобы установить (или нет)Proxy
заConnection
- Реализация
java.net.ProxySelector
(то же самое), что будет определятьProxy
для каждогоConnection
по вашим критериям
См. Подробная техническая заметка Sun о сетях и прокси-серверах.