Google IP 现状

2015-02-28 01:27:55 +08:00
 fqrouter2
Google IP 分为三类。第一类是普通的 *.google.com *.gstatic.com 类型的IP。这类IP数量巨大,而且GGC包括这类IP。虽然大量被封,仍然后非常多可用的。

第二类是 *.googleusercontent.com *.googleapis.com 类型的IP。这类IP数量非常稀少,大部分都已经被封。特别是GGC并不包含这类IP,所以数量稀少。

第三类是 *.googlevideo.com (youtube视频),*.gvt1.com(google play下载)类型的IP。这类IP数量巨大,GGC主要就是为了缓存这类的内容而存在。但是google选择了由网页(html)指定IP的方式,从而不允许用户或者middle box去指定使用特定的IP(所谓改host)。具体详见
https://peering.google.com/about/faq.html
http://www.slideshare.net/Netmanias/netmanias20120416ggc-operation-for-you-tube-part-1-kt-en
http://www.slideshare.net/Netmanias/netmanias20120418ggc-operation-for-you-tube-part-2-lg-u-en

针对GGC的这种行为,国外的网友也有抱怨
http://www.reddit.com/r/youtube/comments/2t0pu9/i_discovered_the_cause_of_youtube_slowness_on/
http://netengv6.blogspot.com/2013/08/google-global-cache.html
他们的主要抱怨的是自己被google强制使用了ISP提供的GGC,当GGC速度不理想的时候用户无法自己选择使用别的速度更快的GGC节点。国内的用户不同在于,大部分的GGC IP被封了,用户无法通过改host选择没有被封的GGC节点。

Google R.I.P
28080 次点击
所在节点    Google
41 条回复
wwbfred
2015-03-01 23:15:57 +08:00
JamesR
2015-03-02 11:24:40 +08:00
@wwbfred
Google IP 对我来说实际上非常少的,一共16个,呵呵。
8.8.8.8
4.35.153.0/24
64.233.187.0/24
72.14.249.0/24
74.125.0.0/16
173.194.0.0/16
194.122.81.0/24
203.208.40.0/24
203.208.46.0/24
208.117.0.0/16
209.85.228.0/24
209.85.229.0/24
209.116.150.0/24
216.58.220.0/24
216.239.32.0/24
216.58.221.0/24

挂入路由器里16行就行了,这些IP通通走VPN其余走本地。然后设置凡是包含有如下关键字的DNS请求走8.8.8.8,其余走本地运营商DNS比如电信的,即可同时流畅看Youtube和享受本地优酷CDN加速。

google.com|googleapis.com|googlehosted.com|googlezip.net|googledrive.com|appspot.com|googleusercontent.com|ggpht.com|gstatic.com|googlesource.com|chromium.org|android.com|googlecode.com|google.co.jp|googlelabs.com|gmail.com|goo.gl|google-analytics.com|
youtube.com|youtube-nocookie.com|ytimg.com|googlevideo.com|blogger.com|blogspot.com|
wwbfred
2015-03-02 13:59:33 +08:00
@JamesR 我们说的不是一个东西.
linkupmylife
2015-03-03 10:09:32 +08:00
我用HE的TunnelBroker。
rootroot
2015-03-05 16:56:39 +08:00
@wwbfred 你那段话很好的解释了 为啥现在有些视频很快就可加载,有些转半天,有些F5N 次也无法播的现状。
rootroot
2015-03-05 16:58:31 +08:00
现在GG 有很多大量的IP 都可以ping通,延时还低, 但是就是不能拿来当hosts用。
AVC
2015-03-06 18:02:30 +08:00
其实现在我自己私人维护的hosts可以实现youtube视频完美播放,连play下载(其实他们用的IP是一样的)
找一个VPS,搭个sniproxy,然后hosts指向VPS即可。21L的信息很不错,不过我这边收集的youtube视频域名列表大约有14000条,应该没有更多了,基本囊括所有谷歌bigcache服务器。最后做出来的hosts文件也不大,1.4M。
关于谷歌IP,其实只要请求程序支持SNI标签,谷歌便会根据SNI标签里面的域名来提供服务,联想一下之前goagent只要找到一个谷歌IP就能使用GAE,原理也是这样的。即便我用*.google.com的IP来指lh3.ggpht.com一样可以正常访问。但是之前为什么不行呢?因为之前的play市场还不支持SNI标签,现在支持没问题了。目前发现还不支持SNI标签的谷歌应用是Google Now,连接www.googleapis.com的时候没有SNI标签,直接使用服务器返回的第一个证书来连接。其余的谷歌应用都是支持SNI标签的,这点通过抓包可以确定。(5.0.x的谷歌服务)
monkeymonkey
2015-03-07 15:10:36 +08:00
我总结了部分 IPv6 域名的规律,其中一些规则应该也适用于 IPv4。
https://github.com/lennylxx/ipv6-hosts/wiki/Google
https://github.com/lennylxx/ipv6-hosts/wiki/sn-domains
wwbfred
2015-03-08 07:07:10 +08:00
@lennylxx 非常感谢你做的sn domains的wiki!之前也一直想弄清楚sn domains代表了什么意思,但一直没分析清编码方式...直到搜到你的解码方式才茅塞顿开!
freetuchuang
2015-03-08 19:42:07 +08:00
@AVC 能否将play的hosts域名列表发一份给我 ?
rootroot
2015-03-09 13:43:31 +08:00
@AVC 可否分享一下那14000条视频域名列表?
LGA1150
2015-03-13 23:42:25 +08:00
@wwbfred @fqrouter2
能否用可以Rewrite URL的Chrome扩展程序,把.googlevideo.com、bigcache等强制重定向到一个固定的子域名?
AVC
2015-03-20 01:59:05 +08:00
话说即便是同一个YouTube视频可以由很多个不同的服务器来提供,在境内也有googlevideo.com的服务器,我一直在思考要是在请求域名的那步直接改写为国内的googlevideo服务器那速度简直能秒一切VPN。
wwbfred
2015-03-20 09:46:30 +08:00
@LGA1150 不可以.这个我也试过,但不同的视频存放于不同的服务器,自己定向到固定域名会出问题的...
@AVC 不可以.Google在国内的确有发放googlevideo.com的证书,也有ggc,但目前都是处于残废状态,不能提供视频服务.direct到哪组服务器是由google说了算,google不把我们direct到国内服务器我们就没办法.
AVC
2015-03-20 20:28:51 +08:00
203.208.40.16 r1---sn-ni57dn7e.googlevideo.com
203.208.41.16 r1---sn-ni57dn7l.googlevideo.com
203.208.46.16 r1---sn-2x37en7e.googlevideo.com
203.208.46.80 r1---sn-2x37en7l.googlevideo.com
203.208.47.144 r1---sn-2x37en76.googlevideo.com
203.208.47.16 r1---sn-2x37en7s.googlevideo.com
203.208.47.80 r1---sn-2x37en7z.googlevideo.com
203.208.48.16 r1---sn-2x37ln7e.googlevideo.com
203.208.49.48 r1---sn-2x37ln7l.googlevideo.com
203.208.50.16 r1---sn-2x37ln7s.googlevideo.com
203.208.51.16 r1---sn-2x37ln7z.googlevideo.com
203.208.52.16 r1---sn-2x37en7k.googlevideo.com

youtube的视频sn编码,lennylxx其实已经分析得比较清楚了(github上面一个ipv6 hosts项目)。

目前收集到国内的googlevideo服务器就有这些。只列出第一个服务器,部分服务器组有12个服务器(r1-r12),部分就有20个服务器。

关于是不是能用不同的googlevideo服务器来看视频,这个其实有一点可以注意的,你用新加坡和美国的代理看同一个视频对比一下请求的googlevideo服务器就会发现不同的服务器可以提供同样的视频内容。

既然有人对sn编码列表感兴趣就贴上来吧。
暂且随意的把类似r1---sn-xxxxxxyy.googlevideo.com的分类了一下。

yy部分:
6e,6z,76,7d,7e,7k,7l,7r,7s,7y,7z,d7,e6,e7,ed,ee,ek,el,er,es,ey,ez,ke,ks,l6,l7,ld,le,lk,ll,lr,ls,ly,lz,s7,sd,se,sk,sl,ss,sy,sz,z6,zl,zs,zy

xxxxxx部分:
25g7sm,25ge7n,2gb7ln,2x37en,2x37ln,30a7dn,3pm7en,4g57km,4g57kn,4g57kn,4g57ku,5go7ln,5hn7sn,5hn7su,5hnezn,5hn7ym,5uaezn,9gv7en,9gv7ln,a5m7ln,a5m7zn,a5m7zu,a5mekm,a5mekn,ab5e6m,ab5l6n,aigllm,aiglln,apn7en,bg07dn,bg07yn,c0q7ln,cg07lu,cvh7zn,cxg7en,f5f7ln,gpv7en,h0j7sn,h557sn,h5q7en,hgn7zn,hp57kn,i3b7rn,i3b7sn,i5h7ln,jc47eu,ni57dn,npo7en,npo7zn,ntq76n,ntq7en,nv47en,nwj7km,nwj7kn,nx57yn,o097zn,o097zu,oguesn,p5qlsm,p5qlsn,p5qlsu,q4f7dm,q4f7dn,q4f7sn,qxo7sn,tt17rn,u2x76n,vgqs7n,vgqsem,vgqsen,x1x7sn

任意组合xy部分,如25g7sm6e这样子。

写个批处理,nslookup查询组合域名的存在性,一般只需要查询r1服务器就可以,因为每组服务器肯定有20个域名(呃,这样说比较合适我的风格)。
————————————————————————————
@echo off
echo 请输入你的VPSIP:
set /p priip=
SETLOCAL ENABLEDELAYEDEXPANSION
for /f %%a in (视频前缀.txt) do (
for /f %%b in (视频后缀.txt) do echo r1---sn-%%a%%b.googlevideo.com>>谷歌视频域名未验证.txt
)
for /f %%c in (谷歌视频域名未验证.txt) do nslookup -q=A %%c >>谷歌视频域名查询结果.txt
findstr "Aliases: " 谷歌视频域名查询结果.txt >>查询列表提取.txt
for /f "tokens=2 delims= " %%i in (查询列表提取.txt) do echo %%i>>谷歌有效域名列表.txt
for %%i in (r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20) do (
for /f "tokens=2,3 delims=-" %%a in (谷歌有效域名列表.txt) do echo %priip% %%i---%%a-%%b>>hosts.1
)
for /f "tokens=1,2,3,4,6 delims=." %%a in (hosts.1) do echo %%a.%%b.%%c.%%d.gvt1.%%e>>hosts.2
copy /b hosts.1+hosts.2 hosts
del *.txt
del hosts.1
del hosts.2
pause
—————————————————————————————
关于xy部分,是根据你连接到谷歌的IP来进行分配的,上面就有说到了。我这边使用过新加坡,日本,美国的代理线路,我觉得应该是目前中国用户能获取到的最全面的SN服务器编码列表了。批处理里面应该都能看懂,随便简单写了个,轻喷。。

既然写了就再写VPS部分吧。

VPS搭好sniproxy,先移除/etc/sniproxy.conf,再建立一个新的sniproxy.conf并编辑。
user nobody
listen 443 {
proto tls
table host
}
table host {
.*\.googlevideo\.com$ *
.*\.gvt1\.com$ *
}

嗯,没错就是支持正则的。然后做hosts的时候填入IP即可。不过做出来的hosts文件会有莫名其妙的重复条目,这个请批处理高手来看看吧。。我反正是用excel来删除重复,目前OK。
wwbfred
2015-03-21 14:26:50 +08:00
@AVC 我觉得其实可以不用做这么多条目,只要根据vps的地理位置和运营商做两三组就够了.比如你的vps在日本,那google几乎不可能给你定向到欧洲的服务器.例如9gv7en,9gv7ln服务器在墨西哥,就不需要去做.
AVC
2015-03-23 18:35:26 +08:00
@wwbfred 反正就1.4M,也不算大。可以自己精简一下,参考lennylxx提供的数据。
5a7apple
2015-06-17 10:46:02 +08:00
是不是go哎又可用了呢
killeder
2015-07-31 10:20:47 +08:00
@fqrouter2
老大,fqrouter最新android平台的源码和编译方式能否共享下,想自己研究下wifi中继这部分,谢谢
gzelvis
2016-07-18 03:57:48 +08:00
@MicrosoftAzure @AVC 想问下 Azure 香港的机访问谷歌为啥那么慢, ping 过去很快,但返回不行,我查了一下,谷歌把香港的 Azure 定位到西雅图了,那当然快不起来。有办法解决吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/173383

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX