Мне нужно туннелировать через tcp-прокси. В Java типами прокси являются только socks, direct или HTTP. Итак, в приведенном ниже примере создается сокет, а затем создается прокси-объект из socketAddress, тип - socks.
Как я могу указать, что прокси - это TCP?
SocketAddress addr = new InetSocketAddress("socks.example.com", 1080);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
Socket socket = new Socket(proxy);
InetSocketAddress dest = new InetSocketAddress("server.example.org", 1234);
try {
socket.connect(dest);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return isValidated;




Вам нужен ПРЯМОЙ прокси для Localhost на порту, который вы настроили для туннелирования к месту назначения. Например, если ваш туннель настроен на переход от 4000 (локальный) к 3389 (на хосте, к которому вы действительно хотите подключиться), то местом назначения будет Localhost, 1000, тип прокси-сервера Direct. См. SSH-туннелирование через JSch
Не знаю, не пробовал. Я считаю, что то, что вы делаете, - это туннелирование, а то, что вы пробовали, было прокси, а это разные вещи. Если это туннель, то ваше приложение блаженно не знает, как данные попадают с одной машины на другую, ему просто нужно указать, куда подключиться.
Возможно, мое слово о туннелировании было использовано неправильно. Почему java не поддерживает tcp-прокси, почему только socks и http? Мне нужно подключиться к прокси-серверу TCP. Думаю, это моя проблема, но Java не позволяет использовать этот метод. Любые идеи?
Можно ли это сделать без SSH? У вас есть простой образец, который вы могли бы предоставить?