извините, если мой вопрос глуп, но я не могу понять две вещи. Предположим, я делаю пример, написанный здесь :
[...] вы хотели подключиться со своего ноутбука к 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. Когда я пытаюсь сделать что-то другое, я вижу сообщение об отсутствии страницы на этом сайте. Хотя некоторые из них работают как положено. Почему это происходит? Как это исправить?
источник
Ответы:
Q1: вы бы не хотели этого делать. Страница глупая в своей редакции. Как вы сказали, трафик будет передаваться с вашего компьютера на ваш компьютер в зашифрованном виде, а затем полностью незашифрованным на сайт форума. Они могли бы объяснить это, используя другой компьютер для пересылки трафика, например, чтобы обойти брандмауэр.
Учебное пособие означает «вы хотите подключиться к форуму через ноутбук с другого компьютера», и тогда это имеет смысл.
Q2: Если вы откроете http: // localhost: 4444 / на своей машине, он сделает запрос HTTP на форум, но сообщит форуму, что вы хотите хост
localhost
, а неlinuxpl.com
. Сервер, вероятно, вернет страницу по умолчанию, а не фактический виртуальный хост, который вы хотели, поскольку он использует виртуальные хосты иlocalhost
не сопоставляется с тем же сайтом, что иlinuxpl.com
.Таким образом, в целом, пересылка HTTP-трафика через ssh-туннели не будет так легко работать много раз. Перенаправление на прокси-сервер куда-то будет работать намного лучше.
Чтобы ваш браузер отправлял правильные заголовки, вы можете добиться успеха, настроив файл hosts так, чтобы он утверждал, что целевой адрес - ваш компьютер. Таким образом, когда браузер распознает адрес, он подключится к вашему локальному компьютеру и все равно сообщит HTTP-серверу правильное имя хоста.
Вы можете попробовать это, добавив строку
в / etc / hosts
источник
localhost
ноhost
. Это полностью действительный и универсально применимый учебник.laptop
это машина, к которой вы можете подключиться. Нигде не сказано, что это одна и та же машина. Это может быть, конечно, но опять же: это просто учебник для изучения синтаксиса команды .Q1: я использовал это в среде, где у вас нет контакта с Интернетом. Представьте, что вы используете свой ноутбук в сети, которая не позволяет подключаться к внешнему миру, но есть одна машина, которая может подключаться как к внешнему миру, так и к сети, в которой находится ваш ноутбук. Поэтому, чтобы иметь возможность просматривать Вам нужно будет подключиться к этой машине, чтобы ваш интернет-трафик входил во внешнюю сеть через авторизованную машину.
Соединение происходит примерно так: когда вы набираете http: // localhost: 4444, ssh заберет запрос и отправит его на хост, который затем отправит его на linuxpl.com:80. Соединение между вашим ноутбуком и хостом зашифровано с помощью ssh, соединение между хостом и Интернетом не зашифровано, т.е. ssh только пересылает и шифрует сообщения между вашими двумя компьютерами.
Q2: Не совсем понимаю, в чем проблема, но ssh -L 4444: linuxpl.com: 80 localhost не имеет смысла ... поскольку вы туннелируете между вашей машиной и вашей машиной ...
источник