!(16)(资料)配置dnsmasq为本地DNS服务器,加快firefox的dns解析速度
Firefox解析DNS很慢,严重影响其上网速度,有人建议禁言IPv6,但效果不是很好,我上网找了找,决定装个本地DNS服务器当缓存用,速度明显快多了
首先安装,代码:
代码: 全选
sudo apt-get install dnsmasq
代码: 全选
sudo gedit /etc/dnsmasq.conf
listen-address=127.0.0.1
编辑
代码: 全选
sudo gedit /etc/dhcp3/dhclient.co
修改为:
其实后边还有三个选项,我不知道是他不需要删掉了,还是就得这么改,我照做了,没什么后遗症~~~#supersede domain-name “fugue.com home.vix.com”;
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope;
编辑:
代码: 全选
sudo gedit /etc/resolv.conf
重启服务,代码:示例
nameserver 127.0.0.1
nameserver 210.77.69.1
nameserver 210.77.68.240
代码: 全选
sudo /etc/init.d/dnsmasq restart
之前我们安装了一个dnsmasq,目的是架设一个本地dns服务器,其实我不太明白为啥要装个本地dns,无非是多了本地的dns缓存,可是这个东西稍加改造,就发现他的强大了.
之前在firefox使用过程中,发现跟xp下的firefox使用习惯不太一样,很别扭,比如说输入一个英文关键字,本来希望它能自动转到google去搜索,可firefox却把这个单词当成一个域名,去解析,然后由于dns没有这个域名,返回一个没有该网址的错误页面,麻烦的是,我这里的dns还被网通劫持了,找不到网址的关键词,都会被转向到http://sddns*.cncmax.cn:8080/?HOST=关键词&R=/&,而且,这个解析过程相当的慢,差不多够10秒了~~只有输入两个以上的单词,而且用空格隔开,才能顺利进行google的搜索.中文的情况也是一样的.想不明白为什么,xp下的firefox我也没设置过,可是为什么就能自动搜索呢?难道这跟操作系统有关了?~~郁闷了好几天,不停的尝试各种操作习惯,试图习惯他,可还是越来越怀念xp的firefox了~~~
因为找不到解决目标,就在论坛里搜来搜去,发现各论坛里很少有人讨论这个问题~~难道只有我觉得别扭阿~~残念~~
终于有了点突破,中文单词的域名查找问题,原来可以通过firefoxconfig关掉的,
代码: 全选
firefox地址栏输入:about:config
network.enableIDN设成false.
郁闷了又好几天,突然想起来,我的情况不就是dns劫持吗?去搜了一些win下解决dns劫持的办法,什么往hosts文件里写参数阿,一类的,linux下好像不起效果~~最后发现大家都在用openDNS这个开放dns地址,解决dns劫持的问题,我就试了试.修改dns服务器地址,有很多种办法,比如直接修改路由器的dhcp服务里的dns参数,如果没有路由器,可以通过网络管理器小程序,也就是NetworkManager,来添加dns地址,再就是直接修改配置文件:/etc/resolv.conf.添加208.67.222.222 and 208.67.220.220这两个地址,重启路由器,或者重启网络连接,试试吧,dns确实不再转到sddns*.cncmax.cn了,可是他也没有转到google~~而是转到了opendns自己的搜索服务器,还是英文的~~呃~~还是不圆满~~但是让我想起了一点,这个问题,是跟dns有关的,而不是浏览器的问题,也就是说,firefox在linux和xp下应该是一样的,与操作系统是无关的.有了这个结论,我觉得找到一个方向,让firefox回到xp那种状态是可行的.
这个时候,想起了之前装过的dnsmasq,优化的时候,把本机做成了dns服务器,而且服务是一直开着的,也就是说,搜索域名的时候,是先从本机开始的,那我要是直接在本机就把dns服务器用起来呢?方向差不多吧,开始找解决方案~~~搜了很多地方,网上对dnsmasq的使用讲的好少阿~~基本上都是配置起来,就拉倒了,难道这个东西只是个dns缓存?不至于吧.最后终于在一个旮旯里发现了一个疑似解决办法的办法~~不过原贴说的是在路由器上进行设置~~我抱着试试看的心态,在本机的dnsmasq配置文件里找参数~~吆西~~还真有这么个东西:
第一步,找出你的dns劫持到哪个ip地址了,这个地址可能会有好几个,需要添加好几次,我这里是开机一次,添加一个,不过应该不超过10个的
代码: 全选
~/桌面$ ping www.wojiushihenyumenhenyumen.com
系统给我的回复是
为了保险期间,要多ping几个,找重复最多的那些,123.129.254.15就是我要找的网址了,这是我找到的第二个PING http://www.wodewodebukaixin.com (123.129.254.15) 56(84) bytes of data.
然后把这个ip地址写入配置文件
代码: 全选
sudo gedit /etc/dnsmasq.conf
在下面添加一行:
代码: 全选
bogus-nxdomain=123.129.254.15
代码: 全选
sudo /etc/init.d/dnsmasq restart
再 ping http://www.wodewodebukaixin.com,如果你得到了另一个地址,那就是找到了另一个拦劫地址了,刚才添加的那个应该不会再出现了.
如果你没有出现另一个网址,系统给的回复应该是:
好了,操作完毕,打开你的firefox,输入一个单词,英文的~~你会发现,不仅比原来的解析速度有提升,而且,还转向到了google搜索了,跟xp里是一样了~~~/桌面$ ping http://www.wodewodewodewodewode.com
ping: unknown host http://www.wodewodewodewodewode.com
再说一次,那个拦劫地址,应该不止一个,如果你发现,那个拦劫页面又出来了,就可能是拦劫换地址了,按上边的方法,再把新地址添一遍,另起一行添加,不是修改刚才加的那条,就解决问题了~~
找地址的时候,多试几个,有些很奇怪的网址,还就真是个网站~~~
多说一句,opendns的那俩dns地址还是挺好用的,可以作为备用的,添加到网络里,但是首选一定要是127.0.0.1,也就是本机.
今天为了下myeclipse找到个有用的代理,先记录在这里,过几天看情况更新回去
http://www.coobai.com/
!(18)使用Google App Engine架设个人代理服务器~~感觉一般,也不是很快~~~而且只能看网页,不能下东西,不如上边那个代理,可以去myeclipse下东西,虽然是单线程的.即使如此,感兴趣的朋友,也可以搞一个代理服务玩玩,毕竟天天找代理服务器也挺麻烦的,这个google代理,也能解决部分问题,而且可以随时开,随时关
使用的过程主要分为两个部分。第一部分是上传一个代理服务器的服务脚本文件到google appengine(GAE),第二部分是建立本地和GAE的连接。
第一部分:上传
1.1 创建一个google appengine帐号
没有gmail邮箱的朋友,先去注册一个gmail邮箱,然后点击链接 (http://appengine.google.com/)申请注册一个google appengine帐号,注册页面虽然是英文的,但是流程跟别的网站差不多,唯一不同的是中间需要提供一个可以接受短信的手机号,号码前边要添加+86的国家码,这不是注册服务,所以不收费,放心填吧,手机收到验证码,填回页面,完成注册。记下你的 用户名.appspot.com 这个地址
1.2 安装python
我的系统是Ubuntu9.04,所以已经默认安装过了,不放心可以用apt-get install python检验一下
1.3 下载并安装google appengine软件包
点击链接(http://code.google.com/appengine/downloads.html),下载Linux平台的Google App Engine SDK,并进行解压。解到哪无所谓,不过这个就是工作目录了,最好跟别的应用软件放在一起。比如~/program/GAE
1.4 下载并解压fetchserver源码包。
点击链接 (http://code.google.com/p/gappproxy/downloads/list),下载里面的fetchserver-1.0.0beta.tar.gz。这个是GAppProxy服务端源码包,也就是要上传的服务端脚本,用于架设自己的fetchServer。要将这个包进行解压。然后将解压后的文件(fetchServer)夹放入Google App Engine SDK的安装目录。
1.5 编辑fetchServer目录下的app.yaml文件。
用gedit或者其他方式编辑这个文件,主要编辑的参数是第一行application.
~~~~~~~~~~~~~~~~~~~~
application: abcd
~~~~~~~~~~~~~~~~~~~~(比如之前注册的AppEngine地址是abcd.appspot.com,那就是application帐号就是abcd)
编辑结束后,保存并关闭这个文件。
1.6 上传
进入Google App Engine SDK目录。然后运行命令:appcfg.py update fetchserver/。注意,这里的fetchserver是说的一个文件夹,这个文件夹刚才已经放到gae解压目录里了,所以下面的例子里是带/符号的,之后程序会要求你填入你的gmail和gmail的密码。
~~~~~~
~/program/google_appengine$ python appcfg.py update fetchserver/
appcfg.py:40: DeprecationWarning: the sha module is deprecated; use the hashlib module instead
DIR_PATH,
Email: abcd@gmail.com
Password for abcd@gmail.com:
Saving authentication cookies to ~/.appcfg_cookies
****************************************************************
There is a new release of the SDK available.
-----------
Latest SDK:
api_versions: ['1']
release: 1.2.1
timestamp: 1238791978
-----------
Your SDK:
api_versions: ['1']
release: 1.1.5
timestamp: 1222740096
-----------
Please visit http://code.google.com/appengine for the latest SDK
****************************************************************
Scanning files on local disk.
Initiating update.
Cloning 3 application files.
Closing update.
Uploading index definitions.
~~~~~~
OK ,上传部分完毕。
这个时候,输入你的网址查看一下是不是网站正常运行了:
http://abcd.appspot.com/fetch.py
顺利的话,应该是GAppProxy/1.0.0 beta 已经在工作了这个提示
第二部分:连接
2.1:下载客户端
点击链接(http://code.google.com/p/gappproxy/downloads/list),下载gappproxy-1.0.0beta.tar.gz ,这个是GAppProxy源码包,内含客户端所有源码,并将这个文件进行解压。我还是解压在program上,文件夹的名字是gappproxy。
2.2 更改配置文件
进入gappproxy目录,用gedit或者其他的文件编辑器编辑proxy.conf文件。在fetchserver一栏里面填写自己的apengine地址。并去掉一行开头的井号(这个是注释用的)
~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~GAppProxy configuration #(这行原来是被注释的)
# local_proxy
#local_proxy = host:port
#
# If local proxy needs authentication:
#local_proxy = user:passwd@host:port
fetch server #(这行原来是被注释的)
#fetch_server = http://127.0.0.1:8080/fetch.py
#fetch_server = http://fetchserver-nolog.appspot.com/fetch.py
fetch_server = http://abcd.appspot.com/fetch.py ###填写自己注册的appengine地址。
PS:如果你之后那步,没有正确联到abcd这个网址上,联到了另外一个共用appspot地址,代理是未必会成功的,但是可以通过将proxy.conf文件清空,只留下fetch_server=自己网址 这一行,重新连接,我就是这么联上的~
然后保存并关闭。
2.3 运行代理服务
直接在终端里面运行 python proxy.py.如果看到HTTP Enabled : YES的字样,恭喜你,代理已经成功开启了。你所要做的就是将这个终端一直开着,就可以上网了。代理的地址是127.0.0.1:8000.这个可以在浏览器里面设置的。
~~~~~~~~~~~~~~~
~/program/gappproxy$ python proxy.py
--------------------------------------------
HTTP Enabled : YES
HTTPS Enabled: YES
Local Proxy :
Fetch Server : http://abcd.appspot.com/fetch.py
--------------------------------------------
~~~~~~~~~~~~~~~~~~