SSH локальное перенаправление портов для веб-трафика требует конфигурации прокси в настройках браузера?

tail -f file > /dev/lp0

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

3
30.08.2014, 02:30
1 ответ

Если вы пытаетесь использовать ваш удаленный SSH-сервер в качестве SOCKS-прокси для вашего браузера, команда ssh, которую вы ищете:

ssh -N -D8080 <remote-sshd-machine>

Это запустит SOCKSv4/5-прокси на локальном хосте TCP-порта 8080, который позволит вам просматривать любой вебсайт с IP-адресом удаленного SSH-сервера. Однако, если вы пытаетесь получить доступ к удалённому сайту (например, whatsmyip.org) через localhost, обратите внимание на следующее:

  1. Удалённый сервер должен не использовать виртуальные хосты, основанные на именах. Виртуальный хостинг, основанный на имени, размещает несколько разных сайтов (например, example.com и example.org) на одном IP-адресе. Дифференциация между сайтами происходит исключительно по URL, указанному в браузере, так как и example.com и example.org будут преобразовываться в один и тот же IP. В вашем случае удалённый сервер посмотрит на URL, который является http://localhost и, вероятно, выдаст ошибку или сделает что-то непредсказуемое (Apache имеет тенденцию делать это!), потому что он не распознаёт доменное имя "локального хоста" в своём списке виртуальных хостов, основанных на именах.
  2. Удаленный сервер должен игнорировать тот факт, что номер порта изменился с 80 на 8080. Обычно большинство статических HTML сайтов и веб-серверов игнорируют это, однако, некоторые серверы и веб-приложения могут попытаться перенаправить вас на порт 80, что, очевидно, сломает вашу работу.

Если вы действительно хотите симулировать вышеизложенное (я не проверял это тщательно, и я не призываю вас делать привычку запускать ssh от имени root!), попробуйте следующее:

sudo ssh -N -L 127.0.0.1:80:whatsmyip.org:80 <remote-sshd-machine>

вам нужно sudo выше, потому что вы просите клиента ssh прослушивать порт 80, который <1024 и считается привилегированным портом, и только процессы, принадлежащие root, могут связываться с этими портами. Также обратите внимание, что вы не можете запустить на своем клиенте никакие другие службы на порту 80 (например, веб-сервер). Если это так, то вам нужно остановить эту службу и освободить порт 80 до того, как вы попробуете эту команду.

Во-вторых, добавьте следующую строку в /etc/hosts:

127.0.0.1 whatsmyip.org www.whatsmyip.org

Первая команда перенаправит TCP порт 80 на вашей локальной машине (SSH клиенте) на порт 80 на whatsmyip.org. Файл hosts обеспечит, что когда вы запрашиваете whatsmyip.org в вашем браузере, это имя преобразуется в имя вашего локального хоста. Таким образом, вы сохраняете номер порта и имя хоста, которое ваш браузер будет посылать на whatsmyip.org через SSH туннель. Как вы узнаете, что туннель работает? whatsmyip.org должен сообщать IP адрес SSH сервера (удаленной SSHd машины) вместо IP адреса вашего клиента.

2
27.01.2020, 21:28

Теги

Похожие вопросы