先导入为草稿,不直接改变运行网关
在“来源”页添加 HTTPS 订阅或本地 mihomo YAML,并点击“导入为草稿”。结构校验通过后,才能设为下次启动版本或应用到运行中的网关。刷新只会创建另一份草稿,不会静默替换 applied 版本。
OpenSurge 管理的快照带有摘要、历史和应用状态,不要原地编辑。需要修改时使用“导出副本”,编辑 exports 目录下权限为 0600 的独立 YAML,再把该文件作为新的本地草稿导入。
明确 imported profile 提供哪些内容
Imported profile 会提供 proxies、proxy-providers、proxy-groups、rule-providers 与 rules。OpenSurge 以 YAML node 解析这些 section,兼容 block 与 flow collection,并保留规则顺序——包括终止 MATCH 之后不能再有规则的要求。
Profile 的 DNS section 会按字段合并。nameserver、nameserver-policy、proxy-server-nameserver、direct-nameserver、fake-ip-filter 和 fallback 等解析器 / 过滤策略可以保留,因为代理节点域名可能依赖它们。
明确 OpenSurge 继续拥有的字段
OpenSurge 负责渲染 mixed-port、LAN binding、allow-lan、external-controller、Selector 与 fake-IP 持久化、DNS enable/listen/fake-IP range、TUN 路由、LAN 排除项和 runtime 路径。Imported 值不能关闭网关 listener、替换 controller 或重新开启不支持的透明代理路径。
因此应把桌面 profile 适配成 imported 来源,而不是覆盖生成的 runtime/mihomo.yaml。生成文件是 applied artifact,不是可编辑的 source of truth。
proxies:
- name: "LAN-SOCKS"
type: socks5
server: 192.168.1.23
port: 1080
udp: true
proxy-groups:
- name: "Gateway"
type: select
proxies:
- "LAN-SOCKS"
- DIRECT
rules:
- DOMAIN-SUFFIX,example.com,Gateway
- MATCH,DIRECT
dns:
nameserver:
- https://1.1.1.1/dns-query
fake-ip-filter:
- "*.lan"事务化应用,再观察真实路径
网关停止时,选择来源只更新下次启动的 desired state;网关运行时,“应用并重载”会先验证组合后的完整配置,再受控重载网关。预校验失败不会改变当前 runtime;只有新 runtime 成功启动后,OpenSurge 才会记录新的 imported-profile digest。
应用后查看“策略”和 Provider,按需切换已经 applied 的 Selector,再产生新流量。节点健康与 YAML 校验属于控制面证据;还要通过连接、命中规则与观察到的最终出口证明预期业务路径。
FAQ
改变网络前常见的问题
可以用完整桌面 mihomo 配置直接覆盖 runtime 文件吗?
不可以。应通过“来源”导入;runtime 文件由系统生成,OpenSurge 必须保留 LAN、DNS、TUN、controller 和恢复相关字段的归属。
OpenSurge 会保留原有策略组与规则吗?
会,只要结构有效、规则顺序正确且没有占用 OpenSurge 保留命名空间;本机与设备 overlay 会围绕 imported section 组合。
导入成功是否证明远端代理可用?
不能。导入成功只证明来源可以组合;仍要检测节点、产生新的真实业务连接,并分别查看命中规则、实际 outbound 或最终出口。
