Я немного поигрался с разными вариациями и не могу найти то, что вполне работает.
Я хочу иметь возможность «соединить» соединение SSL через определенный узел шлюза в сети. В частности, я хочу дополнительно иметь возможность контролировать исходящий порт источника для соединения TCP.
Я могу использовать stunnel для части этого - для моста SSL-соединения. Я знаю, что могу использовать nc
чтобы установить исходный порт для соединения, но как я могу соединить эти два вместе, чтобы позволить указать исходный порт для исходящего соединения? (Или здесь есть альтернативное решение, которое я должен рассмотреть?)
Я чувствую, что если я смогу заставить nc
работать как прозрачный прокси, это будет хорошо, так как я могу установить порт источника с ним. Я чувствую, что могу просто что-то упустить из-за того, как работает nc
. Просто для того, чтобы предоставить немного больше контекста, вот что я пытаюсь. Предположим, у меня есть сервер SSL, работающий локально на 1235. Я хочу подключиться к нему с помощью клиента SSL, но я хочу убедиться, что мой исходящий исходный порт для подключения всегда, скажем, 1234. (Я могу подключиться напрямую к клиенту, но у меня есть произвольный порт с большим номером; мне нужно иметь возможность его указать.)
Моя мысль пыталась использовать nc
в качестве моста, с чем-то вроде:
# nc -l localhost:1234 | nc localhost:1235
Это , безусловно , устанавливает прокси - серверов что - то - я вижу трафик , проходящий между правым конечными точками - но это , кажется, не справиться с SSL очень хорошо на всех. Безопасная связь не будет установлена, и я не могу на самом деле общаться между ними, используя клиент / сервер openssl.
Что мне нужно сделать, чтобы это заработало? Я попытаюсь определить, может ли stunnel помочь мне здесь; Я думал, что между ними я смогу заставить это работать.
Хорошо, я немного поиграл с socat
, который, кажется, соединяет соединение - но я не могу понять, как указать исходный порт. Какие-нибудь мысли?