Я нарисовал несколько эскизов
Компьютер, на котором набрана команда 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
означает: подключиться с помощью ssh connectToHost
и перенаправить все попытки подключения на локальный 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
означает: подключиться через ssh connectToHost
и перенаправить все попытки подключения к удаленному sourcePort
порту onPort
на вызываемую машину, доступ к forwardToHost
которой можно получить с локальной машины.
Ваш пример
Что ж, если вы только хотите, чтобы X-экспедиция работала, т.е. запускала некоторые X-приложения на компьютере дома и отображала их в удаленной системе (назовем это рабочим компьютером, потому что это может быть на вашем рабочем месте), то вы, возможно, не нужен туннель SSH вообще.
Запустить X приложений без туннеля
Можете ли вы просто ssh с рабочего компьютера на домашний компьютер? Если это так, когда вы сидите за рабочим компьютером и хотите запустить приложение X, которое запускается на вашем домашнем компьютере, но отображается на вашем рабочем компьютере , вы должны ввести (на рабочем компьютере):
ssh -X homeuser @ homecomputer firefox
Это запустит Firefox на вашем домашнем компьютере и отобразит его на компьютере, на котором вы ввели эту команду, например, на вашем рабочем компьютере.
Скрытому компьютеру нужен туннель
Это изображение № 3 из моих эскизов. Часто домашний компьютер недоступен напрямую из Интернета, потому что он находится за брандмауэром или скрыт через NAT (от маршрутизатора). Тогда вы можете использовать туннель.
На своем синем домашнем компьютере ( yourhost
) вы печатаете:
ssh -R 5555:localhost:22 remoteuser@remotehost
где 5555
находится зеленый порт и 22
это розовый порт на изображении.
Если вы сейчас находитесь на работе, remotehost
подключитесь к зеленому порту и подключитесь к нему 5555
, ваше соединение будет туннелировано / перенаправлено на розовый порт вашего домашнего компьютера localhost
(т. Е. Самого голубого домашнего компьютера). Теперь вы должны набрать на своем рабочем компьютере:
ssh -X -p 5555 homeuser@localhost firefox
который запустит firefox на вашем домашнем компьютере ( yourhost
) и отобразит его на компьютере, на котором вы ввели эту команду, например, на вашем рабочем компьютере ( remotehost
).