<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[【RouterOS】Ros 使用 docker 创建 PaoPaoDNS-ADHome-mihomo-yacd 使用记录]]></title><description><![CDATA[<p dir="auto">玩 PaoPaoDNS 搭配网关这套组合很长时间了，软路由以前一直是 Hyper-V 里开 4 个虚拟机：RouterOS、dns、adhome（过滤广告）、paopao 网关，整体负载偏高，宿主机还要留性能跑 jellyfin、迅雷、FTP 照片上传这些服务。阴差阳错找到了 X86 版 RouterOS 镜像，把物理网卡直接直通给 Ros 虚拟机后效果显著，能跑满宽带；又试了下 Ros 自带的 docker 服务也能用，就萌生了把 DNS + 去广告 + 网关全塞进 Ros 一台里的念头。</p>
<p dir="auto"><strong>1G 内存同时跑 3 个 docker + 拨号 + DHCP 服务，还剩 300MB 多内存</strong>，电视 smartTV 看油管视频速度也不错，个人非常满意——既节省了硬件性能，也能满足需求。</p>
<p dir="auto">Hyper-V 网卡直通对网络提升非常显著，可以跑满千兆带宽；虚拟网卡只有一半不到的性能，损失严重。<strong>推荐能上直通一定优先考虑直通</strong>，加上 Ros 的网卡驱动简直不要太完美，直接就能用。</p>
<p dir="auto"><img src="https://wlite.cn/assets/uploads/dda-passthrough.png" alt="Hyper-V DDA 网卡直通给 Ros 虚拟机" class=" img-fluid img-markdown" /></p>
<p dir="auto">本次 IP 分配（按自己网络改）：</p>
<ul>
<li><code>192.168.1.5</code> = AdGuardHome（veth2，记录访问日志 + 去广告）</li>
<li><code>192.168.1.6</code> = PaoPaoDNS（veth1，上游递归 + CN 智能分流）</li>
<li><code>192.168.1.3</code> = mihomo-yacd（veth3，上网海淘网关，fake-ip）</li>
</ul>
<p dir="auto">链路：局域网 DNS → AdGuardHome(.5) → PaoPaoDNS(.6)；国外域名经 <code>CUSTOM_FORWARD</code> 转发给 mihomo(.3:53) 走分流，效果和单独搭建虚拟机一样。</p>
<h2>一、X86 Ros 虚拟机安装</h2>
<p dir="auto">Ros 破解版下载地址（无视硬盘SN，随意安装激活）：MikroTikPatch，下载对应 X86 版本的 ISO 文件，虚拟机加载镜像，选择 "a"（全部），然后按 "i" 键进行安装，重启虚拟机后用 winbox 配置。需使用支持 container 功能的 RouterOS 7.x 版本。</p>
<h2>二、开启容器功能（默认关闭）</h2>
<p dir="auto">RouterOS 7 默认关闭容器功能，先开启：</p>
<pre><code>/system/device-mode/update container=yes
</code></pre>
<p dir="auto">5 分钟内断电重启一下（按提示断电或按 reset 键激活），重启完成输入：</p>
<pre><code>/system/device-mode/print
</code></pre>
<p dir="auto">可以看到容器功能已经打开 <code>container: yes</code>：</p>
<p dir="auto"><img src="https://wlite.cn/assets/uploads/ros-container-enable.png" alt="RouterOS 开启容器功能并断电重启激活" class=" img-fluid img-markdown" /></p>
<h2>三、创建 docker 网络与虚拟网卡</h2>
<p dir="auto">每个容器都需要创建 veth 接口，本教程 3 个 docker 容器就创建 3 个虚拟网卡（veth1/veth2/veth3），配置 IP 后把网卡添加到桥接接口里，实现局域网内主机访问。</p>
<p dir="auto">Winbox → Container 里把环境变量提前建好（如变量组名 <code>dns</code>），<strong>所有变量的名称要设置一致</strong>，方便后面创建容器时用 <code>envlist=dns</code> 调用；Ros → Files 中创建目录，在 Container 里设置挂载路径。</p>
<p dir="auto"><img src="https://wlite.cn/assets/uploads/ros-veth-envs.png" alt="三个 veth 虚拟网卡与 PaoPaoDNS 容器环境变量" class=" img-fluid img-markdown" /></p>
<p dir="auto">PaoPaoDNS 环境变量参考（<code>CUSTOM_FORWARD</code> 改成你 mihomo 网关的地址）：</p>
<pre><code>UPDATE=weekly
CNAUTO=yes
CNFALL=yes
EXPIRED_FLUSH=yes
CN_TRACKER=yes
CUSTOM_FORWARD=192.168.1.3:53    # mihomo 网关地址，按自己网络改
AUTO_FORWARD=yes
AUTO_FORWARD_CHECK=yes
USE_MARK_DATA=yes
ADDINFO=yes
SHUFFLE=yes
RULES_TTL=604800
TZ=Asia/Shanghai
</code></pre>
<p dir="auto">先设置仓库地址：<code>https://registry-1.docker.io</code></p>
<blockquote>
<p dir="auto">注意：拉取镜像阶段需要当前网络能访问外网 docker 仓库（可以临时把 Ros 的 DNS 指到现有能出海的网关），等镜像都拉取好、容器跑起来后，就不再依赖之前的网络环境了。</p>
</blockquote>
<h2>四、创建 3 个容器</h2>
<p dir="auto">直接在 Ros 命令行执行（<code>remote-image</code> 拉取云端镜像，<code>logging=yes</code> 启用日志，<code>start-on-boot=yes</code> 开机自启动，<code>comment</code> 设置备注）：</p>
<p dir="auto">PaoPaoDNS：</p>
<pre><code>/container/add remote-image=sliamb/paopaodns:latest interface=veth1 root-dir=docker/paopaodns logging=yes mounts=dns envlist=dns start-on-boot=yes comment=paopaodns
</code></pre>
<p dir="auto">AdGuardHome：</p>
<pre><code>/container/add remote-image=adguard/adguardhome interface=veth2 root-dir=docker/adhome logging=yes start-on-boot=yes comment=adhome
</code></pre>
<p dir="auto">mihomo-yacd（mihomo 内核 + yacd 面板一体镜像）：</p>
<pre><code>/container/add remote-image=yilee01/mihomo-yacd interface=veth3 root-dir=docker/clash logging=yes start-on-boot=yes comment=MH-YCD
</code></pre>
<p dir="auto"><code>root-dir</code> 对应 Ros Files 里的目录（需预先建好）。mihomo-yacd 的配置文件在容器内 <code>root/config/mihomo/config.yaml</code>，即 Ros Files 的 <code>docker/clash/root/config/mihomo/config.yaml</code>，可以直接用 SSH 连 Ros 编辑覆盖。</p>
<h2>五、AdGuardHome 初始化</h2>
<p dir="auto">浏览器打开 veth2 的 IP <code>:3000</code> 进入 AdGuardHome 初始化配置，上游 DNS 填 PaoPaoDNS 的 IP（192.168.1.6），<strong>不需要启用缓存</strong>（PaoPaoDNS 自带缓存负责），DNS 服务端口按容器内默认 53。</p>
<h2>六、mihomo-yacd 配置</h2>
<p dir="auto">SSH 连接到 Ros（密码为 winbox 登录账号密码），把改好的 <code>config.yaml</code> 上传到上面说的挂载目录，直接覆盖。然后访问 mihomo 容器 IP 的 <code>8080</code> 端口（yacd 面板），重载配置和重启内核即刻正常使用：</p>
<p dir="auto"><img src="https://wlite.cn/assets/uploads/mihomo-manage.png" alt="mihomo 管理页：更新 GEO / 重新加载配置 / 重启内核" class=" img-fluid img-markdown" /></p>
<p dir="auto">需要说明的是默认 fake-ip 地址段是 <code>7.0.0.0/8</code>，需要把这个地址段添加静态路由指向 mihomo 容器 IP：</p>
<pre><code>/ip route add dst-address=7.0.0.0/8 gateway=192.168.1.3
</code></pre>
<p dir="auto">我的 MH-config 示例（节点换成你自己的，其余无需修改即可用，默认使用 paopaodns 解析）：</p>
<pre><code class="language-yaml">mixed-port: 7890
allow-lan: true
log-level: info
mode: global
external-controller: 0.0.0.0:9090
# secret: '123456'
ipv6: false
profile:
  store-fake-ip: true
  store-selected: true
dns:
  enable: true
  listen: 0.0.0.0:53
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 7.0.0.0/8
  fake-ip-filter:
  - '*.taobao.com'
  - '*.jd.com'
proxies:
- name: "你的节点"            # 换成你自己的节点
  type: vless               # 按你节点的实际协议填
  server: 你的服务器地址       # 修改为自己的
  port: 你的端口
  uuid: 你的uuid
  network: tcp
  tls: true
  udp: true
  flow: xtls-rprx-vision
  servername: www.yahoo.com  # REALITY servername，换成你自己的
  reality-opts:
    public-key: 你的公钥
    short-id: c75c345e       # optional
  client-fingerprint: chrome # cannot be empty
tun:
  enable: true
  stack: system
  #  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
  - any:53
  - tcp://any:53
</code></pre>
<h2>七、效果</h2>
<p dir="auto">yacd 面板概览，内存占用才 28MB 左右：</p>
<p dir="auto"><img src="https://wlite.cn/assets/uploads/yacd-overview.png" alt="yacd 面板概览：内存占用仅 28MB" class=" img-fluid img-markdown" /></p>
<p dir="auto">至此 Ros 一台就把 DNS 递归分流、广告过滤、上网海淘网关全包了，1G 内存的虚拟机绰绰有余，还省掉了原来 3 台虚拟机的资源开销。</p>
<p dir="auto">参考项目：<a href="https://github.com/kkkgo/PaoPaoDNS" rel="nofollow ugc">PaoPaoDNS (github.com/kkkgo)</a> · <a href="https://github.com/kkkgo/PaoPaoGateWay" rel="nofollow ugc">PaoPaoGateWay (github.com/kkkgo)</a> · mihomo-yacd 镜像 <a href="https://hub.docker.com/r/yilee01/mihomo-yacd" rel="nofollow ugc">yilee01/mihomo-yacd (Docker Hub)</a></p>
]]></description><link>https://wlite.cn/topic/467/routeros-ros-使用-docker-创建-paopaodns-adhome-mihomo-yacd-使用记录</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 03:59:31 GMT</lastBuildDate><atom:link href="https://wlite.cn/topic/467.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Sep 2026 13:29:04 GMT</pubDate><ttl>60</ttl></channel></rss>