-
文章出处:
OpenWRT 分流DNS的设置 · Issue #57 · luckyyyyy/blog
我自己根据实际需要基于上方的链接内容进行了相关补充
OpenWRT配置IPv6的方法参考如下文章:
目前还是有许多人喜欢设置DNS,虽然会浪费一些转发性能,但如果明白其中的链路关系,合理设置后,还是能起到不错的效果的。同时也把正确的设置方式告诉大家。
同时请注意,删除你电脑,手机上的DNS(不要设置任何DNS)
`建议小白用户使用 Clash 更稳定且方便 此教程仅针对有特殊需求的用户
建议小白用户使用 Clash 更稳定且方便 此教程仅针对有特殊需求的用户
建议小白用户使用 Clash 更稳定且方便 此教程仅针对有特殊需求的用户
建议小白用户使用 Clash 更稳定且方便 此教程仅针对有特殊需求的用户
建议小白用户使用 Clash 更稳定且方便 此教程仅针对有特殊需求的用户
不是非常了解DNS,请不要设置,避免各种问题,作者本人已更换Clash,非常稳定。
同时作者建议使用 shellclash 如需要x86稳定固件 不喜欢折腾的 可以联系我
telegram: eval0xFFFD20`
涉及到的组件
- Passwall
- AdGuard Home(可选)
- Dnsmasq (无需进行任何设置)
- SmartDNS (分流+主DNS服务器)
AdGuard Home(可选)
主要是起到记录的作用,对需要查看记录的同学有帮助,至于DNS广告屏蔽,虽然有用但会误伤,慎重选择。同时由于记录文件较大,请一定要注意把记录时间改小,或者设置到有足够空间的目录中,否则会导致时间久了将磁盘撑满
-
配置上游DNS为如下部分:
127.0.0.1:6053
[::1]:6053 -
设置重定向53端口到AdGuardHome,如果使用了lean大佬的固件,请在防火墙,自定义规则中注释掉已添加的53端口重定向规则(大部分人都使用了lean的固件)
防火墙规则备份:
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53[ -n "$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53[ -n "$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
注意:
- 设置了重定向后,所有DNS结果都将应答非权威记录,如果不了解DNS协议请无视,这条并不会影响什么。
- 在接口LAN → 自定义DNS服务器地址处,填写127.0.0.1。
- 在接口LAN → 修改 → 下方的高级设置中,设定DHCP附加选项 6,192.168.2.1,保存并应用即可。
SmartDNS
主要用于分流和DNS查询,国外走 Cloudflare DNS ove TLS/HTTPS ,国内延迟优先(但可能影响P2P下载,实测实际还好)。
- 启用第一组服务器,选择作为dnsmasq上游,IPV6服务器√(需要先看下DHCP/DNS → 高级设置中
禁止解析 IPv6 DNS 记录
这一项一定要取消勾选,否则无效),双栈IP优选√,域名预加载√,过期缓存服务√。缓存大小尽量设置大一些(我这里设置的是1024) - 启用第二组服务器,端口6553,跳过测速√,跳过address规则√,跳过Nameserver规则√(非常重要,否则会死循环),跳过ipset规则√,跳过address SOA(#)规则√,跳过双栈优选√,跳过cache√,其余设置保持默认。
- 配置上游服务器,
部分设置要填写后点编辑才能看到
。- 国内上游填写你的运营商,额外填写一些国内常用的,例如阿里云,DNSPod等等,可以参考文末的配置,分组信息填写cn。
- 国外上游填写1.1.1.1端口853,协议填写tls,分组信息填写passwall,额外的服务参数填写 -exclude-default-group
- 不指定端口的default端口:udp 53 tcp 53 tls 853 https 443
Passwall
- DNS分流 smartdns
- 国内分组名 cn
- 过滤模式 通过UDP请求DNS
- 远程DNS 127.0.0.1:6553(填写smartdns的第二DNS端口)
Dnsmasq(DHCP/DNS)
- DHCP/DNS设置中添加DNS转发127.0.0.1:6053(端口为smartdns监听的端口)
- 高级设置中将DNS查询缓存的大小设置为0(因为DNS转发已经使用了)
- 如果需要使用域名访问内网服务的话,将重绑定保护关闭(这是一个dnsmasq的保护策略,但是会阻止部分域名访问内网服务,详见链接:https://blog.csdn.net/qq_36348899/article/details/119297854)
重点疑难解答:
- (不推荐)你到底需要不需要openwrt自带的dnsmasq,如果不需要,请更改dnsmasq的端口
- (推荐)如果需要使用dnsmasq,那么注意Lean固件里防火墙53端口优先的指令,注销防火墙的53端口优先指令(ipv4的和ipv6的都注释),然后配置AdGuardHome里的重定向服务,参考上部分Adguard Home配置
一些配置
smartdns 部分直接 vim 编辑 /etc/config/smartdns 照抄即可,无需手动设置,配置完记得界面上点击保存应用,或者uci命令刷新配置,我里面有杭州电信的DNS服务器,不是杭州的记得自己改掉,否则可能有负面效果。
config smartdnsoption server_name 'smartdns'option port '6053'option tcp_server '1'option seconddns_tcp_server '1'option coredump '0'option seconddns_server_group 'passwall'option seconddns_no_speed_check '1'option seconddns_no_dualstack_selection '1'option prefetch_domain '1'option ipv6_server '0'option force_aaaa_soa '1'option dualstack_ip_selection '1'option serve_expired '1'option redirect 'dnsmasq-upstream'option rr_ttl_min '300'option seconddns_port '6553'option seconddns_enabled '1'option seconddns_no_rule_nameserver '1'option seconddns_no_rule_addr '0'option seconddns_no_rule_soa '0'option seconddns_no_rule_ipset '0'option cache_size '300'option seconddns_no_cache '1'option enabled '1'list old_redirect 'dnsmasq-upstream'list old_port '6053'list old_enabled '1'config serveroption name 'aliyun'option ip '223.5.5.5'option port '53'option type 'udp'option blacklist_ip '0'option server_group 'cn'option enabled '1'config serveroption name '114'option ip '114.114.114.114'option port '53'option type 'udp'option blacklist_ip '0'option server_group 'cn'option enabled '1'config serveroption enabled '1'option type 'udp'option name 'Mobile'option ip '211.137.241.34'option port '53'option server_group 'cn'option blacklist_ip '0'config serveroption enabled '1'option type 'udp'option name 'Mobile2'option ip '211.137.241.35'option port '53'option server_group 'cn'option blacklist_ip '0'config serveroption name 'baidu'option ip '180.76.76.76'option port '53'option type 'udp'option blacklist_ip '0'option server_group 'cn'option enabled '1'config serveroption type 'udp'option port '53'option name 'DNSPod'option ip '119.29.29.29'option blacklist_ip '0'option server_group 'cn'option enabled '1'config serveroption enabled '1'option name 'cloud'option ip '1.1.1.1'option port '853'option type 'tls'option server_group 'passwall'option blacklist_ip '0'option addition_arg ' -exclude-default-group'config serveroption enabled '1'option type 'udp'option name 'CNNIC SDNS'option ip '1.2.4.8'option port '53'option server_group 'cn'option blacklist_ip '0'
如何验证?
登录路由器 使用 dig 或者 nslookup 检查下各端口的DNS以及分流情况
nslookup www.taobao.com 127.0.0.1:7913 返回的是节点对应淘宝最快的IPnslookup www.taobao.com 127.0.0.1:6053 返回的是国内最快的IPnslookup www.taobao.com 应该是国内
注:如果手动查询规则列表内的域名,使用端口6053,然后匹配规则,转发给7913,然后被缓存住。(国外因为跳过测速,所以多个域名是正确的)
来源地址:https://blog.csdn.net/qq_26550927/article/details/128357965