OpenWRT 分流DNS的设置

2023-05-16

  • 文章出处:

    OpenWRT 分流DNS的设置 · Issue #57 · luckyyyyy/blog

    我自己根据实际需要基于上方的链接内容进行了相关补充

OpenWRT配置IPv6的方法参考如下文章:

OpenWRT IPv6 NAT配置

目前还是有许多人喜欢设置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 53
iptables -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 53
iptables -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)

重点疑难解答

  1. (不推荐)你到底需要不需要openwrt自带的dnsmasq,如果不需要,请更改dnsmasq的端口
  2. (推荐)如果需要使用dnsmasq,那么注意Lean固件里防火墙53端口优先的指令,注销防火墙的53端口优先指令(ipv4的和ipv6的都注释),然后配置AdGuardHome里的重定向服务,参考上部分Adguard Home配置

一些配置

smartdns 部分直接 vim 编辑 /etc/config/smartdns 照抄即可,无需手动设置,配置完记得界面上点击保存应用,或者uci命令刷新配置,我里面有杭州电信的DNS服务器,不是杭州的记得自己改掉,否则可能有负面效果。

config smartdns
	option 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 server
	option 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 server
	option 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 server
	option 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 server
	option 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 server
	option 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 server
	option 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 server
	option 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 server
	option 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 返回的是节点对应淘宝最快的IP
nslookup www.taobao.com 127.0.0.1:6053 返回的是国内最快的IP
nslookup www.taobao.com 应该是国内

注:如果手动查询规则列表内的域名,使用端口6053,然后匹配规则,转发给7913,然后被缓存住。(国外因为跳过测速,所以多个域名是正确的)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenWRT 分流DNS的设置 的相关文章

  • DNS 与 GKE 内部负载均衡器

    我在 GKE 上有两个 kubernetes 集群 一个公共集群处理与外界的交互 另一个私有集群仅供内部使用 公共集群需要访问私有集群上的一些服务 我已通过以下方式将这些服务暴露给公共集群的 Pod内部负载均衡器 https cloud g
  • 如何刷新 socket.gethostbyname 响应的缓存?

    以前有人遇到过这个 更新 DNS 记录后 我对 test somedomain com 进行了挖掘 我得到了 167 69 143 234 但是当我执行 socket gethostbyname test somedomain com 时
  • 多个项目使用同一网络的 Docker DNS

    我有以下内容docker compose yml file version 3 services frontend image alpine command tail f dev null networks shared default b
  • PHP邮件、DNS请求超时、FQDN

    我要实现mail 我的 PHP 工作Windows Server 2012 R2 为此 我首先安装了SMTP依照指示这一页 http www vsysad com 2014 09 setup and configure smtp serve
  • 完全合格的域名是否需要句点?

    我对 FQDN 完全合格域名 感到困惑 FQDN 是否需要以句点结尾 喜欢sun or sun tuc noao edu or sun tuc noao edu 有什么不同 IT 的工作原理 域名 系统 https technet micr
  • Apache虚拟主机无域名

    我有一个安装了apache2的VPS 我想通过IP地址访问一些没有域名的PHP项目 例如 http 162 243 93 216 projecta index php http 162 243 93 216 projectb index p
  • 简单的域名正则表达式

    如何确保域名符合这 3 个简单标准 以 com net 结尾 不得以 http 或 https http www 或 https www 我已经设法理解了正则表达式的这一部分 它与第一个标准相对应 com net 但我不知道如何实现另外两个
  • proxy_pass 不使用 /etc/hosts 解析 DNS

    在 Nginx 中proxy pass指令未使用以下命令解析 DNS etc hosts文件 有什么方法可以实现这种可能性 也许利用 Lua 作为最后的手段 如果您有一台带有 systemd 的服务器 您可以使用它附带的名称服务器 syst
  • 如何使 Windows DNS 和 WINS 设置保留在 Azure VM 中?

    我在 Azure VM 中设置了一个域控制器 并且其他几个服务器也设置为 VM 当我设置服务器虚拟机时 我将 DNS 和 WINS 配置为指向 DC 的 IP 地址并将它们加入域 但是 这些设置在关闭 虚拟机被释放 后将无法保留 当虚拟机重
  • 如何在 python 中获取域名的 DNS 记录?

    如何在 python 中获取区域的 DNS 记录 我正在寻找类似于输出的数据dig 一个简单的例子来自https c0deman wordpress com 2014 06 17 find nameservers of domain nam
  • 有什么方法可以在免费的heroku dyno上添加免费的SSL证书吗?

    我有一个 heroku 免费计划 它在带有 PointDNS 附加组件的自定义域上运行 因此它可以为 DNS 提供商提供名称服务器 如果这很重要 我已在我的自定义域 https 上启动并运行该网站 但 ssl 证书指向 herokuapp
  • 如何在通过代理 (Tor) 浏览时阻止 Java 预解析我的主机?

    我目前正在开发一个java应用程序 它使用在本地主机上运行的tor代理来获取显示请求者ip的脚本 我希望这项工作主要由 Tor 代理完成 以便它在最 自然 的状态下工作 我当前的代码看起来与此类似 SocketAddress TorProx
  • DNS预取和页面优化[重复]

    这个问题在这里已经有答案了 今天我在一个网页的 HTML 源代码中看到了这个片段
  • 告诉 urllib2 使用自定义 DNS

    我想告诉urllib2 urlopen or a 定制开瓶器 使用127 0 0 1 or 1 来解析地址 我不会改变我的 etc resolv conf 然而 一种可能的解决方案是使用类似的工具dnspython查询地址和httplib构
  • Firebase 托管未验证 GoDaddy 中的 TXT 记录

    我部署了我的应用程序 现在我正在尝试添加我的自定义 URL 我按照 Firebase 的说明将他们的 TXT 记录添加到我的 DNS GoDaddy 中 但现在 Firebase 表示尚未得到验证 我认为我做错了什么 但这里没有什么可搞乱的
  • 每个用户的子域

    我拥有一个网站 为每个注册用户提供一个专用空间 如下所示 www mywebpage com user1 www mywebpage com user2 www mywebpage com user3在这条路径中 用户有他的迷你网站 我想为
  • Namecheap 域名不会在没有“www”的情况下重定向

    我正在寻找将我的域连接到 heroku 应用程序 到目前为止 我读过的教程说我们希望 Namecheap 拥有以下域名记录example com CNAME Record www www example com herokudns com
  • Mono 的 DNS 刷新超时

    虽然目前Mono项目的ServicePointManager类有DnsRefreshTimeout属性启用到其接口中 相关属性未实现 调用示例 ServicePointManager DnsRefreshTimeout 10 60 1000
  • DHCP 服务器将任何 url 重定向到登陆页面

    我有一个 Linux DHCP 服务器 我需要将所有网络流量重定向到一个登陆页面 该页面将包含有关如何在网络上注册计算机的说明 无论用户输入什么 URL 都需要将用户重定向到网页 在 DHCP 服务器上 即 用户输入 google com
  • 包含带重音符号的域的主要缺点是什么?

    我正在考虑获取一个包含重音字符的域 它包含 然而 我注意到只有一些公司提供它们 这些域是否存在普遍问题 或者我在使用这些域时是否会遇到某些缺点 DNS 协议仅支持 ASCII 带有重音字符的域被编码为 ASCII 使用Punycode ht

随机推荐

  • 软路由连接NAS做链路聚合

    软路由连接NAS做链路聚合 群晖NAS支持多种链路聚合方式 xff0c 如自适应负载平衡 IEEE 802 3ad动态Link Aggregation 平衡XOR等方式 xff0c 其中 xff0c IEEE 802 3ad动态Link A
  • 软路由网络部署配置

    软路由网络部署配置 一 作为交换机二 作为一级路由器三 作为旁路由模式一 xff1a 主路由开 DHPC 43 N1 关 DHPC 非全局 xff09 设置步骤 模式二 xff1a 主路由开 DHPC 43 N1 关DHPC 全局 方法一方
  • PX4 vision_to_mavros定位

    PX4官方给出以下做法从而使用intel realsense t265深度相机作为视觉估计的硬件选择 在这里我使用pixhawk 4和realsense t265以及Jetson TX2机载计算机以及benewake tfmini激光测高模
  • Top 50 有趣网站

    50 经典桌面 这个名叫东子的偏执狂不知花了多少 工夫 xff0c mydeskcity com的谌萘看锏 了40G xff0c 很多图片都是站长本人在国 外搜集后 xff0c 自己进行加工的作品 http www mydeskcity c
  • PX4避障和轨迹规划(3DVFH*)

    采用伴侣计算机 Companion Computer 的方案 xff0c 通过使用mavros的obstacle distance插件订阅 mavros obstacle send话题 xff0c 进而通过local planner本地轨迹
  • PX4飞控控制投放装置

    PX4飞控控制投放装置原理跟相机触发方式一样 xff0c 都是通过映射辅助AUX通道实现对应的信号发送 相机触发方法参考如下链接 xff1a Camera Trigger PX4 User Guide 触发方法有很多种 xff0c 这里我们
  • PX4板载计算机外部控制

    板载计算机外部控制主要是使用第三方机载计算机 xff08 如 xff1a Intel Aero Jetson TX2 Jetson Nano 其他类型minipc xff09 等通过mavlink协议实现对飞控参数的获取和机载端控制 xff
  • PX4无人机配置4G空地多机组网系统

    前言 使用4G网络实现无人机地面端与天空端实时通信 xff0c 并基于蒲公英cloudVPN组网技术实现广域网内的异地组网 xff0c 进一步实现不限制距离的空地多机远程组网系统 cloudVPN组网无需公网IP xff0c 需要注册一个花
  • OpenWRT配置Zerotier实现内网映射

    OpenWRT加入zerotier xff1a zerotier使用教程 OPENWRT LEDE 配置ZeroTier网络教程 子绘绘的博客 CSDN博客 Openwrt路由通过Zerotier组网实现异地内网互访 Linux加入zero
  • PX4云台控制

    一 云台硬件配置 云台采用storm32bgc无刷三轴云台 xff0c 该云台支持通过飞控控制与WBUS多通道接收机控制 这里我们采用通过pixhawk4飞控进行控制 pwm控制模式 采用三条3pin杜邦线将飞控辅助通道AUX1 3连接至云
  • 行人和人脸识别数据集

    推荐一个可应用于无人车 无人机 监控识别相关的数据集 行人和人脸检测数据集 xff08 FEEMS xff09 xff1a GitHub neverland7D Face and Pedestrian Detection Dataset F
  • Acuro二维码识别与降落对准

    什么是Aruco码 xff1f Aruco码能做什么 xff1f 搜索任务 自主降落等辅助标识 替代复杂任务中较难识别的目标 xff08 短期替代 长期替代 xff09 SLAM中的地标 反解无人机位置 实现定点 最容易识别的目标之一 1
  • ADRC控制算法在多旋翼飞行器上的应用

    基础理论知识 xff1a 程序中涉及的部分知识点参考如下链接 xff1a ADRC算法以及参数整定 xff1a 关于ADRC算法以及参数整定 xff08 调参 xff09 的一些心得体会 西涯先生的博客 CSDN博客 adrc控制算法 AD
  • 补充总结:现代控制理论

    补充内容 xff1a 现代控制理论与经典控制理论的区别 xff1a 经典控制理论主要是借助于传递函数研究系统输出与输入的关系 xff0c 而不管系统到底内部结构如何 xff0c 好比一个未知的 黑匣子 现代控制理论相对而言是要研究系统内部的
  • 网上英语学习资源大整理

    翻译 http www bilinguist com 汉英论坛 xff0c 高手云集 url http www chinatranslate net url 中国翻译网 xff0c 号称全国最大的翻译专业网站 url http gb tra
  • 使用PID和LQR控制器进行多旋翼飞行器控制

    任务内容 通过调整PID和LQR控制器以实现稳定悬停的多旋翼飞行器 xff0c 运用在无论是在仿真中还是在实际系统中 参考内容 LQR控制部分基础参考内容 xff1a LQR控制器 参考链接 xff1a Linear Quadratic R
  • Ardupilot板载计算机上云实践——第一步

    阿里云ECS在基于MAVLink的飞行器的数据中转与日志上云应用 自己先搭建了一个Demo用于测试稳定性 xff0c 访问地址 xff1a http 182 92 127 202 8123 Ardupilot 官方在今年 xff08 202
  • ADRC Ardupilot代码分析

    记录一下自己对于Ardupilot ADRC控制代码的一些理解 GitHub链接 ADRC Active Disturbance Rejection Control by MichelleRos Pull Request 20243 Ard
  • Phillweston 自动驾驶 决策规划算法 面经

    By Phillweston 注 xff1a 原创链接如下 xff1a 详细 xff01 自动驾驶规划控制算法工程师面经 xff08 具体题目 43 回答思路 xff09 本人引用了此链接中的提问内容 xff0c 并根据自己的想法写了部分回
  • OpenWRT 分流DNS的设置

    文章出处 xff1a OpenWRT 分流DNS的设置 Issue 57 luckyyyyy blog 我自己根据实际需要基于上方的链接内容进行了相关补充 OpenWRT配置IPv6的方法参考如下文章 xff1a OpenWRT IPv6