我使用 Ubuntu 作为桌面和服务器操作系统。当我通过ssh
on登录到服务器terminal
并且必须在服务器上查看网页(localhost)时,我使用 w3m(w3m localhost
)。
不幸的是,w3m 并不那么容易处理,因为该页面有一些大菜单并使用 jQuery。所以我想知道是否可以在我的桌面上使用浏览器通过 SSH 与真正的浏览器(Firefox 或 Chrome)连接到服务器。
基本上,它需要用我桌面上的浏览器通过 SSH 连接到服务器,username
并password
在该服务器上打开localhost
。
这是默认情况下可能的,还是有任何适用于 Firefox/Chrome 的附加组件?我更喜欢火狐。
使用 ssh 端口转发。
使用以下方式连接到远程服务器:
现在,将本地浏览器指向 localhost:8080。它应该被转发到远程服务器中的 localhost:80。
第1部分
用 ssh 做一个 socks 代理!
现在打开您的 Firefox 首选项,转到高级 > 网络 > 设置。选择手动代理配置。将 localhost 设置为 SOCKS 主机,将 9999 设置为端口。通过访问http://whatismyip.org或其他类似站点对其进行测试。
因为您说您正在尝试访问 localhost(相对于您的服务器)上的网页,所以您可能不希望将 localhost 和 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] 部分。如果你看到一行“skip-networking”,请评论它。添加“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
如果您只需要访问一个位置,Javier 的解决方案非常棒。它使您可以访问本地主机,而无需理会其余的互联网。我的 ssh -D 解决方案走得更远,实际上会将您的所有 http 请求定向到远程服务器。显然你可能并不真正想要这个。但是当我想要对网络上的所有机器进行 http 访问时,或者当我不希望我的 http 请求通过我连接到的网络(即,星巴克的网上银行)时,我发现它很有用。我所有的流量都去了通过 ssh 隧道连接到我的家庭互联网。)您可以通过 SSH 使用 X 转发,这样您在服务器上运行的任何 X 应用程序都会显示在您的个人计算机上。
ssh -X myserver
。这是一个全面的解决方案:
使用: 或者如果您必须使用特定端口到 SSH,则通过
SOCKS5
协议创建隧道(动态端口转发) :ssh
ssh -ND 9994 -C user@YourSshServer
ssh -ND 9994 -C -p xxxx user@YourSshServer
通过搜索网络代理配置 FireFox 首选项并点击Settings...如下:
现在 Firefox 能够正确浏览所有现有的 HTTP 端口。
您还可以使用另一种方法,例如@Javier Answer,您可以通过以下命令从远程服务器访问特定端口,而无需在浏览器上进行任何配置:
例如
现在
80
来自远程服务器的端口已链接到该8080
端口,您可以通过 .在任何浏览器上轻松查看它localhost:8080
。