Linux上快速部署使用mosdns,每日打包更新分流数据。
-
脚本 功能包括:
- 自动化全新安装 IrineSistiana大神的mosdns,安装后无需其他配置即可满足基础使用需求
- 理论适用于 amd64/arm64 架构下的 'Ubuntu', 'Debian', 'RedHat', 'CentOS', 'Fedora', 'Alpine' 等使用 'apt', 'yum', 'apk'包管理器的Linux发行版,amd64架构下'Ubuntu 24.04''CentOS 9 stream''Alpine 3.21'已不充分测试、可用
- 默认端口: 5353
- 升级mosdns程序
- 升级规则数据Releases
- 卸载程序及所有数据(配置文件、规则数据、日志、备份)
- 服务相关基础功能(start|stop|restart|status)
- 自动化全新安装 IrineSistiana大神的mosdns,安装后无需其他配置即可满足基础使用需求
-
配置文件是一个即用的配置,常用功能和规则已设置,详见下方 [配置说明](### 配置说明)
-
Releases
mosdns-rule.tar.gz
包含配置文件所需的规则文件**tree**,其中的GEOIP
(IP分流数据)、GEOSITE
(域名数据),每日从上游拉取,每日自动更新,详见Actions
。 -
GitHub Actions 构建docker镜像等功能 镜像地址
! 以下命令都需要 root 用户或 sudo 执行
curl -sSL https://raw.githubusercontent.com/caleee/mosdns/refs/heads/main/usr/local/bin/mosdns.sh -O && sh mosdns.sh
国内可选:
curl -sSL https://testingcf.jsdelivr.net/gh/caleee/mosdns@main/usr/local/bin/mosdns.sh -O && sh mosdns.sh
升级 mosdns 主程序
- 与
快速开始
命令相同,脚本会自行判断是否需要升级
curl -sSL https://raw.githubusercontent.com/caleee/mosdns/refs/heads/main/usr/local/bin/mosdns.sh -O && sh mosdns.sh update-rules
国内可选:
curl -sSL https://testingcf.jsdelivr.net/gh/caleee/mosdns@main/usr/local/bin/mosdns.sh -O && sh mosdns.sh update-rules
curl -sSL https://raw.githubusercontent.com/caleee/mosdns/refs/heads/main/usr/local/bin/mosdns.sh -o /usr/local/bin/mosdns.sh && chmod +x /usr/local/bin/mosdns.sh
国内可选:
curl -sSL https://testingcf.jsdelivr.net/gh/caleee/mosdns@main/usr/local/bin/mosdns.sh -o /usr/local/bin/mosdns.sh && chmod +x /usr/local/bin/mosdns.sh
# 编辑计划任务
crontab -e
# 文件下方添加以下内容后保存退出 (每天系统时区3:00执行规则数据更新)
0 3 * * * /bin/sh /usr/local/bin/mosdns.sh update-rules
一键设置计划任务(慎用)
echo "$(crontab -l ; echo -e "\n# mosdns rules update\n0 3 * * * /bin/sh /usr/local/mosdns.sh update-rules")" | crontab - &
& crontab -l
curl -sSL https://raw.githubusercontent.com/caleee/mosdns/refs/heads/main/usr/local/bin/mosdns.sh -O && sh mosdns.sh uninstall
国内可选:
curl -sSL https://testingcf.jsdelivr.net/gh/caleee/mosdns@main/usr/local/bin/mosdns.sh -O && sh mosdns.sh uninstall
build - Dockerfile
docker pull caleee/mosdns:latest
这里给出使用示例,仅供参考,不保证可用,请自行研究
docker command
docker run -d \
--name mosdns \
--restart always \
-p 5353:53/udp \
-p 5353:53/tcp \
-v /etc/mosdns:/etc/mosdns \
caleee/mosdns:latest
docker-compose.yml
services:
mosdns:
container_name: mosdns
image: caleee/mosdns:latest
restart: always
ports:
- "5353:53/udp"
- "5353:53/tcp"
volumes:
- /etc/mosdns:/etc/mosdns
version: '3.8'
k8s/k3s (修改ip端口等)
apiVersion: v1
kind: Namespace
metadata:
name: dns
---
apiVersion: v1
kind: Service
metadata:
namespace: dns
name: mosdns
spec:
type: NodePort
clusterIP: 10.43.43.43
ports:
- name: dns-tcp
protocol: TCP
port: 53
targetPort: 53
nodePort: 30054
- name: dns-udp
protocol: UDP
port: 53
targetPort: 53
nodePort: 30054
- name: api
protocol: TCP
port: 9091
targetPort: 9091
nodePort: 30091
selector:
app: mosdns
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: dns
name: mosdns
spec:
replicas: 1
selector:
matchLabels:
app: mosdns
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: mosdns
spec:
containers:
- image: caleee/mosdns:latest
name: mosdns
ports:
- containerPort: 53
name: dns-tcp
protocol: TCP
- containerPort: 53
name: dns-udp
protocol: UDP
- containerPort: 9091
name: api
protocol: TCP
volumeMounts:
- mountPath: /etc/mosdns
name: mosdns-dir
restartPolicy: Always
volumes:
- name: mosdns-dir
hostPath:
path: /opt/mosdns
type: DirectoryOrCreate
- API:关闭
- 缓存相关功能:关闭
- 去广告功能:关闭
- Cloudflare 自选 IP:关闭
- 日志:开启(info)
- apple相关域名国内解析(alidns)
- 防泄漏(fallback: 远程DNS服务器)
- 启用 EDNS 客户端子网
- TCP/DoT 连接复用
- DNS 服务器并发请求数:2
- DNS 缓存大小:55462条
- 乐观缓存 TTL:
- 开启
- 无访问的过期时间:21600秒 (要禁用乐观缓存,则此项设置为 0)
- 自动保存缓存(避免cache因为系统或进程复位丢失,保存路径:/etc/mosdns/cache.dump)
- 开启
- 自动保存缓存间隔:3600秒
- 覆盖 TTL 值:600-86400(秒)