Warning: file_get_contents(http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=site:linuxpk.com%20%D4%DAUbuntu%CF%C2%C8%E7%BA%CE%CD%A8%B9%FDSSH%CB%ED%B5%C0%CA%B5%CF%D6%BC%D3%C3%DC%B4%FA%C0%ED%B7%C3%CE%CA&rsz=large) [function.file-get-contents]: failed to open stream: HTTP request failed! in /opt/linuxpk/doc.linuxpk.com/article.php on line 110
正文 - 在Ubuntu下如何通过SSH隧道实现加密代理访问 - Linux文库
this is a extra element for clear the floated element
在Ubuntu下如何通过SSH隧道实现加密代理访问
  • 12/31
  • 2008
ssh | Linux 2152 次查看

电脑上的Ubuntu系统,经过长达1星期断断续续的升级终于从6.04-> 6.10->7.04->7.10一路升级到最新版。可恨的是,手头的7.04光盘居然无法安装7.04到电脑,一直说PngP秘钥错误,只 好从网上一路升级。遗憾的是,传说中的3D桌面始终无法弄出来,看了许多网上的教程,怎么设置都不行。

升级好ubuntu,开始琢磨如何像在windows下那样方便的穿墙。tor虽然在ubuntu下运行正常,但是tor的速度还是有些慢,不如先前车东介绍的利用Putty通过ssh端口转发实现FireFox和MSN加密代理访问的方法来的快速。而我也有SSH帐号,因此开始寻找ubuntu下实现SSH隧道访问的方法。

车 东推荐的putty的确是个非常棒的用于SSH隧道的软件,在ubuntu下也可以运行。但奇怪的是,putty运行正常,也可以登录SSH主机,远程执 行命令等操作,唯独用它无法像在windows下采用同样的设置架设SSH隧道,也没有任何错误信息返回,看来是软件的bug。

又找到ubuntu下的一款软件gstm - Gnome SSH Tunnel Manager,是专门作这种用途的软件。但遗憾的是,这款软件也同样存在bug,而且非常严重 ,一到设置本地端口的地方就导致ubuntu死机。

于是只好man ssh,查看SSH的帮助文档。 终于让我找到了方法。在终端窗口输入:

ssh -L 7070:localhost:* remotehost

输入账号密码,连接成功。在firefox下使用 foxyproxy插件,以前不能访问的网站终于能够打开了!

上 面的命令行中,-L指定本地端口与远程主机端口之间的隧道, 7070是本地端口,可以任意设置,只要不和其他已经使用的网络服务冲突就可以。localhost是本地主机,也就是你的电脑,不用更改,*号可以自动 寻找远程主机可用的端口。remotehost就是所要登录的远程SSH主机名称。

写道这里才发现,车东那篇文章下面的回复里已经有人给出了另外一种SSH命令行方式

ssh -qTfnN -D 7070 remotehost

All the added options are for a ssh session that’s used for tunneling.

-q :- be very quite, we are acting only as a tunnel.
-T :- Do not allocate a pseudo tty, we are only acting a tunnel.
-f :- move the ssh process to background, as we don’t want to interact with this ssh session directly.
-N :- Do not execute remote command.
-n :- redirect standard input to /dev/null.

In addition on a slow line you can gain performance by enabling compression with the -C option.

唉,早知道就不用自己瞎琢磨半天了。

PS:我是一名ubuntu菜鸟,如果根据我上面介绍的方法,仍然无法实现SSH隧道,或者其他的相关问题,请不要问我,因为我也不懂。 :(