先导入为草稿,不直接改变运行网关

在“来源”页添加 HTTPS 订阅或本地 mihomo YAML,并点击“导入为草稿”。结构校验通过后,才能设为下次启动版本或应用到运行中的网关。刷新只会创建另一份草稿,不会静默替换 applied 版本。

OpenSurge 管理的快照带有摘要、历史和应用状态,不要原地编辑。需要修改时使用“导出副本”,编辑 exports 目录下权限为 0600 的独立 YAML,再把该文件作为新的本地草稿导入。

OpenSurge 来源工作流安装包中导入、导出、刷新与应用来源的完整步骤。

明确 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。

合并进真实 profile 的最小 imported section 示例yaml
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"
mihomo profile overlay 参考精确列出 imported section、网关自有字段、规则顺序与验证门槛。

事务化应用,再观察真实路径

网关停止时,选择来源只更新下次启动的 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 或最终出口。