为什么我的百度访问这么慢???

由于国内DNS对于某些域名会进行劫持,所以前段时间我把DNS配置到8.8.8.8。 之后我的网络百度等一些国内站点就变得非常的慢。

Pi-Hole

之前以为是DNS设为谷歌DNS ,由于网络距离,导致DNS请求非常慢。所以拿了一个树莓派,使用Pi-hole自建了一个DNS服务器,希望使用缓存来增加体验。

Pi-hole DNS 配置

但是没什么用,访问百度依然很慢,因为后面事情多了,也忍下去了。

发现问题

某次我查询百度IP的时候,惊奇的发现,这个IP居然是香港的???

百度DNS解析

103.235.46.39

到这下明白了,使用Google DNS解析百度都会认为海外用户访问,从而解析到香港服务器,导致国内访问巨慢。

那既然发现问题,该怎么解决呢?

chinadns-ng

chinadns-ng,它可以通过域名黑/白名单来自定义切换解析DNS,让国内域名通过国内DNS,国外域名通过国外DNS。

编译

1
2
3
4
git clone https://github.com/zfl9/chinadns-ng.git
cd chinadns-ng

make

我的启动参数

1
2
3
#!/bin/bash

nohup ./chinadns-ng -l 15353 -c "223.5.5.5#53,114.114.114.114#53" -t "8.8.8.8#53,1.1.1.1#53" -m chnlist.txt -g gfwlist.txt -4 chnroute.ipset -6 chnroute6.ipset -p 2 &

定期重启脚本

1
2
3
4
5
6
7
8
9
#!/bin/bash

pid=$(ps -fu root | grep chinadns-ng | grep -v grep | awk -F' ' '{print $2}')
echo "restart, pid = $pid"
if [ -n "$pid" ]; then
kill -9 $pid
sleep 5
fi
nohup ./chinadns-ng -l 15353 -c "223.5.5.5#53,114.114.114.114#53" -t "8.8.8.8#53,1.1.1.1#53" -m chnlist.txt -g gfwlist.txt -4 chnroute.ipset -6 chnroute6.ipset -p 2 &

保存为sh脚本,最后加入crontab,即可定时重启

定期数据更新

1
2
3
4
5
6
7
8
9
#!/bin/bash

# 走代理以免更新失败
export http_proxy=
export https_proxy=
./update-chnlist.sh
./update-chnroute.sh
./update-chnroute6.sh
./update-gfwlist.sh

保存为sh脚本,最后加入crontab,即可定时更新

配置Pi-Hole

由于Pi-Hole提供了广告封禁,DNS缓存的功能。所以我还是继续选择使用Pi-hole,修改它的上游DNS服务为 127.0.0.1#15353

Pi-hole DNS 配置

其他配置均不需要修改。

最后的解析终于正常了,再访问国内站点终于体验飞一样速度了~

解析

为什么我的百度访问这么慢???

https://blog.kur4ge.com/2021/11/Why-is-Baidu-so-slow/

作者

Kur4ge

发布于

2021-11-06

更新于

2021-11-06

许可协议

评论