Linux下简单的ssh代理与穿墙

原文:http://laifuying.sinaapp.com/archives/5

Linux下做代理服务器,有很多可用的程序,比如有名的squid,还有不有名的kingate,polipo。但是通过ssh可以用一句话就实现代理,只要你在可以上网的远程ssh主机上有ssh帐号。

一. 代理的实现方法:
在本地机器的终端执行命令

ssh -qTfnN -D 7070 用户名@远程ssh主机名

然后输入密码实现连接即可。远程主机不需要做任何处理。

上面的7070是本地未被占用的端口,可以自己选择。其它参数的意思是:

-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.

或者安装 putty,终端输入命令

plink -C -D 127.0.0.1:7070 -N -pw 密码 用户名@服务器地址

然后输入密码。

然后在本地浏览器上设置代理,选择socket5(firefox等有选项),主机为localhost,端口为上面设置的8086。这样就可以通过代理上网了。

二. 穿墙

以前在http://www.cjb.net/上申请过免费的ssh帐号。今天实验了一下,通过它的代理,很轻易就穿墙了。Youtube,***.wordpress.com,以及我以前用过的但是现在已经被封的空间都可以无障碍连接。

更多免费ssh帐号:http://vastars.info/free-ssh-source (建议收藏此页)。

http://blog.onlybird.com/%E5%85%8D%E8%B4%B9ssh%E4%BB%A3%E7%90%86

三. 自动化

自动选择代理:

在linux下,firefox安装autoproxy,chrome安装proxy switchy,添加规则对被屏蔽的网站使用上面创建的代理,其余按照正常方式直接访问。

自动ssh连接:

有些ssh连接可能有无操作的时效限制,为了实现断线后的自动连接,可以先实现免密码ssh登录,然后安装autossh用下面的命令连接:

autossh -M 2000 -N -D 127.0.0.1:8086 用户名@远程主机名 &

在“系统-会话(或者启动应用程序)”中添加这条命令可以实现开机自动执行。


发表评论