VNC через SOCKS SSH прокси-туннель

Вопрос или проблема

Я могу подключиться к моей частной рабочей сети, используя Putty с следующими настройками:

  • Имя хоста: login.example.com
  • Порт: 502
  • Переадресованные порты SSH: D8888

Это открывает SSH socks-прокси, который позволяет мне получить доступ к внутренним серверам. Я снова использую Putty для подключения к внутреннему серверу Ubuntu, используя вышеуказанный socks-прокси.

Теперь я хочу получить GUI сервера, используя VNC, но не могу подключиться с использованием socks-прокси. Я пытался перенаправить порты, но так как я новичок в этом, возможно, сделал что-то неправильно. Как я могу запустить VNC с моего компьютера с Windows, чтобы получить доступ к удаленному VNC серверу?

Эта статья не помогла мне подключиться, используя vncserver. RDP также не работает. Сеанс VNC находится на другом сервере, доступном только от login.example.com в качестве socks-прокси.

Примечание: я могу SSH в внутренние серверы, используя указанную выше конфигурацию с login.example.com в качестве socks-прокси в Putty.

Если вы используете RealVNC viewer, как показано в статье, на которую вы сослались, то вы должны иметь возможность выполнить следующие действия:

  1. Используйте PuTTY для подключения к login.abc.com и настройте переадресацию D8888 (как вы уже делали).
  2. Запустите RealVNC viewer и нажмите кнопку Options....
  3. Выберите вкладку Connection.
  4. Нажмите радио-кнопку Use these proxy settings.
  5. Установите Proxy type на SOCKS 5.
  6. Установите Proxy address and port на localhost:8888.
  7. Теперь попробуйте подключиться к реальному VNC серверу, например, vnc-server.abc.com:1. Не используйте localhost:1, так как вы должны идти через SOCKS-прокси.

Большинство VNC клиентов не поддерживают SOCKS-прокси, поэтому не могут использовать динамическое перенаправление портов (D в D8888). Вы можете перенаправить локальный порт на конкретную машину+порт вместо этого, но это будет означать одно такое локальное отображение порта на каждую удаленную систему, к которой вы хотите подключиться через VNC. (Это описано в статье, на которую вы сослались – она показывает такое отображение на localhost на другом конце SSH туннеля). Затем вы подключаетесь к перенаправленному порту на вашем локальном компьютере, и SSH туннелирует его для вас на конкретный удаленный адрес:порт.

Переадресованные порты: L8889 x.x.x.x:5900 (x.x.x.x – адрес машины, к которой вы хотите подключиться через VNC)

Некоторые VNC клиенты поддерживают SOCKS-прокси, но это, как правило, платные/профессиональные версии.

Ни одна из бесплатных альтернатив VNC не поддерживала корректно каких-либо видов прокси, поэтому я предложил альтернативу, но она требует возможности как-то добраться до конечной машины через ssh (по желанию, используя опцию -J несколько раз для перехода через некоторые промежуточные узлы).

Что вам нужно сделать, это подключиться к серверу, на котором вы хотите получить доступ к VNC через ssh, включив параметр переадресации X11 (-X).

Для этого вам нужна поддержка X на клиентской машине: если ваш клиент – компьютер с Windows, возможно, лучший вариант – запустить X410 из WSL или использовать что-то вроде MobaXTerm, который будет поддерживать X примитивы, позволяя корректно переадресовать linux GUI на ваш компьютер с Windows.

Как только вы подключены через ssh с переадресацией X, запустите vncviewer, указывая на localhost.

.

Ответ или решение

Для решения проблемы подключения к VNC через socks-прокси SSH туннель, необходимо совершить ряд шагов. Давайте разберемся с вашим текущим рабочим подходом и предложим корректировку, которая позволит успешно подключиться к VNC серверу.

Текущее состояние

Вы используете PuTTY для подключения к вашему рабочему серверу с доменным именем login.example.com и портом 502. SSH туннель настроен с динамическим переадресацией портов на D8888, что позволяет вам использовать socks-прокси для доступа к внутренним серверам. Однако, попытки подключиться к VNC серверу через такой прокси не увенчались успехом.

Проблема

Основная проблема заключается в том, что большинство VNC клиентов не поддерживают работу через socks-прокси напрямую. Это требует использования прямого туннелирования портов.

Решение

Чтобы получить доступ к VNC серверу, выполните следующие шаги:

  1. Настройка прямого портового туннелирования в PuTTY:

    • Запустите PuTTY и подключитесь к login.example.com с вашими стандартными настройками.
    • Перед установлением соединения, перейдите к разделу "Connection" -> "SSH" -> "Tunnels".
    • В разделе "Add new forwarded port" настройте переадресацию портов следующим образом:
      • Source Port: Укажите, например, 8889. Это локальный порт на вашем компьютере.
      • Destination: Укажите IP адрес внутреннего сервера, к которому вы хотите подключиться, и порт VNC (например, x.x.x.x:5900).
      • Убедитесь, что выбрана опция Local и нажмите "Add", чтобы добавить правило.
    • Подключитесь к серверу.
  2. Подключение к VNC через локальный туннель:

    • Установите и запустите ваш VNC-клиент на Windows.
    • Введите в адресной строке VNC клиент localhost:8889. Здесь 8889 — это ранее указанный в PuTTY локальный порт.
  3. Альтернативный подход через X11 Forwarding:

    • Если VNC клиент не устраивает, можно использовать X11 forwarding. Это альтернатива, если ваш клиент поддерживает запуск X-сессий (например, с помощью WSL и X410 или MobaXTerm на Windows).
    • В PuTTY включите опцию Enable X11 forwarding в настройках SSH.
    • На клиенте запустите X-сервер и подключитесь через SSH. Запустите VNC Viewer, используя localhost.

Заключение

Соблюдение вышеописанных шагов позволит вам подключиться к VNC серверу через SSH туннель. Убедитесь, что на вашем VNC сервере запущен соответствующий VNC сервис и открыты необходимые порты. Таким образом, вы сможете безопасно и эффективно работать с графическим интерфейсом удаленного сервера.

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

Оцените материал
Добавить комментарий

Капча загружается...