通过本地DNS,加快冲浪速度

对于网络加速,有很多种办法。最简单直接的莫过于通过钞能力实现,然而如果不额外花费(比如:提升宽带/加私服/换硬件等)想要达到提升效果,优化DNS算是一种很有效的手段…

对于我来说,任何时候更换路由器,第一件事就是进入路由器管理后台手动更换运营商提供的DNS服务,原因很简单:

  1. 上网较慢:通常运营商提供的DNS都是某个地区特定线路的节点,效果嘛只能说可以用;
  2. 安全性差:如果说网慢一点(在忍耐范围内)也还能接受,但时不时被劫持、投放广告就过份了,当然还不仅限于此;

一般来说,我们可以在路由器后台或者自己电脑上手动指定适合自己的DNS服务,目前国内比较知名的有 阿里腾讯114这么几个,读者可以根据自己的情况自行选择。具体姿势如下:

# 以阿里DNS解析为例,获取离我最近的京东官网IP节点
nslookup www.jd.com 223.5.5.5

# 拿到上个命令的最终结果,PING下连通性能(选最合适你的那个)
ping 27.36.125.193 -c 2

本文将分享另一种更为极客范的姿势,即:通过SmartDNS搭建本地DNS服务,特别适用于希望获得全球特定加速的人群。

PS:如果浏览器面前的你,对开发工具配置不是太熟练,以下内容可能会有难度。正常上网冲浪,并不需要这么折腾!

SmartDNS

SmartDNS,一个开源、高性能的本地DNS服务器工具,支持树莓派、OpenWrt、华硕路由器原生固件和 Windows 系统等。

更多详情,读者可以移步到他们的官网:SmartDNS

基于macOS的本地化

smartdns工具本身是用C语言写的,目前该工具并不能直接跑在macOS下。有两种方式可以完成mac本地化

特别提示:由于rust版的目前仍在开发阶段,我试了通过brew install smartdns安装,不过有一些问题。刚好我本地有Docker环境,所以就换成容器方案了。

工具依赖说明

  1. Docker:下载和运行容器,具体移步:https://hub.docker.com/r/pymumu/smartdns
  2. Git:用于dnsmasq-china-list源码下载;
  3. Make:用于构建基于本地DNS服务的list,如果mac有安装过XCode,则认为make命令默认有效;

基于规则分流

由于某些众所周知的原因,国内公共DNS服务对海外网站解析是有限的。如果想要实现内外有别,推荐基于dnsmasq-china-list构建自己的清单。否则,仅Docker化就可以了

如果你已经准备好了上述工程源码,那现在可以开始构建了

make SERVER=domestic smartdns

这句命令的意思是,把国内节点解析交给smartdns
成功后,会生成几个以smartdns.conf结尾的配置文件,然后再把它复制到系统目录:/et/smartdns/domestic

注意使用sudo操作,如果对应目录不存在,则手动创建。最后赋予文件可读权限…

配置参考

以下是smartdns.conf的配置参考,该文件位于:/etc/smartdns。如果没有,需要手动创建它

# Listen on local port 53, both ipv4 and ipv6
bind [::]:53


# 日志信息
log-num 5
log-size 2M
log-level warn
log-console yes

# 禁用全局测速
speed-check-mode none

# 启用双栈优选
dualstack-ip-selection yes

# 域名预先获取功能,开启会提高系统资源占用率
prefetch-domain yes
cache-size 4096

# 配置 bootstrap-dns,如不配置则调用系统的,建议配置
server-https https://cloudflare-dns.com/dns-query -bootstrap-dns -exclude-default-group

# ----- Default Group(解析海外) -----
server 1.0.0.1
server 8.8.4.4
server 9.9.9.9
server-tls 1.1.1.1
server-tls 8.8.8.8

# ----- Domestic Group(解析国内) -----
## 腾讯 DNSPod IP DoT
server-tls 1.12.12.12:853 -group domestic -exclude-default-group
server-tls 120.53.53.53:853 -group domestic -exclude-default-group
## 阿里 IP DoT
server-tls 223.5.5.5:853 -group domestic -exclude-default-group
server-tls 223.6.6.6:853 -group domestic -exclude-default-group
## 114 DNS、使用 TCP 查询
server-tcp 114.114.114.114 -group domestic -exclude-default-group
server-tcp 114.114.115.115 -group domestic -exclude-default-group
## DNSPod 兜底
server 119.29.29.29 -group domestic -exclude-default-group


# ----- Office Group(解析办公区内网) -----
# Configure the Office(Home) upstream server
server 192.168.1.1 -group office -exclude-default-group

# Domain names ending with work are forwarded to the office group for resolution
nameserver /work/office


# ----- 其他个性化配置 -----

# Block Domains (Ad Blocking)
address /ads.baidu.com/#


# 加载由 dnsmasq-china-list 生成的 domain-rules 配置文件,使得国内的解析走 domestic 组
conf-file /etc/smartdns/domestic/*.conf -group domestic

以上就是全球均衡的一个配置参考,各项参数的用途参考官方:配置选项 - SmartDNS

运行和测试

配置文件和容器环境准备妥当后,执行以下命令:

docker run -d --name smartdns --restart=always -p 53:53/udp -v /etc/smartdns:/etc/smartdns pymumu/smartdns:latest

然后,你可能会运行失败!因为53端口被系统服务占用了,你可以通过lsof -i:53sudo lsof -i:53看下是哪个进程占用了,然后杀掉、重启容器

原文来自:https://tomartisan.com/groceries/how-many-dns-skills-do-you-know/

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值