Linux/Win下的翻墙设置

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

浏览网页的时候主要有两个动作需要翻墙,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的视频了

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

目前还没有任何评论.