您当前的位置:首页 > 计算机 > 软件应用 > 设备助手

OpenWRT安装MOSDNS实现智能DNS解析 | 附配置详解

时间:03-17来源:作者:点击数:

工具简介

MOSDNS 是一款轻量级DNS转发/分流工具,支持DoH/DoT、域名规则分流、缓存加速等,适合在OpenWRT路由器上实现国内外域名解析优化。


一、安装MOSDNS适用环境:OpenWRT 21.02+(x86/ARM架构均支持)

1. 下载对应架构的IPK文件

访问MOSDNS GitHub Releases页面:

https://github.com/kkkgo/mosdns/releases

根据路由器CPU架构选择对应版本(常见架构):

  • x86_64:mosdns_xx.x.x_linux_amd64.ipk
  • aarch64:mosdns_xx.x.x_linux_arm64.ipk

2. 上传IPK文件至路由器

使用WinSCP或SSH工具将IPK文件上传至/tmp目录:

scp mosdns_xx.x.x_linux_amd64.ipk root@192.168.1.1:/tmp/

3. SSH安装

登录路由器SSH,执行以下命令:

opkg update
opkg install /tmp/mosdns_xx.x.x_linux_amd64.ipk

二、基础配置

1. 创建配置文件

编辑配置文件/etc/mosdns/config.yaml:

# 基础监听设置
listen:
  - protocol: udp
    addr: ":5353"  # 监听端口(避免与Dnsmasq冲突)
  - protocol: tcp
    addr: ":5353"
 
# 上游DNS服务器
upstream:
  - tag: local_dns
    addr: "udp://223.5.5.5"  # 国内DNS
  - tag: foreign_dns
    addr: "tcp://8.8.8.8"    # 国外DNS
 
# 缓存设置
cache:
  size: 2000
  lazy_cache_ttl: 86400
 
# 域名分流规则
rules:
  - type: query_matcher
    args:
      - type: geosite
        keyword: cn
    server: local_dns
  - server: foreign_dns

2. 设置开机启动

创建Init脚本/etc/init.d/mosdns:

#!/bin/sh /etc/rc.common
 
START=99
USE_PROCD=1
 
start_service() {
    procd_open_instance
    procd_set_param command /usr/bin/mosdns -c /etc/mosdns/config.yaml
    procd_set_param respawn
    procd_close_instance
}

赋予执行权限:

chmod +x /etc/init.d/mosdns
/etc/init.d/mosdns enable
/etc/init.d/mosdns start

三、OpenWRT联动设置

1. 修改Dnsmasq配置

编辑/etc/dnsmasq.conf,指向MOSDNS:

no-resolvserver=127.0.0.1#5353  # 使用MOSDNS作为上游

2. 重启服务

/etc/init.d/dnsmasq restart
/etc/init.d/mosdns restart

四、验证与使用

1. 检查服务状态

netstat -tuln | grep 5353  # 确认端口监听
logread | grep mosdns      # 查看日志

2. 测试解析

nslookup google.com 127.0.0.1 -port=5353

常见问题

  • 端口冲突:若Dnsmasq已占用53端口,需确保MOSDNS监听其他端口(如5353)。
  • 规则不生效:检查geosite:cn数据集是否缺失,可从 v2fly/domain-list-community 下载。
  • 性能优化:根据内存调整cache.size值,避免占用过高。

相关资源

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐