Я пытаюсь установить 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