标签归档:Google

Nginx Google 扩展,让google反向代理的配置和使用wen.lu一样简单.

en.lu 一路走到现在, 离不开大家的支持!

很多朋友通过各种方式问过我: “你丫怎么不开源啊…”

先向那些朋友道歉啊, 其实不是我不想开源, 只是之前的版本配置实在太复杂. nginx 三方扩展用了一大堆, 外加 lua, 以及突破千行的配置工程, 这么拙劣的技艺, 实在不好意思拿出来分享

遂决定写一个扩展, 让google反代的配置和使用wen.lu一样简单.

location / { google on;
}

你没有看错, “一行配置, google 我有!”

现在 g2.wen.lu 就是由该扩展驱动

Demo Site

依赖库

  1. pcre 正则
  2. ngx_http_proxy_module 反向代理
  3. ngx_http_substitutions_filter_module 多重替换

安装

以 ubuntu 14.04 为例 i386, x86_64 均适用

最简安装
# # 安装 gcc & git # apt-get install build-essential git gcc g++ make # # 下载最新版源码 # nginx 官网:  # http://nginx.org/en/download.html # wget "http://nginx.org/download/nginx-1.7.8.tar.gz" # # 下载最新版 pcre # pcre 官网: # http://www.pcre.org/ # wget "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz" # # 下载最新版 openssl # opessl 官网: # https://www.openssl.org/ # wget "https://www.openssl.org/source/openssl-1.0.1j.tar.gz" # # 下载最新版 zlib # zlib 官网: # http://www.zlib.net/ # wget "http://zlib.net/zlib-1.2.8.tar.gz" # # 下载本扩展 # git clone https://github.com/cuber/ngx_http_google_filter_module # # 下载 substitutions 扩展 # git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module # # 解压缩 # tar xzvf nginx-1.7.8.tar.gz
tar xzvf pcre-8.38.tar.gz
tar xzvf openssl-1.0.1j.tar.gz
tar xzvf zlib-1.2.8.tar.gz # # 进入 nginx 源码目录 # cd nginx-1.7.8 # # 设置编译选项 # ./configure \
  --prefix=/opt/nginx-1.7.8 \
  --with-pcre=../pcre-8.38 \
  --with-openssl=../openssl-1.0.1j \
  --with-zlib=../zlib-1.2.8 \
  --with-http_ssl_module \
  --add-module=../ngx_http_google_filter_module \
  --add-module=../ngx_http_substitutions_filter_module # # 编译, 安装 # 如果扩展有报错, 请发 issue 到 # https://github.com/cuber/ngx_http_google_filter_module/issues # make
sudo make install # # 启动, 安装过程到此结束 # sudo /opt/nginx-1.7.8/sbin/nginx # # 配置修改后, 需要 reload nginx 来让配置生效,  # sudo /opt/nginx-1.7.8/sbin/nginx -s reload
从发行版迁移
# # 安装 gcc & git # apt-get install build-essential git gcc g++ make # # 安装发行版 # (已安装的请忽略) # apt-get install nginx # # 查看发行版编译选项及版本 # nginx -V # nginx version: nginx/1.4.7 # built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1) # TLS SNI support enabled # configure arguments:  #  --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' \ #  --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' \ #  --prefix=/usr/share/nginx \ #  --conf-path=/etc/nginx/nginx.conf \ #  --http-log-path=/var/log/nginx/access.log \ #  --error-log-path=/var/log/nginx/error.log \ #  --lock-path=/var/lock/nginx.lock \ #  --pid-path=/run/nginx.pid \ #  --http-client-body-temp-path=/var/lib/nginx/body \ #  --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ #  --http-proxy-temp-path=/var/lib/nginx/proxy \ #  --http-scgi-temp-path=/var/lib/nginx/scgi \ #  --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ #  --with-debug \ #  --with-pcre-jit \ #  --with-ipv6 \ #  --with-http_ssl_module \ #  --with-http_stub_status_module \ #  --with-http_realip_module \ #  --with-http_addition_module \ #  --with-http_dav_module \ #  --with-http_geoip_module \ #  --with-http_gzip_static_module \ #  --with-http_image_filter_module \ #  --with-http_spdy_module \ #  --with-http_sub_module \ #  --with-http_xslt_module \ #  --with-mail \ #  --with-mail_ssl_module # # 下载对应 nginx 大版本 # nginx 官网:  # http://nginx.org/en/download.html # wget "http://nginx.org/download/nginx-1.4.7.tar.gz" # # 下载本扩展 # git clone https://github.com/cuber/ngx_http_google_filter_module # # 下载 substitutions 扩展 # git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module # # 安装依赖库的 dev 包 # apt-get install libpcre3-dev libssl-dev zlib1g-dev libxslt1-dev libgd-dev libgeoip-dev # # 请对照自己发行版的 configure 参数进行 configure, 勿直接 copy 以下配置 # ./configure \
  --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' \
  --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' \
  --prefix=/usr/share/nginx \
  --conf-path=/etc/nginx/nginx.conf \
  --http-log-path=/var/log/nginx/access.log \
  --error-log-path=/var/log/nginx/error.log \
  --lock-path=/var/lock/nginx.lock \
  --pid-path=/run/nginx.pid \
  --http-client-body-temp-path=/var/lib/nginx/body \
  --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
  --http-proxy-temp-path=/var/lib/nginx/proxy \
  --http-scgi-temp-path=/var/lib/nginx/scgi \
  --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
  --with-debug \
  --with-pcre-jit \
  --with-ipv6 \
  --with-http_ssl_module \
  --with-http_stub_status_module \
  --with-http_realip_module \
  --with-http_addition_module \
  --with-http_dav_module \
  --with-http_geoip_module \
  --with-http_gzip_static_module \
  --with-http_image_filter_module \
  --with-http_spdy_module \
  --with-http_sub_module \
  --with-http_xslt_module \
  --with-mail \
  --with-mail_ssl_module \
  --add-module=../ngx_http_google_filter_module \
  --add-module=../ngx_http_substitutions_filter_module # # 覆盖二进制文件 # cp -rf objs/nginx /usr/sbin/nginx # # 重启 nginx 至此, 迁移工作结束 #  service nginx stop
service nginx start # # 配置修改后, 需要 restart nginx 来让配置生效 # service nginx restart

基本配置方法

http配置方式

server { server_name <你的域名>; listen 80; resolver 8.8.8.8; location / { google on;
  }
}

https配置方式

server { server_name <你的域名>; listen 443; ssl on; ssl_certificate <你的证书>; ssl_certificate_key <你的私钥>; resolver 8.8.8.8; location / { google on;
  }
}

进阶配置方法

基本搜索

需要配置 resolver 用于域名解析

server { # ... 仅列举部分配置 resolver 8.8.8.8; location / { google on;
  } # ... }
谷歌学术

google_scholar 依赖于 google, 所以 google_scholar 无法独立使用.

由于谷歌学术近日升级, 强制使用 https 协议, 并且 ncr 已经支持, 所以不再需要指定谷歌学术的 tld

配置 nginx

location / { google on; google_scholar on;
}
默认语言偏好

默认的语言偏好可用 google_language 来设置, 如果没有设置, 默认使用 zh-CN (中文)

location / { google on; google_scholar on; # 设置成德文 google_language "de"; 
}

支持的语言如下.

ar    -> 阿拉伯
bg    -> 保加利亚
ca    -> 加泰罗尼亚
zh-CN -> 中国 (简体)
zh-TW -> 中国 (繁体)
hr    -> 克罗地亚
cs    -> 捷克
da    -> 丹麦
nl    -> 荷兰
en    -> 英语
tl    -> 菲律宾
fi    -> 芬兰
fr    -> 法国
de    -> 德国
el    -> 希腊
iw    -> 希伯来
hi    -> 印地文
hu    -> 匈牙利
id    -> 印度尼西亚
it    -> 意大利
ja    -> 日本
ko    -> 朝鲜
lv    -> 拉脱维亚
lt    -> 立陶宛
no    -> 挪威
fa    -> 波斯
pl    -> 波兰
pt-BR -> 葡萄牙 (巴西)
pt-PT -> 葡萄牙 (葡萄牙)
ro    -> 罗马尼亚
ru    -> 俄罗斯
sr    -> 塞尔维亚
sk    -> 斯洛伐克
sl    -> 斯洛文尼亚
es    -> 西班牙
sv    -> 瑞典
th    -> 泰国
tr    -> 土耳其
uk    -> 乌克兰
vi    -> 越南 
搜索引擎爬虫许可

任何搜索引擎爬虫都不被允许爬取 google 镜像

如下的默认 robots.txt 已经内置.

User-agent: *
Disallow: / 

如果想要使用 google 自己的 robots.txt 请将 google_robots_allow 设为 on

  #... location / { google on; google_robots_allow on;
  } #...
Upstreaming

upstream 减少一次域名解析的开销, 并且通过配置多个网段的 google ip 能够一定程度上减少被 google 机器人识别程序侦测到的几率 (弹验证码).

# 可以通过如下方法获取 google ip~ dig www.google.com @8.8.8.8 +short
173.194.38.209
173.194.38.211
173.194.38.212
173.194.38.210
173.194.38.208

然后将获取到的 ip 配置如下即可

upstream www.google.com { server 173.194.38.209:443; server 173.194.38.211:443; server 173.194.38.212:443; server 173.194.38.210:443; server 173.194.38.208:443;
}
Proxy Protocal

默认采用 https 与后端服务器通信.

你可以使用 google_ssl_off 来强制将一些域降到 http 协议.

这个设置可以让一些需要二次转发的域通过 http 协议进行转发, 从而不再依赖 ssl 证书.


https://github.com/cuber/ngx_http_google_filter_module/blob/master/README.zh-CN.md
https://github.com/cuber/ngx_http_google_filter_module/blob/master/README.md

114DNS、Dnspod DNS、阿里DNS、百度DNS、360DNS、Google DNS公共DNS评测体验报告

114DNS、腾讯dnspod DNS、阿里DNS、百度DNS、360DNS、Google DNS公共DNS评测体验报告从ping及dig返回时间对比测试,国内DNS普遍很快,而阿里DNS最快,次之腾讯dnspod DNS,然后114DNS,百度及360DNS中规中矩,而Google DNS还是很慢,我们还是拥抱国产DNS吧,推荐腾讯DNSPOD DNS 119.29.29.29 阿里DNS 223.6.6.6、223.5.5.5

[root@localhost ~]# ping 114.114.114.114 -c 4;ping 119.29.29.29 -c 4;ping 223.6.6.6 -c 4;ping 180.76.76.76 -c 4;ping 101.226.4.6 -c 4;ping 8.8.8.8 -c 4

PING 114.114.114.114 (114.114.114.114) 56(84) bytes of data.
64 bytes from 114.114.114.114: icmp_seq=1 ttl=77 time=24.9 ms
64 bytes from 114.114.114.114: icmp_seq=2 ttl=95 time=26.5 ms
64 bytes from 114.114.114.114: icmp_seq=3 ttl=65 time=26.0 ms
64 bytes from 114.114.114.114: icmp_seq=4 ttl=76 time=26.4 ms

— 114.114.114.114 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3031ms
rtt min/avg/max/mdev = 24.919/25.990/26.536/0.671 ms
PING 119.29.29.29 (119.29.29.29) 56(84) bytes of data.
64 bytes from 119.29.29.29: icmp_seq=1 ttl=53 time=10.2 ms
64 bytes from 119.29.29.29: icmp_seq=2 ttl=53 time=15.3 ms
64 bytes from 119.29.29.29: icmp_seq=3 ttl=53 time=10.0 ms
64 bytes from 119.29.29.29: icmp_seq=4 ttl=53 time=9.68 ms

— 119.29.29.29 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3014ms
rtt min/avg/max/mdev = 9.684/11.345/15.391/2.345 ms
PING 223.6.6.6 (223.6.6.6) 56(84) bytes of data.
64 bytes from 223.6.6.6: icmp_seq=1 ttl=53 time=7.56 ms
64 bytes from 223.6.6.6: icmp_seq=2 ttl=53 time=8.45 ms
64 bytes from 223.6.6.6: icmp_seq=3 ttl=53 time=7.08 ms
64 bytes from 223.6.6.6: icmp_seq=4 ttl=53 time=6.69 ms

— 223.6.6.6 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3011ms
rtt min/avg/max/mdev = 6.698/7.450/8.453/0.661 ms
PING 180.76.76.76 (180.76.76.76) 56(84) bytes of data.
64 bytes from 180.76.76.76: icmp_seq=1 ttl=54 time=36.7 ms
64 bytes from 180.76.76.76: icmp_seq=2 ttl=54 time=37.3 ms
64 bytes from 180.76.76.76: icmp_seq=3 ttl=54 time=36.5 ms
64 bytes from 180.76.76.76: icmp_seq=4 ttl=54 time=36.1 ms

— 180.76.76.76 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3041ms
rtt min/avg/max/mdev = 36.136/36.675/37.327/0.432 ms
PING 101.226.4.6 (101.226.4.6) 56(84) bytes of data.
64 bytes from 101.226.4.6: icmp_seq=1 ttl=55 time=30.5 ms
64 bytes from 101.226.4.6: icmp_seq=2 ttl=55 time=30.7 ms
64 bytes from 101.226.4.6: icmp_seq=3 ttl=55 time=28.4 ms
64 bytes from 101.226.4.6: icmp_seq=4 ttl=55 time=30.6 ms

— 101.226.4.6 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3035ms
rtt min/avg/max/mdev = 28.478/30.091/30.722/0.934 ms
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=45 time=39.6 ms

— 8.8.8.8 ping statistics —
4 packets transmitted, 1 received, 75% packet loss, time 4000ms
rtt min/avg/max/mdev = 39.617/39.617/39.617/0.000 ms
[root@localhost ~]# traceroute -n 114.114.114.114;traceroute -n 119.29.29.29;traceroute -n 223.6.6.6;traceroute -n 180.76.76.76;traceroute -n 101.226.4.6;traceroute -n 8.8.8.8
traceroute to 114.114.114.114 (114.114.114.114), 30 hops max, 60 byte packets
 1  192.168.1.100  0.470 ms  0.670 ms  0.886 ms
 2  100.64.0.1  6.717 ms  6.723 ms  10.996 ms
 3  183.56.68.41  6.734 ms  6.794 ms  6.844 ms
 4  183.56.64.161  7.278 ms  7.200 ms  7.313 ms
 5  183.56.65.38  10.736 ms  10.794 ms  10.733 ms
 6  202.97.64.77  33.088 ms  32.746 ms  32.487 ms
 7  218.2.134.2  32.125 ms  26.167 ms  26.070 ms
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
traceroute to 119.29.29.29 (119.29.29.29), 30 hops max, 60 byte packets
 1  192.168.1.100  0.448 ms  0.654 ms  0.871 ms
 2  100.64.0.1  131.462 ms  131.469 ms  131.562 ms
 3  183.56.68.97  6.767 ms  6.779 ms  6.778 ms
 4  183.56.64.113  6.848 ms  6.902 ms  6.999 ms
 5  183.56.65.14  10.389 ms  10.449 ms  10.617 ms
 6  61.140.0.37  10.306 ms  10.130 ms  11.986 ms
 7  61.140.1.10  16.669 ms  10.706 ms  10.718 ms
 8  183.61.145.194  9.224 ms  10.416 ms  10.001 ms
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
traceroute to 223.6.6.6 (223.6.6.6), 30 hops max, 60 byte packets
 1  192.168.1.100  0.462 ms  0.669 ms  0.890 ms
 2  14.127.64.1  13.381 ms  13.834 ms  14.015 ms
 3  113.106.43.229  7.094 ms  7.107 ms  7.198 ms
 4  119.136.12.158  7.109 ms  7.232 ms  7.284 ms
 5  183.56.66.2  10.394 ms 183.56.65.62  13.996 ms 183.56.65.74  8.326 ms
 6  119.147.221.10  7.730 ms 119.147.223.106  9.083 ms 119.147.221.130  11.309 ms
 7  119.147.220.238  12.315 ms  7.492 ms  7.509 ms
 8  * * 14.215.137.50  9.989 ms
 9  * 42.120.242.234  10.362 ms  10.063 ms
10  42.120.242.214  14.005 ms *  14.055 ms
11  42.120.253.10  6.657 ms * 42.120.253.2  8.375 ms
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
traceroute to 180.76.76.76 (180.76.76.76), 30 hops max, 60 byte packets
 1  192.168.1.100  0.378 ms  0.581 ms  0.797 ms
 2  14.127.64.1  7.265 ms  7.344 ms  7.409 ms
 3  113.106.43.229  7.197 ms  7.313 ms  7.432 ms
 4  59.40.49.110  7.507 ms  7.563 ms  7.590 ms
 5  * * *
 6  202.97.65.101  42.138 ms  42.004 ms *
 7  * * *
 8  220.181.17.118  38.775 ms *  39.623 ms
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
traceroute to 101.226.4.6 (101.226.4.6), 30 hops max, 60 byte packets
 1  192.168.1.100  0.495 ms  0.723 ms  0.882 ms
 2  100.64.0.1  6.797 ms  6.844 ms  6.984 ms
 3  183.56.68.41  6.885 ms  7.006 ms  7.060 ms
 4  183.56.64.153  7.126 ms  7.187 ms  7.235 ms
 5  183.56.65.2  11.666 ms  11.620 ms  11.698 ms
 6  61.152.86.209  34.800 ms  38.168 ms  34.288 ms
 7  * * *
 8  124.74.233.134  31.913 ms  31.789 ms  33.247 ms
 9  101.226.0.30  34.916 ms  33.804 ms  33.766 ms
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  192.168.1.100  0.433 ms  0.649 ms  0.859 ms
 2  14.127.64.1  6.670 ms  6.890 ms  8.232 ms
 3  113.106.43.233  6.648 ms  8.238 ms  8.758 ms
 4  119.136.12.142  7.658 ms  8.177 ms  8.247 ms
 5  183.56.65.62  14.300 ms 183.56.65.54  10.677 ms 183.56.65.62  14.295 ms
 6  202.97.35.210  15.390 ms  15.077 ms  15.025 ms
 7  202.97.60.70  11.663 ms 202.97.91.178  10.466 ms 202.97.60.70  10.198 ms
 8  202.97.61.22  11.875 ms  14.665 ms  14.108 ms
 9  202.97.62.214  11.413 ms  11.453 ms  12.505 ms
10  209.85.241.58  15.582 ms  13.576 ms 209.85.241.56  23.106 ms
11  216.239.40.13  11.598 ms 216.239.40.11  13.685 ms  12.834 ms
12  209.85.253.89  38.926 ms  38.903 ms  37.668 ms
13  64.233.175.205  44.340 ms 209.85.250.103  39.732 ms  39.431 ms
14  * * *
15  8.8.8.8  40.948 ms  41.787 ms  41.446 ms

什么是DNS劫持和DNS污染,公共DNS是最好的解决办法

我们知道,某些网络运营商为了某些目的,对 DNS 进行了某些操作,导致使用 ISP 的正常上网设置无法通过域名取得正确的 IP 地址。常用的手段有:DNS劫持DNS污染。DNS劫持 和 DNS污染 在天朝是非常常见的现象。一般情况下输入一个错误或不存在的 URL 后,本应该出现404页面,而我们看到的却都是电信、联通等运营商的网址导航页面,正常访问网站时出现电信的小广告,使用了代理却依然无法正常访问某些境外网站,以及最近 Google 几乎被彻底封杀、微软 OneDrive 打不开,这些都和 DNS 有一定关系。

DNS劫持

DNS劫持 就是通过劫持了 DNS 服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原 IP 地址转入到修改后的指定 IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。DNS劫持 通过篡改 DNS 服务器上的数据返回给用户一个错误的查询结果来实现的。

DNS劫持 症状:某些地区的用户在成功连接宽带后,首次打开任何页面都指向 ISP 提供的“电信互联星空”、“网通黄页广告”等内容页面。还有就是曾经出现过用户访问 Google 域名的时候出现了百度的网站。这些都属于 DNS劫持。

DNS污染

DNS污染 是一种让一般用户由于得到虚假目标主机 IP 而不能与其通信的方法,是一种 DNS 缓存投毒攻击(DNS cache poisoning)。其工作方式是:由于通常的 DNS 查询没有任何认证机制,而且 DNS 查询通常基于的 UDP 是无连接不可靠的协议,因此 DNS 的查询非常容易被篡改,通过对 UDP 端口 53 上的 DNS 查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果

DNS污染 症状:目前一些在天朝被禁止访问的网站基本都是通过 DNS污染 来实现的,例如 YouTube、Facebook 等网站。

解决方法

对于 DNS劫持,可以通过手动更换 DNS 服务器为 公共DNS 解决。

对于 DNS污染,可以说,个人用户很难单单靠设置解决,通常可以使用 VPN 或者域名远程解析的方法解决,但这大多需要购买付费的 VPN 或 SSH 等,也可以通过修改 Hosts 的方法,手动设置域名正确的 IP 地址。

公共DNS

公共DNS 是一种面向大众免费的 DNS 互联网基础服务。我们知道要上网,就必须要 DNS 解析服务,尽管大多数电脑用户都很少会去手动设置 DNS 服务器地址,而是采用默认自动获取网络商 DNS 地址的方式,不过对于一些小型网络服务商而言,可能全球或者全国 DNS 节点比较少,这样就容易导致打开网页偏慢等现象。

更换 DNS 服务器地址为 公共DNS 后,可以在一定程度上加快域名解析速度防止 DNS劫持加强上网安全,还可以屏蔽大部分运营商的广告。下面列出几个目前常用的 公共DNS 服务器地址:

名称 DNS 服务器 IP 地址
OpenerDNS 42.120.21.30
阿里 AliDNS 223.5.5.5 223.6.6.6
V2EX DNS 199.91.73.222 178.79.131.110
CNNIC SDNS 1.2.4.8 210.2.4.8
114 DNS 114.114.114.114 114.114.115.115
Google DNS 8.8.8.8 8.8.4.4
OpenDNS 208.67.222.222 208.67.220.220

给出了这么多,说一下选择吧,如果是国内用户,没有洁癖的,可以考虑 114DNS阿里DNS,如果有洁癖,国内可以选择 V2EX DNSOpenerDNS,国外的可以选择很多,优选 Google 的,虽然有延迟,但还能接受,其他的看自己的网络情况了。

手动更换DNS

1. 打开“网络和共享中心”;

2. 点击正在使用的网络打开“状态”;

堪比Google Analytics网站统计的Piwik,不用再装Awstats

被称为赶超Google Analytics的Piwik是一套基于Php+MySQL技术构建的开源网站访问统计系统,前身是 phpMyVisites。协议为GPL。

本文的网站统计主角是 Piwik ,但我想在开头说一说 Awstats 跟 Google Analytics 。



Awstats 是我一贯使用的流量分析工具,它是通过分析 HTTP 服务器的访问日志得到最精确的流量数据,丝毫无差。但就因为这样,HTTP 日志里头有什么,它就只能出什么,单单就只是流量相关的参数。并不能向Piwik, Google Analysis 那样可以获取到访问者的屏幕分辨率,用户的访问忠诚度,连接速率…等更加详细的统计资料。因为后者都基于的是 javaScript 的脚本。

但 Awstats 的流量数据更加准确,因为所有请求都通过 HTTP 服务器,即使是一个小小的 gif 图片,还是一个微不足道的html页面,css,js … HTTP 的日志都会如实记录。

而基于 javaScript 的脚本的 Piwik 跟 Google Analysis, 就只能在你已经把该脚本插入到 <body> 里头的页面才在统计范围,也就是纯页面。所以你会发现,统计流量的话,基于这种方式的的结果会比 Awstats 少了许多。

所以,Awstats 跟他们这是基于2种不同原理的统计方式,各有各好处只能互补,不能替换。

Google Analytics 是提供基于 javaScript  这种统计方式也的第三方机构,同类型的机构也有很多。有的还会在你网页的底部多出一个logo,叫你相当不爽。

要使用 Google Analytics 你并不能简单做一个注册,申请就ok,由于Google Analytics收到大量注册申请,目前对新注册用户数量仍有所限制。需要先进行申请,提交用户姓名和E-mail,进行排队。不过,这个时间似乎并不太长,据某位站长所说,等待时间大概为半个月。(对于我来说有点呛)  而且它还是第三方的统计系统,你不会知道它会拿你的浏量去干什么… 当然,如果是用于改善增加 google 对你的收录数,这是好事。(有这么好吗?)

然而,有了 Piwik ,只要你有一个支持 PHP+Mysql 的环境,你就不需要排队,不需要把事情寄托于第三方。

Piwik 的安装方式超级简单,(比装个Discuz还要简单) ,特别一点的可能就是它要求PHP配置有 mysql_pdo 。

windows环境可以直接在 php.ini 中打开,而Linux环境如果没有的话就需要重新编译php了。

然而这都不是什么问题的话,几分钟你就能把 Piwik 建立起来了。

在安装向导中,会提示让你输入统计站点的域名,然后生成一段 javaScript   的代码用于插入在统计站点网页的 

<body> </body>  里头。

最终配置完成后,你就能在 Piwik 中刷新看到实时的数据。

 

Piwik 的使用很傻瓜化,首页的布局你可以像弄自己的blog 那样随意拖动,或者添加栏目(小工具)。

添加小工具,意思是把常用的图表都直接在首页上列出来。

统计图表基于flash,有动态的现实效果,还能随意切换,列表,柱形,饼型。



也能通过导航栏更加细致地阅读图表。

数据一应俱全,称得上追赶 Google Analytics 并非扯谈。

Piwik 支持多国语言, 所以你们才能看到以上的截图是中文显示。但它的页面显示有几个缺点。

首先是首页能像 blog 一样修改布局的功能,对浏览器的兼容比较差。IE7,IE8 会出现拖动错误的情况。

而Firefox 则相安无事。再就是界面体表显示虽好,但字体无法修改大小,整体看上去页面相当粗糙。

所以!就出现了开发者建立桌面应用(调用Web Serves API)来可视化Piwik数据统计,Desktop Web Analytics 和 Piwik Connector

这2个东西是基于AdobeAIR的应用。所以使用之前要先把该平台装上。然后程序才能运行。你可以在Desktop Web Analytics 的首页上在线一次过自动配置好,也能单一自己下载。按照提示经过简单的API连接配置,就能在本地,无需浏览器,获取到 Piwik 的数据跟漂亮的图表。

更重要一点,AdobeAIR 是跨平台的,所以 Piwik 的“客户端”不管在 Windows,Linux,Mac 都能完美地运行。

怎样,强大吧?!

114DNS、Google DNS、阿里DNS、OpenDNS等公共DNS评测体验报告

114DNS、Google DNS、阿里DNS、OpenDNS等公共DNS评测体验报告,主要从17ce来测试这些公共DNS的网络质量延时及丢包情况。测试总结国内推荐使用114DNS及阿里DNS,国外推荐Google DNS及OpenDNS。

1、之前用114DNS,是因为他网官上的介绍:

纯净 无劫持 无需再忍受被强扭去看广告或粗俗网站之痛苦

服务地址为:114.114.114.114 和 114.114.115.115

拦截 钓鱼病毒木马网站 增强网银、证券、购物、游戏、隐私信息安全

服务地址为:114.114.114.119 和 114.114.115.119

学校或家长可选拦截 色情网站 保护少年儿童免受网络色情内容的毒害

服务地址为:114.114.114.110 和 114.114.115.110

如果有上述需求的,可以考虑下,速度不错,使用BGP技术,3大运营商延迟基本上在10ms以下,速度很好。

公共DNS(114DNS、Google DNS、阿里DNS、OpenDNS等公共DNS)评测体验报告,国内推荐使用114DNS及阿里DNS,国外推荐Google DNS及OpenDNS。 - 文明 - LINUX|WEB|DB|DNS|CDN

 

详细网络测试结果:http://17ce.com/site/ping/201406_9581401ab4e62e3d3f8353212b20d027.html

2、阿里DNS:   223.5.5.5       223.6.6.6

与114DNS一样使用BGP技术,3大运营商延迟在25ms左右,基本不掉包,速度可以保证,如果不恶心阿的同学是可以考虑的,毕竟是国内的,访问速度可以保证的。

公共DNS(114DNS、Google DNS、阿里DNS、OpenDNS等公共DNS)评测体验报告,国内推荐使用114DNS及阿里DNS,国外推荐Google DNS及OpenDNS。 - 文明 - LINUX|WEB|DB|DNS|CDN

详细网络测试结果 http://17ce.com/site/ping/201406_100d90b13879fb6b717a03fe2735b565.html

3、Google DNS: 8.8.8.8     8.8.4.4

几乎从知道这个DNS之后就一直在用,延迟在50ms左右,速度还可以,就是由于众所周知的原因,掉包比较严重,我在使用的时候也会有相应的感觉,但我是可以接受的。

详细网络测试结果http://17ce.com/site/ping/201406_b4ec06f442704d2031f1c528cc94dc48.html

4、V2EX DNS:199.91.73.222     178.79.131.110

延迟有点高,两个都在250ms以上,偶尔掉包,不建议。详细延时测试参考:

详细网络测试结果 http://17ce.com/site/ping/201406_4b3dfa2b9441fb81f1361d5e24dde1d9.html

5、OpenDNS:208.67.222.222              208.67.220.220

知道这个比Google还早,也是非常知名的,但延迟有点高,在180ms左右,偶尔掉包,除了延迟大点,没有什么不能接受的。

详细网络测试结果http://17ce.com/site/ping/201406_bb1260401f889a606957fbfde7c18b79.html


6、其他的运营商默认的DNS,反正我是不用,偶弹广告。

最后,说一下最好的选择吧,如果是国内用户,没有洁癖的,可以考虑114DNS和阿里NDS,如果有洁癖,国外的可以选择很多优先Google的,虽然延迟,但我能够接受,其他的看自己的网络情况了。