在SSH连接上使用真实的浏览器而不是w3m


10

我正在使用Ubuntu作为桌面和服务器操作系统。当我通过sshon 登录到服务器terminal并必须查看服务器上的网页(本地主机)时,我使用w3m(w3m localhost)。

不幸的是,w3m并不是那么容易处理,因为该页面具有一些大菜单并使用jQuery。因此,我想知道是否可以使用台式机上的浏览器通过真实浏览器(Firefox或Chrome)通过SSH连接到服务器。

基本上,这需要使用桌面版的浏览器通过SSH username和SSH连接到服务器password,然后在该服务器上打开localhost

默认情况下是否可以这样做,或者Firefox / Chrome是否有任何附加组件?我更喜欢Firefox。


不是您问题的答案,但是...使用X转发呢?
哈维尔·里维拉

1
为什么不能通过http连接到远程服务器?您是否特别需要从本地主机发出的请求以进行测试?@Javier X转发(特别是对于firefox而言)占用大量带宽,因此我不建议将其用于非本地连接。
Carsten Thiel

一方面是出于测试目的,所以它必须是localhost。另一方面,远程服务器不在本地网络中,并且无法通过常规http访问。

是的,带宽是一个问题,当转发X.
哈维尔·里维拉

Answers:


14

使用ssh端口转发。

使用以下内容连接到远程服务器:

ssh -L 8080:localhost:80 user@remoteserver

现在,将本地浏览器指向localhost:8080。它应该转发到远程服务器中的localhost:80。


我刚刚在本地网络中的服务器上对此进行了测试,它似乎可以工作。稍后我将使用远程服务器对其进行测试。

6

第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

第三部分

ssh -L 8080:localhost:80 user@remoteserver如果您只需要访问一个位置,Javier的解决方案将是很棒的选择。它使您可以访问localhost,而使Internet的其余部分保持独立。我使用ssh -D的解决方案走得更远,并且实际上会将您的所有http请求定向到远程服务器。显然,您可能实际上并不想要此。但是,当我希望http访问网络中的所有计算机时,或者当我不希望我的http请求通过我所连接的网络(例如,星巴克的在线银行业务)时,我发现它很有用。通过ssh隧道到达我的家庭互联网。)


在firefox中请求“ localhost”时,在打开ssh连接的终端中出现错误:channel 3: open failed: connect failed: Connection refused。我没有时间查找它,但是也许您知道它会是什么?

我刚刚在ssh的手册页中看到,需要root用户才能使用该-D选项。这是它不能也不会起作用的原因,因为我不能以root用户身份连接到服务器(出于安全原因)。

什么?在隧道的两端,我一直以普通用户的身份使用它。哦,我明白了。如果尝试使用80或21等端口或任何其他IANA保留端口,则必须是root用户。任何超过1024的都应该可以。我认为该错误与您的ssh.conf阻止转发有关。我现在正在按照这些路线进行搜索。
djeikyb 2011年

我用谷歌搜索了您的错误,并提出了这篇文章,说mysql具有安全性“功能”,默认情况下会阻止从端口转发进行访问。debuntu.org/...
djeikyb

2

您可以通过SSH使用X转发,这样您在服务器上运行的所有X应用程序都会显示在您的个人计算机上。

  1. 使用SSH连接到服务器时,请添加-X标志。例如,ssh -X myserver
  2. 在服务器上安装GUI浏览器,然后简单地运行它。输出将通过X转发和安全的SSH连接显示在您的个人计算机上。

正如Carsten在对我的问题的评论中提到的那样,关于远程服务器不在我的本地网络中,带宽又如何呢?

您将需要定义带宽要求。如果不成功,您可以尝试一下,看看它是如何工作的。
user4124 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.