У меня есть вопрос по поводу SSH туннелирования. Я прочитал эту статью
Я бы хотел, чтобы X-forwarding работал и запускал некоторые X-приложения дома и отображал их в удаленной системе:
ssh -X -R 5555:localhost:22 user@remoteserver.com -N
На пульте:
ssh -X -p 5555 user@192.168.1.2
Потом по дому:
//configure sshd to listen on 5555
ssh user@remoteserver.com
//here run some app
Должно ли это работать?
ssh
x11
ssh-tunneling
xforwarding
wawa235
источник
источник
Ответы:
Я нарисовал несколько эскизов
Компьютер, на котором набрана команда ssh tunnel, называется « ваш хост» .
Введение
местный:
-L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
ssh -L sourcePort:forwardToHost:onPort connectToHost
означает: подключиться с помощью sshconnectToHost
и перенаправить все попытки подключения на локальныйsourcePort
портonPort
на вызываемом компьютере, доступ кforwardToHost
которому можно получить сconnectToHost
компьютера.дистанционный пульт:
-R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
ssh -R sourcePort:forwardToHost:onPort connectToHost
означает: подключиться через sshconnectToHost
и перенаправить все попытки подключения к удаленномуsourcePort
портуonPort
на вызываемую машину, доступ кforwardToHost
которой можно получить с локальной машины.Ваш пример
Что ж, если вы только хотите, чтобы X-экспедиция работала, т.е. запускала некоторые X-приложения на компьютере дома и отображала их в удаленной системе (назовем это рабочим компьютером, потому что это может быть на вашем рабочем месте), то вы, возможно, не нужен туннель SSH вообще.
Запустить X приложений без туннеля
Можете ли вы просто ssh с рабочего компьютера на домашний компьютер? Если это так, когда вы сидите за рабочим компьютером и хотите запустить приложение X, которое запускается на вашем домашнем компьютере, но отображается на вашем рабочем компьютере , вы должны ввести (на рабочем компьютере):
ssh -X homeuser @ homecomputer firefox
Это запустит Firefox на вашем домашнем компьютере и отобразит его на компьютере, на котором вы ввели эту команду, например, на вашем рабочем компьютере.
Скрытому компьютеру нужен туннель
Это изображение № 3 из моих эскизов. Часто домашний компьютер недоступен напрямую из Интернета, потому что он находится за брандмауэром или скрыт через NAT (от маршрутизатора). Тогда вы можете использовать туннель.
На своем синем домашнем компьютере (
yourhost
) вы печатаете:где
5555
находится зеленый порт и22
это розовый порт на изображении.Если вы сейчас находитесь на работе,
remotehost
подключитесь к зеленому порту и подключитесь к нему5555
, ваше соединение будет туннелировано / перенаправлено на розовый порт вашего домашнего компьютераlocalhost
(т. Е. Самого голубого домашнего компьютера). Теперь вы должны набрать на своем рабочем компьютере:который запустит firefox на вашем домашнем компьютере (
yourhost
) и отобразит его на компьютере, на котором вы ввели эту команду, например, на вашем рабочем компьютере (remotehost
).источник
Вам необходимо указать удаленный дисплей, который вы хотите переслать. На пульте:
Переслать
:0
дисплей.Затем в этой оболочке (теперь работающей на вашей домашней машине) выполните:
узнать, что такое перенаправленный дисплей. Это будет что-то вроде этого
localhost:10
, что означает, что вам нужно установить TCP-соединение через порт 6010 для подключения к дисплею:0
на удаленном компьютере (то:0
есть для подключения к некоторому сокету домена Unix в чем-то подобном/tmp/.X11-unix
)Затем, чтобы приложение на вашем компьютере отображалось на дисплее удаленного сервера, нужно просто сказать им
localhost:10
:например.
Обратите внимание, что это туннель над туннелем.
источник