Linux/Win下的翻墙设置

来源:http://www.luojs.com/2011/05/30/how-to-cross-gfw-under-linuxwin/

鉴于总被问到怎么翻墙,于是还是写篇文,以后就可以直接留链接了。

浏览网页的时候主要有两个动作需要翻墙,dns解析和实际的http�求。下面分开说。

dns解析翻墙:
主要参考了下这篇文章(好像是需要翻墙的)。
Linux:
看了看代码倒是很简单,原来py里有现成的库拿来用下就可以了,不过默认的dnsserver.conf中的ip在我这还是返回被污染的,于是改成了 google的ip,8.8.8.8。再编辑/etc/resolv.conf,改为nameserver 127.0.0.1即可。接下来为了方便使用在/etc/init.d下创建dns-proxy 文件,做成一个服务,内容为

#! /bin/sh PWD=123456  start() { 	Num=`ps -ef | grep "^root.*\<python .*dns.py\>" | wc -l` 	if [ $Num -ge 1 ] 	then 		echo "The local dns server is already running" 	else 		echo $PWD | sudo -S python /home/luojiesi/program/dnsproxy/trunk/dns.py & 	fi 	exit 0; } stop() { 	Num=`ps -ef | grep "^root.*\<python .*dns.py\>" | awk '{print $2}'` 	echo $PWD | sudo -S kill $Num 	exit 0; }  case "$1" in start) 	start 	;; stop) 	stop 	;; restart) 	stop 	start 	;; *) 	start 	;; esac 

pwd变量改成自己的密码。然后 crontab -e 加一条*/1 * * * * service dns-proxy start 定时检测连接如果断了重连。

Win:
暂空,照那文章应该没难度。

http翻墙:
主要就是架一个ssh -D来翻,其实是 socks代理,不一定是给http服务用,不过意思到了就行了。
Linux:
其实最简单的就是一句话ssh上去就好了,不过为了方便易用还是有点工作要做的,一开始还想复杂了想做个daemon还是用c写的,后来发现根本不用这么麻烦。

首先在.ssh/config下配置一下自己的主机(为了方便),然后再将rsa密钥拷到服务器上去(ssh不像sudo那么好直接从stdin读 密码,所以用了key。这一步可能出现问题,如果一切都按网上的教程还是不能用key登陆的话,那多半是服务器sshd的配置和key文件的权限出了问 题,可以着重检查一下)。比如我配置文件里翻墙的主机名叫做luojs,那建一个ssh-luojs,内容就一句话

 ssh -N luojs 2>/dev/null 1>/dev/null 

-N参数是指只建立通道,不实际执行命令,就比如我用的justhost的主机,没有买ssh服务,其实是不能ssh上去执行命令的,因而不加N我 就自动被服务器踢出来了。这里新建文件也就是为了后面好判断一下隧道有没有建立,不建也没有啥关系。照例是/etc/init.d下面建服务,内容和上面 基本一样:

#! /bin/sh  start() { 	Num=`ps -e | grep ssh-luojs | wc -l` 	if [ $Num -ge 3 ] 	then 		echo "The connection has already been established!" 	else 		echo "Connect to jiesiluo.com" 		/home/luojiesi/program/cross-gfw/ssh-luojs & 	fi 	exit 0; } stop() { 	killall -g ssh-luojs 	echo "Stop the connection" 	exit 0; }  case "$1" in start) 	start 	;; stop) 	stop 	;; restart) 	stop 	start 	;; *) 	start 	;; esac 

再在crontab -e里改下,搞定了。

Win:
看了好些文章都用到别的软件,什么mytunnel之类,总是有点不爽,记得putty可以完成所有linux下ssh能完成的命令的。仔细研究了一下发现的确是可以的。putty的设置也不截图了,就描述一下。主要有下面几个方面

设置端口转发:在connection-ssh-tunnels里面Forwarded ports里添加一个D7070的端口转发。
使用key登陆:使用puttygen.exe生成密钥,传到服务器上面。本地在connection-ssh-auth 的private key for authentication里选择生成的私钥。
不执行命令: connection-ssh勾选Don't start a shell or command at all。

不知道怎么的linux下的翻墙感觉总是比win下面快的多,linux下我可以看youtube 1080p的视频而不卡,win下面就。。。我用的翻墙浏览器加插件是 chromium+proxy switchy!,最后附带两个视频广告地址,把它们设置使用一个不存在的代理后看视频广告就没有了。
土豆:http://tdcm.tudou.com/adcontrol/adcontrol
优酷:http://f.youku.com/player/getFlvPath/fileid/*&yad=1&

update: 在win下面将putty换成openssh速度有所提高恩,youtube上勉强能看720p的视频了


―――――――――――――――――――――――――――――――――――――――――

需要翻墙利器? 请安装Wuala,查找和添加gfwblog为好友,就可高速下载翻墙软件,或访问http://tinyurl.com/gfwblog直接下载。

推特用户请点击这里免翻墙上推特

请点击这里下载翻墙软件

更多翻墙方法请发电邮(最好用Gmail)到:fanqiang70ma@gmail.com

请阅读和关注中国数字时代翻墙技术博客GFW BLOG(免翻墙)

请使用Google Reader订阅中国数字时代中文版http://chinadigitaltimes.net/chinese/feed),阅读最有价值的中文信息;以及GFW BLOG(功夫网与翻墙)http://feeds2.feedburner.com/chinagfwblog,获取最新翻墙工具和翻墙技巧信息。


发表评论