Total Pageviews

Monday, 25 January 2016

寻找、检验可用gae ip的方法和经验

本人用goagent(的gae版)时间不短,受益颇多。想想还是该做点什么。 授之以鱼,不如授之以渔。分享一下使用经验,仅供参考:
1. 版本问题,新版本可能有DNS解析问题,目前用3.1.12,dns解析问题较少。goagent用的是TCP方式查询,再用黑名单对结果过滤,所以速度和结果都有保障。
2. ip问题,不能翻大部分还是ip的问题。貌似GFW是根据特定的IP地址或IP地址段进行SSL间歇性干扰。之前能用的,现在不一定能用。比如之前我一直使用的是 港74.125.128.x中唯一的两个SSL很稳定的地址102和114,而且时延只有几十ms,可这次这两个IP的HTTPS完全被干扰了,无法使用。每个人的网络情况不一样,还是要自己寻找、校验IP。

寻找、校验IP:
1. 需要找到google服务器或者CDN加速的IP地址段。可以通过nslookup查询出google使用的所有ip地址段信息。另外,根据网友贡献http://bgp.he.net/search?search%5Bsearch%5D=google&commit=Search直接搜索查看(无须翻墙)。
2. 对443端口进行TCP ping,确定联通性和延时。推荐:windows下,nmap + psping。(http://nmap.org/dist/nmap-6.46-setup.exe)(http://download.sysinternals.com/files/PSTools.zip)。linux下工具就更多了,这里就不介绍了。
3. 粗略确定HTTPS是否可用。
4. 填入配置文件中使用,进一步确定是否可用。

端口扫描、TCP ping:
1 、nmap可以快速扫描IP地址段,确定443端口可用的ip,以及延时。Windows下还有UI工具zenmap集成在官方的安装包中。使用方法很简单。命令行下: nmap -sS -p 443 [ip段] 就行了。ip段就是从上面那个地址中得到的。比如74.125.128.0/24。命令就是: nmap -sS -p 443 74.125.128.0/24,等待一段时间后就可以看到扫描结果。
结果分ip显示,如果有“443/tcp open https”字样,说明这个ip可用。延时是(0.11s latency),表示0.11秒延时,即110ms延时。尽量找open而且延时低的ip。
2 、 psping可以tcp方式持续ping一个ip的指定端口,测试nmap得到的可用IP是否具有持续可用性。用法很简单,跟ping命令差不多:命令行下 psping -w <次数> <ip地址>:443。比如: psping  -w 50 74.125.128.100:443。即ping 74.125.128.100的443端口50次。得到的结果和ping也类似。 psping非必须。
个人经验,台、日、韩的地址,延时较低。

分析HTTPS是否可用:
在浏览器地址栏中通过输入  https://ip地址 ,查看显示结果中对证书的域名有效性,就可以大致知道HTTPS是否可用于goagent使用。比如显示:此证书仅对*.google.com有效。或者对其他本地化地址有效如 : *.google.ar,*.google.pk,*.google.uk或者cache之类的。当然证书可能会对一大堆网址进行SSL认证,只要里面包含可用的就行了。
如果会编写脚本,python就可以批量检测,或者openssl工具也可以用脚本批量检测。
此为个人经验,仅供参考。还有其它的google相关认证可能也能用于goagent。也有非google的认证,比如CDN加速,可能证书是其他非google的,但仍可以用于goagent。是否可用,以填入ini实际测试为准。

敏感时期,封得太快,尽量多找些IP填入ini。

from https://code.google.com/p/goagent/issues/detail?id=14012