Используйте реальный браузер вместо w3m в соединениях SSH

Я использую Ubuntu в качестве настольной и серверной ОС. Когда я вошел на сервер через ssh на terminal и должен просматривать веб-страницу (localhost) на сервере, который я использую w3m (w3m localhost).

К сожалению, с w3m не так просто работать, так как на странице есть несколько больших меню и используется jQuery. Поэтому мне интересно, возможно ли использовать браузер на рабочем столе для подключения к серверу через SSH с реальным браузером (Firefox или Chrome).

В основном это потребует подключения с помощью браузера на моем рабочем столе к серверу через SSH с username а также passwordи откройте на этом сервере localhost,

Это возможно по умолчанию, или есть какие-нибудь дополнения для Firefox/Chrome? Я бы предпочел Firefox.

4 ответа

Решение

Используйте переадресацию порта ssh.

Подключитесь к удаленному серверу примерно так:

ssh -L 8080:localhost:80 user@remoteserver

Теперь наведите локальный браузер на localhost:8080. Он должен быть перенаправлен на localhost: 80 на удаленном сервере.

ЧАСТЬ 1

Сделайте прокси с помощью ssh!

ssh -D 9999 user@remoteserver

Теперь откройте настройки Firefox, перейдите в "Дополнения"> "Сеть"> "Настройки". Выберите Ручная настройка прокси. Поставьте localhost для хоста SOCKS, поставьте 9999 для порта. Проверьте это, зайдя на http://whatismyip.org/ или на похожий сайт.

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

Если вам не нравится мое объяснение, эти ссылки потрясли мою память при написании этого:

http://linux.die.net/man/1/ssh

http://embraceubuntu.com/2006/12/08/ssh-tunnel-socks-proxy-forwarding-secure-browsing/

https://calomel.org/firefox_ssh_proxy.html

ЧАСТЬ 2

Ошибка, которую вы получили, channel 3: open failed: connect failed: Connection refused не имеет абсолютно никакого отношения к SSH. Видимо, вы пытаетесь получить доступ к какой-то вещи MySQL. Это создает дополнительную проблему, потому что mysql по умолчанию блокирует доступ из ssh-туннелей. Я не делаю mysql, поэтому я не знаю, о чем я говорю для остальной части этого. Я просто цитирую соответствующие биты ссылки в конце, которую вы должны прочитать.

Откройте /etc/mysql/my.cnf и найдите раздел [mysqld]. Если вы видите строку "пропустить сеть", прокомментируйте ее. Добавьте "bind-address = 127.0.0.1" (без кавычек, конечно).

http://www.debuntu.org/port-forwarding-and-channel-3-open-failed-connect-failed-Connection-refused

Часть 3

Решение Хавьера ssh -L 8080:localhost:80 user@remoteserver это фантастика, если вам просто нужен доступ к одному месту. Это позволяет вам получить доступ к localhost, а остальную часть вашего интернета оставить в покое. Мое решение с ssh -D идет дальше и фактически направляет все ваши http-запросы на удаленный сервер. Очевидно, вы на самом деле не хотите этого. Но я нашел это полезным, когда я хотел получить доступ по http ко всем машинам в сети, или когда я не хотел, чтобы мои запросы http проходили через сеть, в которую я подключен (например, онлайн-банкинг в Starbucks. Весь мой трафик уходит через туннель ssh к моему домашнему интернету.)

Вы можете использовать перенаправление X через SSH, чтобы любые приложения X, которые вы запускаете на сервере, отображались на вашем персональном компьютере.

  1. При подключении по SSH к серверу добавьте флаг -X. Например, ssh -X myserver,
  2. Установите браузер с графическим интерфейсом на сервере и просто запустите его. Вывод появится на вашем персональном компьютере через переадресацию X и безопасное соединение SSH.

Вот комплексное решение:

  1. Сделать туннель (динамическая переадресация портов) через SOCKS5протокол с использованием ssh:
    ssh -ND 9994 -C user@YourSshServer
    или если вам нужно использовать определенный порт для SSH:
    ssh -ND 9994 -C -p xxxx user@YourSshServer

  2. Настройте параметры FireFox с помощью поиска Network Proxy и нажмите Settings...следующее:

Теперь Firefox может правильно просматривать все существующие порты HTTP.


Вы также можете использовать другой подход, такой как @Javier Answer , в котором вы можете получить доступ к определенному порту с удаленного сервера с помощью следующей команды без какой-либо настройки в вашем браузере:

      ssh -NL <dummy-port>:localhost:<intended-port> -C user@YourSshServer

например

      ssh -NL 8080:localhost:80 -C user@YourSshServer

Сейчас 80порт с удаленного сервера связан с 8080порт и вы можете легко увидеть его в любом браузере через localhost:8080.

Другие вопросы по тегам