У меня есть сервер (A), на котором установлен ssh, а также веб-сервер.

Как переслать порт с веб-сервером на локальный компьютер (B).

Я должен быть в состоянии перейти к http://localhost:forwardedport

Это ЛОКАЛЬНЫЙ или УДАЛЕННЫЙ порт? Вот что я попробовал.

ssh -L 8888:name.dnydns-server.com:8888 localhost

ssh -L 8888:localhost:8888 name.dnydns-server.com

and both of those with username@name.dnydns-server.com

Что я делаю неправильно?

РЕДАКТИРОВАТЬ: ответы были на самом деле правильные и объясняли использование переадресации портов. Оказалось, что я использовал правильную команду, скорее было правило брандмауэра, которое не позволяло мне подключиться к порту 8888 ОТ самого сервера. Я понял это, когда попытался подключиться к веб-сайту во время sshed на удаленный сервер.

2 ответа2

5

Я предполагаю, что сначала вам нужно разобраться в некоторых терминах, которые я буду использовать:

Клиент означает машину, с которой вы запускаете ssh. Эта машина упоминается как "местная".

Сервер означает машину, к которой вы хотите подключиться через ssh. Эта машина называется "удаленной".

Переадресация локального порта с помощью ssh означает, что вы подключаетесь от своего клиента к вашему серверу и тем самым открываете туннель, чтобы другая программа на вашем клиенте могла подключаться через локальный порт к хосту и порту на сайте сервера. Опция для этого -L local_port:remote_machine:remote_port.

Удаленная переадресация портов с помощью ssh означает, что вы подключаетесь с вашего клиента к вашему серверу и тем самым открываете туннель, чтобы программа на вашем сервере могла подключаться через порт на сервере к хосту и порту на клиентском сайте. Опция для этого:-R remote_port:local_machine:local_port.

Если я вас правильно понимаю, вам нужна локальная переадресация, например, создайте соединение с вашим сервером name.dnydns-server.com, а затем подключитесь к локальному браузеру через порт 8888 на name.dnydns-server.com.

Следующая команда из вашего списка должна делать то, что вы хотите:

ssh -L 8888:localhost:8888 name.dnydns-server.com

Первый 8888 - это порт вашего клиента, к которому может подключаться ваша дополнительная программа (браузер).

"Localhost" в этой строке виден с конца туннеля, то есть на сервере (name.dnydns-server.com). Там localhost - это сама машина, так что это та, которую вы хотите. (Вы можете разместить другое имя в сети вашего сервера там для доступа к этому)

Второй порт 8888 - это порт, к которому вы хотите подключиться на сайте сервера. Если вы запускаете свой веб-сервер на стандартном порту 80, вам придется изменить его на 80.

name.dnydns-server.com - это имя вашего ssh-сервера, к которому вы подключаетесь, который затем является конечной точкой туннеля.

Я не знаю, почему эта линия не работает для вас, хотя. Вы вышли из SSH? Он должен оставаться на связи все время, чтобы туннель работал. Порт по умолчанию на веб-сервере? Веб-сервер не работает?

Изменить: я изменил определения "клиент" и "сервер", чтобы прояснить ситуацию, поэтому некоторые комментарии больше не применяются и относятся к удаленному контенту.

3

Я предполагаю, что на сервере установлен sshd, и он прослушивает общеизвестный порт по умолчанию (22), а веб-сервер прослушивает общеизвестный порт по умолчанию (80). Предполагается, что сервер является сервером (A) является «каналом», через который вы хотите туннелировать, чтобы добраться до веб-сервера. Вот что вам нужно, чтобы «сказать» ssh в этом случае:

ssh -L <local port to point your browser toward>:<host name or IP of the web server>:<port that the web server is listening on> <valid user on server>@<server name or ip address>

Итак, вот как я думаю, это должно выглядеть на основе того, что я думаю, вы пытаетесь сделать:

ssh -L 8888:web.server.dyndns-server.com:80 youruserid@yourserver

Сделайте это, затем укажите в браузере localhost:8888.

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