4

Хорошо, вот установка. Я нахожусь за пределами локальной сети и подключаюсь к своей домашней сети с помощью iSSH (на iPad), пока все хорошо, я использовал для перенаправления своего домашнего медиацентра на localhost , создав туннель. Таким образом, я могу ввести localhost:8080 в моей адресной строке и просмотреть мой медиацентр дома, это было:

local port : 8080
destination host : localhost
destination port 8080

Это сработало хорошо.

Теперь я хотел бы пойти дальше и сказать медиацентру, к которому я подключаюсь, чтобы перенаправить 192.168.1.112:8800 , это машина, к которой я хотел бы получить доступ из медиацентра и в основном использовать медиацентр в качестве шлюза. Я предполагаю, что мне придется использовать ssh -L но я не уверен, что это правильный путь.

Как мне создать этот туннель?

4 ответа4

5

Я использую жирный шрифт, чтобы различать локальный порт, к которому вы подключаетесь на iPad (жирным шрифтом), и удаленный порт, к которому вы обращаетесь в медиацентре (не жирным шрифтом).

Похоже, это то, что вы делали:

ssh -L 8080:localhost:8080 username@YourMediaCenterPublicAddress.com

«-L 8080:» означает, что вы собираетесь взять удаленный ресурс и привязать его к локальному порту (в данном случае 8080), что означает, что вы можете подключиться к этому удаленному ресурсу, введя localhost:8080 на своем iPad , Следующая часть «localhost:8080» (с точки зрения медиацентра) - это имя хоста и порт, ресурсы которого вы привязываете к порту 8080 на вашем iPad. Вы можете изменить это на любое имя хоста или IP-адрес и порт, которые ваш медиацентр может видеть в своей сети.

Теперь, когда вы хотите подключиться к 192.168.1.112:8800, это будет выглядеть так:

ssh -L [aLocalPort]:192.168.1.112:8800 username@YourMediaCenterPublicAddress.com

затем вы можете подключиться к 192.168.1.112:8800 , введя localhost:[aLocalPort] в любую программу, которую вы хотите использовать для подключения к нему на вашем iPad. (где [aLocalPort] - это какой-то неиспользуемый локальный порт, например 9000. Вы можете использовать тот же порт, который используется в пункте назначения (8800) для удобства, если хотите)

1

Да, вы можете добавить -L 192.168.1.112:8800 , он свяжет порт вашего локального компьютера (я имею в виду клиента) с туннелем и будет перенаправлен удаленным сервером на указанный адрес и порт.

1

Я нарисовал несколько эскизов

Компьютер, на котором набрана команда ssh tunnel, называется « ваш хост».

SSH туннель, начиная с локального


SSH туннель, начиная с удаленного

Вступление

  1. local: -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

  2. remote: -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 которая может быть достигнута с локального компьютера.

Ваш пример

Второе изображение представляет этот туннель. remotehost - это ваш медиацентр. farawayhost - это ваша машина 192.168.1.112 с розовым портом интереса (в порту чертежа 456 , но в вашем случае порт 8800). Таким образом, команда должна выглядеть так:

ssh -L 123:192.168.1.112:8800 mediacenter

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

localhost:123

где снова 123 - произвольный (выбранный вашей командой туннелирования) номер порта зеленого порта.

0

На самом деле это не ответ, но использование autossh вместо простого ssh - хорошая идея для туннелей: он автоматически восстанавливает туннель при наличии тайм-аута и т.д. (При условии, что вы настроили ssh-ключи)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .