Назад | Перейти на главную страницу

SSH-туннель или обратный туннель

Я пытаюсь установить SSH-туннель, чтобы разрешить соединения VNC / ARD (порты 5900 и 3389). Однако я не уверен в одном:

Скажем машина А имеет IP 192.168.103.1 и имеет службы, работающие на портах 5900 и 3389.

Я хочу использовать SSH в сервер с IP 192.168.103.254.

Машина B 192.168.103.2 хочет подключиться к машине A, используя туннель на сервер 192.168.103.254 и разные порты (скажем 6001 и 4001)

Итак, настройка будет выглядеть так:

Машина B 192.168.103.2 -> VNC к серверу 192.168.103.254:6001 (перенаправление сервера -> 192.168.103.1:5900)

Я немного знаю о туннеле SSH и обратном туннелировании SSH, но я не уверен, какая команда мне нужна.

Пожалуйста, обратите внимание:

Что я пробовал:

ssh -f user@server.hostname.net -L 6001:localhost:5900 -N

Эта команда выполняется успешно, но когда я пытаюсь подключиться к ней, я получаю сообщение об ошибке в соединении:

Tims-Macbook-Pro:~ Tim$ telnet server.hostname.net 6001
Trying 192.168.103.254...
telnet: connect to address 192.168.103.254: Connection refused
telnet: Unable to connect to remote host

Я тоже пробовал это

sudo ssh -NT -R 6001:localhost:5900 user@server.hostname.net

Команда также выдает ошибку отказа в соединении, когда я пытаюсь получить к ней доступ.

Tims-Macbook-Pro:~ Tim$ telnet server.hostname.net 6001
Trying 192.168.103.254...
telnet: connect to address 192.168.103.254: Connection refused
telnet: Unable to connect to remote host

Вы должны достичь порта 5900 машины A при подключении к сервер localhost порт 6001 с помощью этой команды:

ssh -L 6001:192.168.103.1:5900 root@192.168.103.254

Проверьте этот ресурс для более глубокого понимания туннелирования SSH: http://www.linuxhorizon.ro/ssh-tunnel.html

ОБНОВИТЬ:

Если вам нужно, чтобы несколько клиентов получали доступ к порту 5900 машины A через сервер как это:

Client1
Client2 ---> port 6001 ---> 192.168.103.254 ---> port 5900 --> 192.168.103.1
Client3

Вам нужно запустить эту команду (в клиент):

ssh -L 0.0.0.0:6001:192.168.103.1:5900 root@192.168.103.254

Все клиенты, подключающиеся к сервер порт 6001 достигнет порта 5900 машины A. с помощью этой команды.

Вы пытаетесь подключиться к своему «шлюзовому» серверу, но мы не знаем, разрешен ли такой трафик. Лучше всего попробовать сопоставить удаленный порт с локальным портом, как вы это делали в первом примере, но вам нужно указать на сервер, к которому вы хотите подключиться, например:

ssh -f user@server.hostname.net -L 6001:192.168.103.1:5900 -N

Если нет, как ssh узнать, на какой IP-адрес нужно перенаправить соединение? Таким образом вы сопоставляете порт 5900 удаленного сервера 192.168.103.1 с ЛОКАЛЬНЫМ портом (в данном случае - 6001) через SSH-туннель через server.hostname.net.

Теперь для подключения вам достаточно получить доступ к локальному порту:

telnet localhost 6001