使用ssh tunnel + sock5 穿越防火墙

来源:互联网 发布:音悦台for mac下载 编辑:程序博客网 时间:2024/05/29 18:57



最近项目组里使用了防火墙的产品,访问网站动不动就被block,出现非法访问的页面。那个怒啊。。。。。


开始想使用一些在线的代理服务器,没想到根本就不行。在线代理全部被屏蔽了 囧。。。。。


查找了资料后,发现可以通过ssh tunnel的方式来穿越防火墙。


网络拓扑:

 

|client|-------------|gateway(Firewall)|---------|proxy|------------------|web server|


client:192.168.1.5

gateway:192.168.1.1, 10.40.3.3

proxy:10.40.3.66


自己的机器就是client了。在client上网会被限制,但是在proxy机器上网就不会被限制。我们需要通过proxy来上网. 注意在proxy上已经开启了ssh server.


Proxy系统和client系统都是Debian


在client端执行下面的命令

ssh -N -f -D 127.0.0.1:10000 user@10.40.3.66


-N告诉ssh server, 我们仅仅做端口转发,不需要登录。

-f表明该ssh放在后台执行。

-D 绑定的本地端口,为了安全起见,我们仅仅打开了localhost的10000端口。如果要给其他的人作为代理,可以将之改为0.0.0.0

user是在proxy上的帐号。接着输入密码就好了。


打开Firefox,设置代理:


注意: ssh支持的是sock5代理


高级->网络->设置

选择手动代理:

socks主机: 127.0.0.1 端口10000

下面选择sockv5


为了防止DNS被劫持,建议修改DNS选项:

about:config

network.proxy.socks_remote_dns  设置为 true


再尝试就发现完全可以通过ssh tunnel模式上网了。

 

上面介绍的是Linux环境下使用ssh tunnel. 下面介绍在windows下使用ssh tunnel.

 

1. 下载plink.exe. 可以从官方网站下载:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

 

2. 将plink.exe复制到C:/

 

3. 在C:/创建plink.bat

C:/plink.exe -N user@10.40.3.66 -pw passwd1234 -D 127.0.0.1:10000

这里user是我在10.40.3.66上的账号,密码是passwd1234.

 

运行这个bat会弹出一个cmd窗口,且不会退出。

 

如果希望在后台运行,那么创建一个plink.vbs, 内容如下:

 

set   ws=wscript.createobject("wscript.shell")  
ws.run   "C:/plink.bat   /start",0  

 

运行时,就会放在后台了。

 

IE8设置:

 

工具->Internet选项->连接->局域网设置->高级

 

在sock代理中填入127.0.0.1 10000

 

这样就可以在windows下使用ssh-tunnel了。

 

enjoy!