GoForum🌐 V2EX

Windows 使用裸核 Mihomo TUN 作为 FakeIP 透明代理网关的配置与实践

DHCPv6 · 2026-01-06 12:03 · 0 次点赞 · 1 条回复

最近看到 Mihomo Alpha 合并了 FakeIP 规则模式,这是 OP 期待已久的功能,似乎相关文章较少,遂写本贴记录,较早前使用的是 pcap2socks 。

这有什么好处?

  1. 支持 UWP 应用及 WSL2 。
  2. 便携、配置简单,无需使用虚拟机或重启切换 Linux ,可长期开启。
  3. 未修改默认路由,不影响 BT 和完整的 ICMP 特性,可与加速器部分模式共存。
  4. 国内流量 IPv6 直连,其他设备 IPv4 在 ICMP 重定向后直连,不经过代理网关。
  5. 家庭网关可将 DNS 及 FakeIP 路由至 Windows ,不修改 DHCP 网关,减少故障点。
  6. 基于丰富的 GeoX 规则,简化 DNS 策略,只执行必要的查询,减少国外域名请求泄露。
  7. 若发布 FakeIP 路由,配合 ECS 及 DNS 出入站策略,可实现多地共用一套透明代理网关。

存在这些问题?

  1. chrome://flags#local-network-access-check 会将 198.18.0.0/15 判断为本地网络,可改用其他地址,并在家庭网关添加黑洞路由。
  2. 部分国产 ROM 硬编码 DNS 114.114.114.114 ,Windows 不便在转发链 DNAT ,需在 route-address 送至 TUN 劫持。
  3. 开启 strict-route 会添加防火墙规则,nslookup 使用公共 DNS 查询超时,为其加入 route-address 即可。
  4. Windows 没有 fwmark ,开启 IP 转发再设置默认路由可能导致环路,不支持 P2P 游戏的直连 IP 加速。
  5. 开启 IP 转发后应使能 disable-icmp-forwarding ,避免 Ping 环路引起资源占用升高。
  6. 受 Loopback Large MTU 影响,不建议开启 BBRv2 ,会导致 UI 通信异常。
  7. DNS 模块截胡了 Type 65 Response ,不便使用 DNSSEC 及 ECH 。

UDP 相关

  1. 如请求为 UDP ,代理节点未配置 udp: true 时会继续向下匹配,最终从默认开启 UDP 的 DIRECT 出站。这意味着,终端收到 Alt-Svc 升级到 HTTP/3 后请求会在国内直连,若恰巧 IP 没有被墙只是连接质量差,这会给予浏览器虚假的希望,很久或者不 Fallback 到 TCP 造成体验降级。故节点不支持 UDP 时,仍可保留 udp: true 开启,或在 nameserver-policy 屏蔽 DNS 请求,又或在路由规则过滤 UDP ,避免 doesn’t match any rule using DIRECT 。
  2. FakeIP 持久化在重载配置后概率失效,尽管默认的 Sniff 可保证 HTTP 正常分流,但会造成 QUIC 等依赖 FakeIP 映射表的 UDP 流量异常。
  3. 即使域名命中 PROXY 策略且 IP 规则配置了 no-resolve ,UDP 请求仍会触发 DNS 查询,不像 HTTP 送至远端代理服务器解析。
  4. 配置 REJECT 后不会发送 icmp-port-unreachable 。
  5. 碎碎念:要是 DNS 模块保留 HTTPS Answer 的 ALPN 但去掉 IP Hint ,也许能增加 QUIC 使用率。

配置

节 全局

log-level: debug
ipv6: true

profile:
  store-selected: true
  store-fake-ip: true

external-controller: '[::]:9090'
secret: foobar
external-ui: ui
external-ui-url: https://github.com/Zephyruso/zashboard/releases/latest/download/dist.zip

geo-auto-update: false
geodata-mode: true
geox-url:
  geoip: https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip-lite.dat
  geosite: https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat

节 TUN

tun:
  enable: true
  stack: system
  mtu: 1400
  auto-route: true
  strict-route: true
  disable-icmp-forwarding: true
  route-address: # 可添加 Telegram CIDR
    - 198.19.0.0/16
    - 114.114.114.114/32
  route-exclude-address:
    - ::/0

节 DNS

是的,只需一个 DNS Server 或者不指定,DNS 有很多流派,这是简易的。线路质量较好时体验不错,几乎没有 DNS 泄露,可能会费流量。

这接近于纯域名分流,ChinaList 查询 system 即运营商 DNS 并返回 RealIP 直连,返回 RealIP 的域名应在 nameserver-policy 配置 system 解析。其余返回 FakeIP 进一步执行 GeoSite 分流。仅当非直连域名出现 UDP 流量时,才通过 UDP 53 发至对端查询,如节点不支持 UDP ,建议使用 rcode 屏蔽。

dns:
  enable: true
  listen: '[::]:53'
  ipv6: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.19.0.0/16
  fake-ip-filter-mode: rule # 部分域名如同属于多个分组,使用 rule 模式精确分配
  fake-ip-filter: 
    - GEOSITE,google-cn,fake-ip # 代理国行 Google 服务 API 与 AMP CDN
    - GEOSITE,private,real-ip
    - GEOSITE,category-ntp,real-ip
    - GEOSITE,connectivity-check,real-ip
    - GEOSITE,china-list,real-ip
    - MATCH,fake-ip
  nameserver: [system]
  nameserver-policy:
    GEOSITE:private,category-ntp,connectivity-check,china-list: system
    +: 8.8.8.8#代理节点 # 如节点不支持 UDP 改为 rcode://refused 屏蔽

节 路由规则

靠前的规则是可直连的应用及游戏更新域名,无论使用 HTTP 代理或 FakeIP ,命中 DIRECT 出站时会通过 system 的 DNS 查询。

rules:
- DOMAIN-SUFFIX,iosapps.itunes.apple.com,DIRECT
- DOMAIN-SUFFIX,steamserver.net,DIRECT
- GEOSITE,apple-update,DIRECT
- GEOSITE,win-update,DIRECT
- GEOSITE,private,DIRECT

- GEOSITE,geolocation-!cn,代理节点
- GEOSITE,google-cn,代理节点
- GEOSITE,china-list,DIRECT

- GEOIP,private,DIRECT,no-resolve
- GEOIP,cn,DIRECT,no-resolve # 添加 no-resolve 不对未知域名进行 GeoIP 分流,不进行二次解析

- MATCH,代理节点

修改上述配置并添加出站代理,保存为 config.yaml ,使用 sudo .\mihomo-windows-amd64-v3.exe -d . 运行。Mihomo 将从第一个代理节点下载 UI 及 GeoX 文件,完成后便可通过 http://localhost:9090/ui 进入 UI ,也可以注册为服务开机自启。

接下来使用管理员 PowerShell 执行 Set-NetIPInterface -Forwarding Enabled 开启所有网卡的 IP 转发,无需重启,将其他终端 DNS 及网关设置为 Windows 的 IPv4 地址即可。固定场景使用时,可为 Windows 配置静态 IP ,DNS 使用家庭网关代理。若希望通过 DHCP 下发,家庭网关应清空 IPv6 DNS ,或改为 WIndows 的 LLA 或 ULA ,并根据 route-address 的条目配置静态路由至 Windows 。

到这里就结束啦,试试通过 FakeIP 访问 https://browserleaks.com/quic 测试,或多次刷新 https://cloudflare.com/cdn-cgi/trace 查看 HTTP/3 连通性。

杂项

感谢你能看到这里,下面是分流模式的变体,GeoX 分流推荐阅读 Aloxaf 的博文。

ChinaList 模式配合 GeoIP 分流

较常用,对不在 geolocation-!cn 的未知域名使用系统 DNS 查询,如结果为国内 IP 则直连,否则代理出站,对未知域名的判断流程产生泄露风险。

dns:
# ...
  nameserver-policy:
    GEOSITE:private,category-ntp,connectivity-check,china-list: system
    GEOSITE:geolocation-!cn: 8.8.8.8#代理节点

rules:
# ...
- GEOIP,cn,DIRECT
- NETWORK,udp,REJECT # 未知域名是通过 system 查询的,结果可能有污染,或不是代理节点的最优 IP
- MATCH,代理节点

GFWList 模式

侵入小,适合大量未知域名需要 RealIP 国内直连的场景,可替换 geolocation-!cn 为 gfwlist 。

dns:
# ...
  fake-ip-filter:
    - GEOSITE,private,real-ip
    - GEOSITE,category-ntp,real-ip
    - GEOSITE,connectivity-check,real-ip
    - GEOSITE,geolocation-!cn,fake-ip
    - MATCH,real-ip
  nameserver: [system]
  nameserver-policy:
    GEOSITE:private,category-ntp,connectivity-check: system
    GEOSITE:geolocation-!cn: 8.8.8.8#RULES

[1] https://github.com/MetaCubeX/mihomo/pull/2469
[2] https://www.aloxaf.com/2025/04/how_to_use_geosite
[3] https://learn.microsoft.com/zh-cn/answers/questions/4372916/windows11-bbr2-steam-steamwebhelper

1 条回复
mcluyu · 2026-01-06 13:38
#1

fake-ip-filter 支持 rule 模式这就很有用了, fakeip 模式又多了一个优点

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: DHCPv6
发布: 2026-01-06
点赞: 0
回复: 0