04.OxiDNS搭建

清夏晚风 Lv7

简介

用 Rust 重写的高性能 DNS 服务,灵感来自 MosDNS,为复杂策略、加密上游和系统联动而设计。

快速开始

Docker Compose

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
services:
oxidns:
image: svenshi/oxidns:latest
container_name: oxidns
restart: unless-stopped
ports:
- "53:53/udp"
- "53:53/tcp"
- "443:443/udp"
- "443:443/tcp"
- "853:853/udp"
- "853:853/tcp"
- "9199:9199/tcp"
volumes:
- ./config.yaml:/etc/oxidns/config.yaml
- ./webui:/etc/oxidns/webui
- ./ruler:/etc/oxidns/ruler
- ./cert:/etc/oxidns/cert

启动:

1
docker-compose up -d

WebUI

  1. 需要自行构建前端,前端代码在仓库源码的 webui 目录下,构建后输出在 /webui/out 目录。

  2. 将out目录挂载到容器的 /etc/oxidns/webui 目录下。

  3. config.yaml 中配置 WebUI 登录密码。

1
2
3
4
5
6
7
8
9
10
api:
http:
listen: 0.0.0.0:9199
auth:
type: basic
username: admin
password: passwd
webui:
root: /etc/oxidns/webui
index: index.html
  1. 访问:http://localhost:9199 输入用户名和密码即可登录。

插件配置

config.yaml 中配置插件,参考官方文档的示例场景。(https://oxidns.org/scenarios)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
plugins:
- tag: metrics_main
type: metrics_collector
args:
name: home
- tag: local_hosts
type: hosts
args:
entries:
- full:router.lan 192.168.1.1
- full:nas.lan 192.168.1.20
- domain:svc.lan 192.168.10.10
short_circuit: true
- tag: ad_rules
type: adguard_rule
args:
files:
- /etc/oxidns/ruler/anti-adguard.txt
- tag: blocked
type: sequence
args:
- exec: "black_hole 0.0.0.0 ::"
- exec: accept
- tag: cache_main
type: cache
args:
size: 8192
short_circuit: true
cache_negative: true
- tag: forward_main
type: forward
args:
upstreams:
- tag: 18bit_dot
addr: tls://dns.18bit.cn:853
insecure_skip_verify: false
enable_http3: false
- tag: Ali_dot
addr: tls://dns.alidns.com:853
insecure_skip_verify: false
enable_http3: false
- tag: TX_dot
addr: tls://dot.pub:853
insecure_skip_verify: false
enable_http3: false
- tag: cloudflare_dot
addr: tls://1dot1dot1dot1.cloudflare-dns.com:853
insecure_skip_verify: false
enable_http3: false
short_circuit: false
- tag: seq_main
type: sequence
args:
- exec: $metrics_main
- exec: $local_hosts
- matches: question $ad_rules
exec: goto blocked
- exec: $cache_main
- matches: "!has_resp"
exec: $forward_main
- tag: udp_lan
type: udp_server
args:
entry: seq_main
listen: :53
- tag: tcp_lan
type: tcp_server
args:
entry: seq_main
listen: :853
cert: /etc/oxidns/cert/fullchain.pem
key: /etc/oxidns/cert/privkey.pem
- tag: dns_on_https
type: http_server
args:
entries:
- path: /dns-query
exec: seq_main
listen: :443
cert: /etc/oxidns/cert/fullchain.pem
key: /etc/oxidns/cert/privkey.pem
enable_http3: false
- tag: ad_rules_download
type: download
args:
downloads:
- url: https://anti-ad.net/adguard.txt
dir: /etc/oxidns/ruler/
filename: anti-adguard.txt
startup_if_missing: true
log:
level: info
rotation:
type: daily
  • Title: 04.OxiDNS搭建
  • Author: 清夏晚风
  • Created at : 2026-06-01 16:28:29
  • Updated at : 2026-07-19 01:57:11
  • Link: https://blog.yuil.cn/2026/06/01/网络公共服务/DNS/OXIDNS/04.OxiDNS搭建/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments