Простой способ создания туннеля из одного локального порта в другой?

У меня есть сервер разработки, доступный только от 127.0.0.1:8000, а не 192.168.1.x: 8000. Как быстрый взлом, есть ли способ настроить что-то для прослушивания на другом порту (скажем, 8001), так что из локальной сети я мог бы подключиться к 192.168.1.x: 8001 и туннелировать трафик между клиентом и 127.0 .0.1: 8000?

5 Solutions collect form web for “Простой способ создания туннеля из одного локального порта в другой?”

Использование ssh – самое простое решение.

ssh -g -L 8001: localhost: 8000 -f -N user@remote-server.com

Это перенаправляет локальный порт 8001 на вашу рабочую станцию ​​на адрес localhost на удаленном сервере 8000.
-g означает, что другие клиенты в моей сети могут подключаться к порту 8001 на моей рабочей станции. В противном случае только локальные клиенты на вашей рабочей станции могут подключаться к пересылаемому порту.
-N означает, что все, что я делаю, это пересылка портов, не запускать оболочку.
-f означает fork в фоновом режиме после успешного соединения SSH и входа в систему.
Порт 8001 останется открытым для многих соединений, пока ssh не умрет или не погибнет. Если вы оказались в Windows, отличный клиент SSH PuTTY может это сделать. Используйте 8001 в качестве локального порта и localhost: 8000 и пункт назначения и добавьте локальную переадресацию портов в настройках. Вы можете добавить его после успешного соединения с PuTTY.

С помощью socat на сервере:

 socat tcp-listen:8001,reuseaddr,fork tcp:localhost:8000 

По умолчанию, socat будет прослушивать TCP-порт 8001 на любом IPv4 или IPv6-адресе (если поддерживается) на компьютере. Вы можете ограничить его IPv4 / 6, заменив tcp-listen на tcp4-listen или tcp6-listen или на определенный локальный адрес, добавив a ,bind=that-address .

То же самое для подключаемого сокета, к tcp6 вы tcp6 , вы можете использовать любой адрес вместо localhost и заменить tcp на tcp4 или tcp6 если вы хотите ограничить разрешение адреса IPv4 или IPv6-адресами.

Обратите внимание, что для сервера, прослушивающего порт 8000, соединение будет отображаться как исходящее от прокси (в случае localhost , которое будет localhost ), а не для исходного клиента. Вам нужно будет использовать DNAT-подходы (но для которых требуются привилегии суперпользователя), чтобы сервер мог определить, кто является клиентом.

Использование традиционного nc – самое простое решение:

 nc -l -p 8001 -c "nc 127.0.0.1 8000" 

Эта версия nc находится в netcat-traditional пакете netcat-traditional на Ubuntu. (Вы должны update-alternatives или назвать его nc.traditional .)

Обратите внимание, что в отличие от ssh это не зашифровано. Имейте это в виду, если вы используете его за пределами одного хоста.

OpenBSD netcat доступен по умолчанию в Linux, а также в OS X.

OSX:

 mkfifo a mkfifo b nc 127.0.0.1 8000 < b > a & nc -l 8001 < a > b & 

Linux:

 mkfifo backpipe nc -l 12345 0<backpipe | nc www.google.com 80 1>backpipe 

Альтернативой, которая работает в OS X bash, является использование двунаправленной трубы . Он может работать и с другими Unix:

 nc 127.0.0.1 8000 <&1 | nc -l 8001 >&0 
 iptables -t nat -A PREROUTING -p tcp --dport <origin-port> -j REDIRECT --to-port <destination-port> service iptables save service iptables restart 
  • Есть ли более быстрый интерфейс для информации из / proc / net / tcp?
  • Как записывать сеанс TCP / TLS в societ socat?
  • Отключить порт неисправной программы
  • Привязать непривилегированное приложение к привилегированному порту в Mac OS X
  • Обертка для предотвращения доступа программы к нелокальным соединениям
  • Socat открывает TCP только при открытии PTY
  • Определение того, какой процесс связан с портом
  • Можете ли вы отправить TCP-пакет с флагом RST, установленным с помощью IPTABLES, как способ обмануть NMAP, чтобы понять, что порт закрыт?
  • Какова связь между DISPLAY: 1.0 и портом 5901
  • Как получить доступ к http-серверу из сценария bash с существующим подключением tcp?
  • Почему TCP-соединения IPv4 отображаются как tcp6?
  • Interesting Posts

    История Бэша

    Переименуйте все папки, удалив определенную часть первых цифр или символов из имени

    Обмен пропускной способностью между IP-адресами

    Как я могу использовать VPN для входящих соединений и прямую линию для исходящих соединений?

    Установка темы – Монетный двор 17.2

    Не уверен, какое аудиоустройство будет проходить через OVMF

    Сценарий Bash: неожиданный конец файла (FreeBSD)

    где поставить двоичные файлы, чтобы они всегда находились на пути и их можно было легко найти

    xautolock: как автоматически разблокировать активность пользователя?

    Как создать динамическую подстановку процессов на основе ввода (несколько FIFO)?

    Непрерывное использование mutt

    Что значит быть совместимым с «ш»?

    Сценарий SSH и команда запуска

    sed – удалить последнее вхождение строки (запятой) в файл?

    Объединение файлов в каталог по заголовкам и исключение общего содержимого

    Linux и Unix - лучшая ОС в мире.