Как создать прозрачный туннель через носки на окнах?

781
guai

Я хочу создать туннель - прослушивать некоторый фиксированный порт на моей локальной машине, и каждый трафик, который он получает, будет передаваться через прокси-сервер SOCKS (с аутентификацией) на какой-то конкретный фиксированный хост и порт за этим прокси-сервером и обратно.
На окнах.
Он должен вести себя как туннель переадресации портов ssh, но с промежуточным прокси-сервером SOCKS.
Как я могу этого достичь?

UPD: я думаю, что мне нужно что-то вроде https://github.com/tonyseek/rsocks, но для Windows, возможно, я смогу запустить его через WSL

1
Поддерживает ли приложение, которое вы пытаетесь использовать, SOCKS4 / 5? SOCKS использует заголовок уровня сеанса во всех пакетах для управления прокси-соединением, в отличие от туннелей SSH, который просто полагается на настройку порта назначения, используемого приложением. SOCKS хорош, когда вы не можете предсказать удаленную конечную точку для предварительной настройки туннеля и настроить приложение для его использования, но не шифруете весь пакет и требует, чтобы приложение сознательно использовало его. Frank Thomas 5 лет назад 0
@FrankThomas, вы правы, есть приложение, у которого нет поддержки / настроек носков, но я могу также настроить хост и порт, к которому он должен подключаться. Он работает нормально через ssh-туннели, но теперь мне также нужно пропускать трафик через прокси socks guai 5 лет назад 0
Я боюсь, что socks не работает таким образом, если только вы не найдете какое-либо программное обеспечение, которое может обрабатывать трафик Socks-ify, и перенаправить его на прокси-сервер. Вы не можете установить сессию SOCKS только с хостом и портом. это просто не работает так же, как ssh или stunnel. Frank Thomas 5 лет назад 0
@FrankThomas, я знаю это и ищу такое программное обеспечение guai 5 лет назад 0

1 ответ на вопрос

0
harrymc

То, что вы просите, называется переадресацией удаленных портов . Вам нужен только SSH для его работы, и никакого другого программного обеспечения или прокси не требуется.

Для Linux вам нужно отредактировать /etc/ssh/sshd_configфайл, который наверняка имеет аналог в Windows. Добавьте следующую строку внизу:

GatewayPorts yes 

Вы будете использовать команду

ssh -R sourcePort:forwardToHost:onPort connectToHost 

Что означает: подключитесь с помощью ssh к connectToHost и перенаправьте все попытки подключения на удаленный SourcePort на порт onPort на машине с именем forwardToHost, доступ к которой можно получить с локального компьютера.

Есть много полезных источников, которые можно найти. Некоторые из них:

это не то, что мне нужно. Да, мне нужен прозрачный туннель, как делает ssh, но с носками между конечными точками. rsocks кажется многообещающим. Я сделал это работает на окнах через WSL. Может быть, он будет работать и на голых окнах, так как в Python - еще не пробовал guai 5 лет назад 0