Из глобальной сети VNC не может подключиться через туннель ssh 5900, если он также не проксирован локально

В моей локальной сети я могу довольно легко использовать VNC-over-an-ssh-tunnel. Я хочу сделать то же самое из-за рубежа.

Сервер настроен на прием ssh-соединений на стороне WAN, и это работает надежно. Проблема в том, что за границей я не могу начать успешную сессию VNC через туннель ssh. Аналогичная настройка туннелирования используется, когда я делаю то же самое в своей локальной сети (которая отлично работает).

Таким образом, "оттуда" я могу подключиться по SSH, но когда я пытаюсь подключить VNC к 127.0.0.1, я получаю UltraVNC: Connection failed - End of stream Возможные причины - другой пользователь уже прослушивает этот идентификатор - плохое соединение... с любыми портами, которые я могу использовать.

К счастью, TightVNC обеспечивает некоторый уровень регистрации. Неудачное соединение записывается так:

[  512/ 1904] 2015-03-22 10:33:34:617 : Initialization of socket stream and input/output gates...
[  512/ 1904] 2015-03-22 10:33:34:617 : Connection is established
[  512/ 1904] 2015-03-22 10:33:34:617 - Protocol stage is "Handshake".
[  512/ 1904] 2015-03-22 10:33:34:647 - onDisconnect: Connection has been gracefully closed
[  512/ 2060] 2015-03-22 10:33:35:719 - Process focus restoration in the RfbKeySym class
[  512/ 2060] 2015-03-22 10:33:35:719 - Process focus loss in the RfbKeySym class
[  512/ 2060] 2015-03-22 10:33:35:829 - Process focus restoration in the RfbKeySym class

И успешный выглядит так (из моей локальной сети):

[ 7536/ 2900] 2015-03-22 11:22:28:892 : Initialization of socket stream and input/output gates...
[ 7536/ 2900] 2015-03-22 11:22:28:892 : Connection is established
[ 7536/ 2900] 2015-03-22 11:22:28:892 - Protocol stage is "Handshake".
[ 7536/ 8032] 2015-03-22 11:22:28:946   client rect: 0, 0; 124, 31
[ 7536/ 8032] 2015-03-22 11:22:28:946   Desktop-window. (x, y): (0, 29); (w, h): (124, 2)
[ 7536/ 2900] 2015-03-22 11:22:29:040 - Server sent protocol version: RFB 003.008
[ 7536/ 2900] 2015-03-22 11:22:29:040 - Send to server protocol version: RFB 003.008

После нескольких недель потянув за волосы, разных попыток клиента и попыток любой конфигурации переадресации портов, о которой я мог подумать (на маршрутизаторах с обеих сторон), я наконец сделал прорыв.

Я установил второй ssh-туннель в PuTTY - Dynamic на порт 1080 (D1080). Затем я использовал VNC-клиент, который позволяет прокси-соединение RealVNC VNC-Viewer, и указал его на локальный порт 1080 (тип SOCKS 5).

ЭТОТ. РАБОТАЕТ. Теперь я уверен, что мой сеанс VNC защищен, но только если я прохожу через локальный прокси-сервер SOCKS, когда нахожусь за границей. Недостатком является то, что я не могу использовать мой любимый клиент UltraVNC Viewer.

Кроме того, я не понимаю, что происходит; Я ищу объяснение. Почему простой туннель L5900 не выполняет работу с WAN, тогда как в локальной сети?

1 ответ

Решение

Проблема здесь заключается в настройке туннеля SSH в PuTTY.

Основываясь на веб-учебнике, я настроил свой туннель 5900 SHH с IP-адресом локальной сети сервера. 192.168.1.110так это выглядело как L5900 192.168.1.110:5900 в замазке. Целевой хост был также 192.168.1.110, Как мы знаем, это работало нормально.

Затем я настроил свой SSH-сеанс с PuTTY для использования за границей. Позор мне, я использовал WAN IP как на целевом хосте, так и в туннеле. Теперь я понимаю, что когда он получал пакеты, предназначенные для порта 5900, сервер OpenSSH сделал так, как было указано - он перенаправил их на мой маршрутизатор NAT (или попытался, в любом случае, так как указатель был на адрес WAN).

Верный способ настроить PuTTY - всегда использовать IP-адрес локальной сети для туннеля 5900. Еще лучше, так как в моем случае сервер VNC находится на той же машине, что и сервер OpenSSH, просто используйте localhost для туннеля, как в L5900 localhost:5900,

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