软件路由中的dnsmasq的用途
LEDE OpenWRT中 luci-app-turboacc 组件有几个功能分别是
- 流量分载 (用处不大,我的是x86的,对CPU不行的路由器有作用,对CPU够用的就没有什么用处了)
- 全锥型NAT (打游戏有作用,对UDP协议有一定的效果)
- BBR 拥塞控制算法 (对开启上行流量的有作用)
- DNS缓存 (基本没用)
为什么说这个DNS缓存没啥用处呢?因为OpenWRT本身就有dnsmasq,我个人觉得,有了这个就够用了,我简单介绍一下,我是如何使用dnsmasq的
DNS缓存
这个功能是默认就有的,不用多说,唯一的,你可以调整cache size,会调的就调一下,不会的也没关系
内网和外网解析地址不同
我在家里有一个网盘,出门在外需要解析成家里出口的公网IP,回到家里应该解析成内网IP,假设域名是pan.macgeeker.com
- 解析成公网出口的IP,使用DDNS,要么直接DDNS pan.macgeeker.com,要么把pan.macgeeker.com cname到 ddns的域名上
- 解析内网IP,就需要借助dnsmasq
当然也可直接修改dnsmasq的配置文件
1vim /etc/hosts 2# 增加以下几行 3192.168.x.x pan.macgeeker.com 4 5# dnsmasq会读取hosts文件的
1vim /etc/dnsmasq.conf 2# 增加 3address=/pan.macgeeker.com/192.168.x.x
对于开启IPv6的用户不能正常访问netflix
这个我就不详细说了,直接说原因吧。不能正常访问是因为netflix.com被解析成一个IPv6的地址了,但是大多数科学上网的组件是不支持IPv6的,或是VPS不支持(我的就是VPS不支持IPv6),这个时候就需要强行把netflix.com解析成IPv4的地址。解决办法也很变态
1vim /etc/dnsmasq.conf
2
3增加
4# disable ipv6
5address=/fast.com/::
6address=/netflix.com/::
7#address=/googlevideo.com/::
8address=/openwrt.org/::
9address=/instagram.com/::
把这几个域名针对IPv6的解析置为空,这样子流量就可以走梯子了。
对于部分域名解析被污染
对于被污染的解决办法就是指定域名去8.8.8.8上解析
1vim /etc/dnsmasq.conf
2
3# 如下格式增加
4server=/instagram.com/8.8.8.8
5server=/google.com/8.8.8.8
6server=/youtube.com/8.8.8.8
7server=/googlevideo.com/8.8.8.8
8server=/github.com/8.8.8.8
如github.com正常是解析到新加坡去了,如果强制用8.8.8.8就解析在美国(我是CN2线路,走美国更快)
对于某些网站可能省流量了
前面的配置文件中我注释了googlevideo原因是发现走梯子没有不走梯子快
debug一下,确实是解析成一个IPv6地址了
居然解析到毛子去了,不是闹掰了么?
同样的还有fbcdn等,看官可以自己试
解决vpn到办公网络的域名解析问题
这里不方便深入分享,说一下原理吧。一般办公网络都有安全验证,所以基本上都是需要有台被认证过的电脑才能vpn,因此你的内网中有一台电脑要能vpn到公办网络,并在上面安装proxy软件,在openwrt的dnsmasq中把针对办公环境的域名解析都指到这台vpn的电脑上,举个例子
1vim /etc/dnsmasq.conf
2# 把 officecorp.com的解析都指向你的vpn电脑
3server=/office.com/192.168.x.x
4# 这代表,所有office.com的域名解析是都通过你的vpn来解析的
下一步,就是在OpenWRT中把有office.com的流量转vpn的电脑代理上网
这样只要你的vpn电脑VPN开启了,代理都是正常开启的,你内网中所有的机器都能正常访问你的办公网络了