Используйте реальный браузер вместо 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, которые вы запускаете на сервере, отображались на вашем персональном компьютере.
- При подключении по SSH к серверу добавьте флаг -X. Например,
ssh -X myserver
, - Установите браузер с графическим интерфейсом на сервере и просто запустите его. Вывод появится на вашем персональном компьютере через переадресацию X и безопасное соединение SSH.
Вот комплексное решение:
Сделать туннель (динамическая переадресация портов) через
SOCKS5
протокол с использованиемssh
:
ssh -ND 9994 -C user@YourSshServer
или если вам нужно использовать определенный порт для SSH:
ssh -ND 9994 -C -p xxxx user@YourSshServer
Настройте параметры 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
.