Существуют ли инструменты для туннелирования соединений через соединение VNC (или RFB)?

Примечание: это не так, повторяйте не вопрос о туннелировании VNC поверх чего-то другого, например, SSH. Это совершенно другая вещь.

Настроить

У меня есть машина M1 в каком-то сетевом сегменте, которая доступна с машины M2 вне сегмента через VNC, но (для обсуждения) никакого другого протокола вообще нет. Никакие другие машины в этом сегменте не доступны за пределами сегмента. Кроме того, M1 и другие машины в его локальном сегменте имеют ограниченную исходящую связь; в частности, M1 не может подключиться по SSH к любому nachine за пределами своего собственного локального сегмента (и, возможно, даже не там).

Теперь, если я запускаю VNC-клиент на M2, направляю его на M2, регистрируюсь и запускаю оболочку, я могу в основном запускать все, что хочу, и получать доступ к машинам в локальном сегменте M1. Тем не менее, я ограничен графическим взаимодействием клиента VNC.

Цель

Я хотел бы иметь возможность туннелировать соединения каким-либо образом с моей машины M2 на любую машину в локальном сегменте M1, в любое место, где я мог бы подключиться с M1.

Вопрос

Как я могу это сделать? Или, скорее, инструменты, необходимые для этого, уже разработаны и находятся в свободном доступе?

идеи

VNC основан на пикселях. Я не знаком с протоколом, но предположим, что нет никаких интересных данных "побочного канала", похоже, нам нужен двоичный файл или скрипт на M, который откроет окно или просто любой прямоугольник на VNC 'display', использующий прямоугольник для вывода и движение клавиатуры / мыши, которое это окно получает в качестве ввода. Эти два канала могут использоваться, например, для связи с сеансом оболочки (или nc сессия, если хотите). Клавиши клавиш становятся входным потоком (возможно, ограничивая себя base64), а пиксели соответствуют выходному потоку (и у нас будет либо очень маленькое окно, которое изменяется очень быстро, либо, ну, в общем, большие окна, которые также должны изменяться довольно быстро,

С другой стороны, "клиент" VNC не должен отображать этот мусор на экране и вводить данные с клавиатуры или мыши, а просто использовать порты для ввода и вывода этих данных.

Как вы думаете?

[У машины есть SSH-сервер, но он поддерживает только локальные соединения

0 ответов

Другие вопросы по тегам