Linux下简单的ssh代理与穿墙
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 用户名@远程主机名 &
在“系统-会话(或者启动应用程序)”中添加这条命令可以实现开机自动执行。