目前寻求翻墙的方式无非就几种: 

  1. 寻找web代理(这个可以进我放置的在线代理进行测试)
  2. 自行寻找http/sock5代理(这个可以去网上搜索代理ip)
  3. vpn翻墙(目前可以自行架设vpn服务器,或者用外国的免费vpn服务,可见:免费实用简单的国外VPN-UltraVPN)
  4. ssh 加密隧道转发sock5代理(本文所提)

前提条件:一台可以通过ssh登陆的服务器(linux)、Putty软件 

原理:设置Putty软件中将连接到本地某个端口的数据转发到通过合法/不合法的账号登陆远程linux主机的ssh端口上,而这个链接是加密传输(secure tunnel)的! 

本文我采用的是linux是本地局域网中的CentOS,采用root登陆,当然,只要能登陆的账号都可以!首先,配置Putty,如果已经有保存记录的,选择记录后,直接Load(本文为168那个ip) 

090802_ssh1.jpg  大小: 42.32 K 尺寸: 300 x 290 浏览: 7 次 点击打开新窗口浏览全图

切换到SSH标签下的Tunnels:

  选中SSH –>Tunnels设置里的 Source port 代理端口我写的1080
  选上Dynamic和Auto,点击”Add”
        如果你想让别人的电脑也可以通过你的电脑进行访问(比如说别人的电脑上不了外网,但是可以上内网连接到你的电脑),你可以把“Local ports accept connections from other hosts”(本机端口接受其他主机的的连接)勾上。当然,你也可以再增加其他端口,每个端口分配给不同的人用,呵呵! 
  最后不要忘记保存哦~

        做完上面这些操作,点击Open打开ssh登陆界面,登陆即可!然后不要关闭该窗口,那么连接到本地1080端口的数据都会转发到远程linux的22端口下,实现加密代理效果! 

090802_ssh3.jpg  大小: 9.82 K 尺寸: 300 x 76 浏览: 6 次 点击打开新窗口浏览全图

 

在Firefox浏览器中进行代理设置(sock5代理),如图,那么之后像QQ软件都可以通过这个sock5代理地址进行连接了!简单方便! 

090802_ssh4.jpg  大小: 31.27 K 尺寸: 300 x 266 浏览: 26 次 点击打开新窗口浏览全图

 

以下为成功打开1080端口进行监听(下面7070是开了另外一个ssh进行转发操作,主要是对比了下,当允许外部主机连接本机作为代理服务器,那么必然有两个监听地址,上面这条记录是任意的,下面这条记录针对本机) 

090802_ssh5.jpg  大小: 10.93 K 尺寸: 300 x 65 浏览: 17 次 点击打开新窗口浏览全图

 

以下为通过1080端口进行转发的数据连接(26主机通过我的电脑出去的) 

090802_ssh6.jpg  大小: 13.87 K 尺寸: 300 x 61 浏览: 9 次 点击打开新窗口浏览全图

 

访问http://www.123cha.com查询: 

  • 代理前ip:++ 您的ip:[*.*.*.235] 来自: 浙江省 杭州市 电信 ++
  • 代理后ip:++ 您的ip:[*.*.*.233] 来自: 浙江省 杭州市 电信 ++

注:前三个*代表一样的,最后一个不一样,因为出口外网的ip是随机的,但是只针对单台内网电脑,不是针对每次链接。 

这样就说明成功翻墙(不过用国内linux主机估计翻墙概率不大吧?吼吼)!

注意,你的终端期间是不能关的,关了后代理就失效了~~如果想关终端的话,就要用putty里面的plink.exe,以命令行方式运行 plinkusername@hostname -C -D 127.0.0.1:8088(username就是你的登录帐号,hostname是服务器的地址),后面的8088是你自己定义的端口号。-C 表示允许压缩。-D 表示基于SOCKS的动态端口转发。根据提示,输入你的密码。不要关闭这个窗口,否则通道就关闭了。为了避免因为过久没有数据传输而连接被中断,你可以在窗口输入一条这样的指令,让它保持连接:ping google.com -i 60 (-i 60 表示每隔 60 秒才 ping 一次)。呵呵很帅吧~~

        在使用SSH做代理的时候,发现一个问题,就是其他所有网站都能打开,但Youtube和http的Facebook打不开。  后来发现,原来某些网站的域名会被DNS劫持,使用SSH代理也无法解决,必须更换DNS服务器。  解决的方法是,域名不使用本地解析,而使用服务端来解析,对于Firefox来说,在 about:config 改成 network.proxy.socks_remote_dns=true 就可以了。

http://blog.is36.com/archives/41/
http://bbs.mahoupao.com/thread-2424-1-1.html
http://blog.163.com/relaxeyou@126/blog/static/1722126362009101831937159/

Published in 杂七杂八

No Responses to “用Linux服务器和Putty的SSH Tunnel(隧道)做安全代理”

Leave a Reply

请输入算式结果(看不清请点击图片)
(必须)