Я нарисовал несколько эскизов
Компьютер, на котором набрана команда 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).