1

извините, если мой вопрос глуп, но я не могу понять две вещи. Предположим, я делаю пример, написанный здесь:

[...] вы хотели подключиться со своего ноутбука к http://www.ubuntuforums org, используя SSH-туннель. Вы должны использовать порт источника 8080 (альтернативный порт http), порт назначения 80 (порт http) и сервер назначения www.ubuntuforums.org. :

ssh -L 8080:www.ubuntuforums.org:80 <host>

Где <host> должен быть заменен именем вашего ноутбука.

Q1: Чего я действительно могу достичь с этим? На удаленном сервере sshd недоступен, поэтому трафик оставляет мой ПК незашифрованным, верно? Для чего мне это нужно?

Q2: я пытаюсь сделать ssh -L 4444: linuxpl.com: 80 localhost. Когда я ввожу http://localhost: 4444 в своем веб-браузере, я вижу внутренний сайт LiteSpeed Web Server. Когда я пробую другие страницы, я вижу внутренние сайты Apache. Когда я пытаюсь что-то другое, я вижу сообщение 404 страницы этого сайта не найдено. Хотя некоторые из них работают как положено. Почему это происходит? Как это исправить?

2 ответа2

1

Q1: вы бы не хотели этого делать. Страница глупая в своей редакции. Как вы сказали, трафик будет передаваться с вашего компьютера на ваш компьютер в зашифрованном виде, а затем полностью незашифрованным на сайт форума. Они могли бы объяснить это, используя другой компьютер для пересылки трафика, например, чтобы обойти брандмауэр.

Учебное пособие означает «вы хотите подключиться к форуму через ноутбук с другого компьютера», и тогда это имеет смысл.

В2: Если вы откроете http://localhost: 4444/ на своей машине, он сделает запрос HTTP на форум, но сообщит форуму, что вы хотите использовать хост localhost , а не linuxpl.com . Сервер, вероятно, вернет страницу по умолчанию, а не фактический виртуальный хост, который вы хотели, поскольку он использует виртуальные хосты, а localhost не сопоставляется с тем же сайтом, что и linuxpl.com .

Таким образом, в целом, пересылка HTTP-трафика через ssh-туннели не будет так легко работать много раз. Перенаправление на прокси-сервер куда-то будет работать намного лучше.

Чтобы ваш браузер отправлял правильные заголовки, вы можете добиться успеха, настроив файл hosts так, чтобы он утверждал, что целевой адрес - ваш компьютер. Таким образом, когда браузер распознает адрес, он подключится к вашему локальному компьютеру и все равно сообщит HTTP-серверу правильное имя хоста.

Вы можете попробовать это, добавив строку

127.0.0.1        linuxpl.com

в /etc /hosts

0

Q1: я использовал это в среде, где у вас нет контакта с Интернетом. Представьте, что вы используете свой ноутбук в сети, которая не позволяет подключаться к внешнему миру, но есть одна машина, которая может подключаться как к внешнему миру, так и к сети, в которой находится ваш ноутбук. Таким образом, чтобы иметь возможность просматривать, вам необходимо подключиться к этой машине, так что ваш интернет-трафик поступает во внешнюю сеть через авторизованную машину.

Соединение происходит примерно так: когда вы набираете http://localhost: 4444, ssh получит запрос и отправит его на хост, который затем отправит его на linuxpl.com:80. Соединение между вашим ноутбуком и хостом зашифровано с помощью ssh, соединение между хостом и Интернетом не зашифровано, т.е. ssh только пересылает и шифрует сообщения между вашими двумя компьютерами.

Q2: Не совсем понимаю, в чем проблема, но ssh -L 4444: linuxpl.com: 80 localhost не имеет смысла ... поскольку вы туннелируете между вашей машиной и вашей машиной ...

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