普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

  • A+
所属分类:系统运维

本文尝试探讨在带宽有限的条件下如何优化上网体验,所以想迅雷快鸟这种加速器不在讨论范围之内,同时附上相应的工具和软件的下载地址,本文由markdown编译生成

原理探究

要想优化网速,首先我们要弄清平时我们上网的原理才行,这里有一张图总结的不错,以访问www.baidu.com为例:

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

第一步:客户端用户从浏览器输入www.baidu.com网站网址后回车,系统会查询本地hosts文件及DNS缓存信息,查找是否存在网址对应的IP解析记录。如果有就直接获取到IP地址,然后访问网站,一般第一次请求时,DNS缓存是没有解析记录的;

第二步:如果客户端没有DNS缓存或hosts没有对应www.baidu.com网站网址的域名解析记录,那么,系统会把浏览器的解析请求,交给客户端本地设置的DNS服务器地址解析(此DNS为LDNS,即Local DNS),如果LDNS服务器的本地缓存有对应的解析记录,就会直接返回IP地址;如果没有,LDNS会负责继续请求其它的DNS服务器(LDNS要么是手工配置,要么从DHCP得到,一般默认的都是本地宽带服务商提供的);

第三步:LDNS会从DNS系统的“.”根开始请求www.baidu.com域名的解析,经过一系列的查找各个层次DNS服务器,最终会查找到www.baidu.com域名对应的授权DNS服务器,而这个授权DNS服务器,正是该企业购买域名时用于管理域名解析的服务器。这个服务器有www.baidu.com对应的IP解析记录,如果此时都没有,就表示企业的运维人员么有给www.baidu.com域名做解析;

第四步:baidu.com域名对应的授权DNS服务器会把www.baidu.com对应的最终IP解析记录发给LDNS;

第五步:LDNS把收到来自授权DNS服务器关于www.baidu.com对应的IP解析记录发给客户端浏览器,并且在LDNS本地把域名和IP的对应解析缓存起来,以便下一次更快的返回相同的解析请求的记录;

第六步:客户端浏览器获取到了www.baidu.com的对应IP地址,接下来浏览器会请求获得的IP地址对应的Web服务器,Web服务器接收到客户的请求并响应处理,将客户请求的内容返回给客户端浏览器;

至此,一次访问浏览网页的完整过程就完成了。

优化想法

有鉴于此,可以从多个角度优化访问速度:简化流程,减少流量

使用hosts

Windows默认的hosts文件是空的,我们完全可以充分利用起来,直接把常用网站的ip地址写入hosts,既可以避免DNS来回解析的耗时,也可以有效规避DNS污染和劫持的问题,那么我们上网的流程就只剩下第6步这一步了。不过这里有一个问题,hosts文件是不支持通配符的,我们我们要使用该网站常用的子域名都加进去。

国内网站

1.首先来看国内网站,我以jd为例,登录之后点开几个页面就容易找到网站里的域名,找出我们常用的。

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

2.接下来我们要根据域名查ip,第一种方法也是最直接的就是用ping命令,如图红框中的即为ip地址,京东全国服务有好几个,具体是哪一个看服务器的分配,未必是最快的哪那一个,从ping的结果看花费了47ms,应该算是比较正常的结果。

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

3.第二种方法也是推荐的方法是使用工具网站,这里推荐下面这个网站,使用方法也更简单,其内置的监测点可以在世界各地同时ping,这样我们可以看到几乎所有服务器的地址,然后我们选择离自己比较近的ping点得到的响应ip,

ipip.net:www.ipip.net/ping.php

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

比如我选择设置之后,我们再ping一次看看效果,现在应该缩短了dns解析的时间,已经缩短到了11ms,效果显著(虽然人应该感觉不出来!毕竟1s=1000ms)

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

然后我们用相同的操作把其他子域名都加进去,这样我们剁手的体验会更舒服!

# 京东
182.140.232.1 www.jd.com
182.140.232.1 item.jd.com
58.83.230.159 jd.com
106.39.164.149 bean.jd.com
36.110.181.179 club.jdcom
36.110.181.147 order.jd.com
120.52.148.21 quanjd.com
106.39.167.232 vip.jd.com
106.39.167.232 huan.jd.com
106.39.167.232 you.jd.com

注意:国内还有一种特殊的情况,电信联通等isp服务商的跨网问题,其实你选择对应的ip服务器地址就可以解决延迟的问题,只是没有海豚加速器之类的方便。

国外网站

国外网站稍微复杂些,尤其是欧洲美国的,因为既有地理阻隔(海底电缆拥塞),又有国际网关GFW的筛选,所以不论是直接联网,还是使用代@理,访问时间都会更长。还是直接看例子,以www.microsoft.com为例

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

我们同样试着直接给定ip,看看效果,跟jd差不多?这货在国内有服务器吧!!

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

再看看github,这国内直连的没太大效果啊,前后差不多,主要是海底电缆的传输速度了。

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

另一类网站需要用代!理上的,如果加上代#理来回的时间更加不能看了,常用的必须加到hosts里面,不过此时选ping点应该去选择代¥理服务器所在的地址,差不多时间应该就是地理延时了,某歌是ping不通的,但是方法一样,网上曾经流行的hosts也是这样制作的。

总结:对于多服务器可以避免随机分配造成的延时,也可以避免代{过}{滤}理服务器查询dns的延时,而且不会给提供造成额外的负担。然而hosts大法也有两个问题

其一,修改不方便,比如winPC需要进入

C:\windows\system32\drivers\etc

才可以修改。为了解决这个问题开发者们脑洞大开,这里推荐一款十分有颜值的hosts管理工具——SwitchHosts!可以在多个hosts间切换,还支持在线hosts,很容易就可以上手。

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

选择优质DNS

hosts虽然好,但是我们最多只能把买宽带送的默认DNS就放弃吧,更别说还有污染和劫持的问题。如果你是技术宅自己去部署DNS分流,国内国外DNS分开这是最好的,如果你没有条件部署就继续看下面这部分。

如果你访问国内网站多,推荐几个国内的DNS服务器:


DNSPod DNS :(推荐)
DNSPod的 Public DNS 是目前国内第一家支持ECS的公共DNS,是DNSPod推出的公共域名解析服务,可以为全网用户提供域名的公共递归解析服务!DNS 服务器 IP 地址:首选:119.29.29.29备选:182.254.116.116作者点评:测试数据显示Public DNS 国内数据均比114DNS好,强力推荐!

中科大防污染DNS
202.141.162.123(中国电信);
202.38.93.153 (教育网);
202.141.176.93 (中国移动))

阿里 AliDNS:
阿里公共DNS是阿里巴巴集团推出的DNS递归解析系统,目标是成为国内互联网基础设施的组成部分,面向互联网用户提供“快速”、“稳定”、“智能”的免费DNS递归解析服务。DNS 服务器 IP 地址:首选:223.5.5.5备选:223.6.6.6作者点评:排名第三的DNS也不是吹的,只是节点貌似有点少。


如果你访问国外网站多,推荐这几个DNS服务器:

Google DNS:
谷歌公共域名解析服务(Google Public DNS)是由谷歌公司于2009年发布的一项新的DNS服务。主要为了替代ISPs或其他公司提供的DNS服务。
DNS 服务器 IP 地址:
首选:8.8.8.8
备选:8.8.4.4
作者点评:机房在国外,大陆无节点!你如果用了谷歌DNS你的信息有可能会免费出国转一圈才回来!

微软DNS(4.2.2.1;4.2.2.2)

V2EX DNS (199.91.73.222; 178.79.131.110)

Norton ConnectSafe   (199.85.126.10; 199.85.127.10)


如果内网外网上的都比较多又无条件弄分流,那就选香港澳门的DNS服务商


香港宽频DNS:(203.80.96.10;203.80.96.9)

这里推荐一款绿色免费DNS软件,可以起到救急的作用,注意,软件就会给系统造成内存压力了,虽然也比较轻。

DNS测速工具(DNS Benchmark):支持添加自定义服务器,方便选择适合自己的DNS,下载地址自己搜索吧。

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

建立DNS缓存

在线解析总是需要时间的,缓存到本地就会方便很多,有条件的直接弄到路由器上就好了,没条件的话这里还是推荐一款小软件DNSspdeeder

下载地址:http://www.sharewarestudio.com/?page_id=6

功能很简单,一是可以添加多个DNS服务器,并且定时检测;而是解析结果缓存到本地。不足有两点,一是无法进行分流,而是占用系统资源。

减少流量,拦截广告和追踪

事实上我们点击一次获得的除了我们想要的数据外,还有额外的跟踪数据,广告等等,这个广告尤为烦人。如果能够拦截广告请求,那也可以有效优化上网体验,要达到这个目的最好也是从hosts入手。

1.这里我要先说一下hosts拦截广告是直接屏蔽广告地址,强行指向127.0.0.1就可以了,前面已经推荐了一款十分好用的hosts管理软件,这里就推荐一个比较受欢迎的去国内广告hosts,注意只是去广告的。

在线地址:https://raw.githubusercontent.com/vokins/yhosts/master/hosts

项目主页:https://github.com/vokins/yhosts

使用方法:直接在SwitchHost!里面添加在线hosts就可以了,建议设置1天1更新。

2.拦截广告另一种就是在浏览器添加广告拦截拓展,我依旧是推荐uBlock Origin,内存占用相对较少,而且喜欢玩元素选择器,下面这是把52的追踪请求拦截的效果(站长不会打我吧?):

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

3.减少流量的另一种方案是使用流量节省程序,比如谷歌就推出了自家的流量节省程序,然而这是需要连接谷歌服务器的。

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

4.如果在网速特别差的地方,又或者是流量计费的时候,比如chrome我们可以开无图模式,方法如下:

普通PC在有限带宽条件下上网速度的优化方案:hosts+DNSSPEEDER+uBlock Origin

总结

再次申明本文不是讨论提高网速,而是怎样让有限网速下上网更流畅,主要是两个思路:减少流程和减少流量,就日常使用上来说提升肯定是有限的,但长期使用的话还是更有好处。另外在需要进行大量操作的时候,这个优化就会带来直接的经济效益了。
当然不差钱的话可以购买加速器,或者直接通千兆光纤。

迷惘

发表评论

您必须登录才能发表评论!