机场中转自建落地排障(Nikki/Mihomo)

记录 2026-07 一轮 Nikki/Mihomo「机场 IEPL 中转 + 自建落地」排障:直连被路径干扰、测速与真用分离、节点同名冲突、REALITY 失效、Sub-Store 分池管理与命名规范。

#type / debug #status / evergreen #tech / network #tech / ops

[!info] related notes

机场中转自建落地排障(Nikki/Mihomo)

一句话结论

[!abstract] 核心结论 真用通但面板测速怪、直连挂但中转应通,多半不是「内核不支持 dialer-proxy」,而是:路径层(GFW/运营商)+ 同名节点覆盖 + 测速对象不是带 dialer 的那份配置 + 服务端 REALITY 实际失效 叠在一起。Sub-Store 应用「直连分机 / 落地分机 / 集合合并」管理,且 落地名必须带 -land 且全局唯一


现象

发生在 ImmortalWrt + Nikki(Mihomo 内核) + Sub-Store 管理订阅的场景。

现象表现
韩国自建直连家宽(移动)上几乎不可用;面板有时有延迟,真用失败
机场 IEPL 中转 + 韩国落地真实代理可以上网(策略组正确选中后)
面板测速落地节点延迟不准:像在测直连,未体现中转
日本落地 SS + 中转可通
日本落地 VLESS + 中转长期不通;直连也不通
日志误读大量 Googledial tcp 172.217... timeout,易被当成落地失败

[!warning] 日志噪声 若当前策略组故意选了 DIRECT,Google/YouTube 直连超时是预期现象,不能用来否定中转落地链路。


原因(分层)

1. 路径层:家宽直连部分云厂商 IP 不可达

对自建韩国 Azure 出口实测(对照):

路径结果
家宽 → 韩国 IP 的 TCP 业务易出现「本机 connect 成功、服务端无日志」类干扰
家宽 → 韩国 VLESS/SS 直连失败或 REALITY 校验失败
境外机 / 机场 IEPL → 韩国正常
IEPL dialer → 韩国落地(sing-box detour / Mihomo dialer-proxy正常,出口为韩国机公网 IP

含义:

  • 问题首先是 「到不了落地 IP」,不是账号密码随机坏了。
  • 中转的价值是把第一跳换成机场优化线路,再由境外去拨自建落地。

2. 配置层:dialer-proxy 只写在落地节点

flowchart LR
  Client[Nikki 客户端] --> Dialer[机场 IEPL 节点]
  Dialer --> Land[自建落地 server:port]
  Land --> Internet[目标站点]
  • 只在落地节点dialer-proxy: 🚀 IEPL-某区域-Final
  • 机场节点 不要写 dialer
  • dialer-proxy 的字符串必须与 proxy-groups 里组名 完全一致(含 emoji、空格)

3. 客户端层:同名节点导致测速打到「直连版」

错误示例正确示例
直连Azure-Korea-VLESS-Vision-Reality保持 -dd / 无 land 后缀
落地同名再写一份Azure-Korea-VLESS-Vision-Reality-land

Mihomo 中 proxy 名全局唯一。直连 sub 与落地 sub 同名时:

  • 后加载覆盖先加载
  • 面板 delay 可能测的是 无 dialer 的直连定义
  • 策略组若引用到带 dialer 的定义,真用仍可能通

→ 典型症状:测速像直连失败,真用中转成功(日本因命名带 -land 曾避开此坑;韩国曾踩坑)。

4. 服务端层:日本 VLESS Reality 实际失效

对照结果:

检查结果
SS :3451
VLESS :6721 TCP端口开着
公私钥数学匹配仍可能 REALITY: processed invalid connection
本机 loopback VLESS同样失败 → 不是家宽/中转独有
重生 Reality 密钥 + 握手改为 updates.cdn-apple.comloopback 与中转均恢复

教训:端口在听 + 密钥「看起来对」≠ Reality 可用;本机 loopback 自测是最快判别。

5. 管理面:Sub-Store 结构不清晰会放大上述问题

旧形态问题:

  • 落地参数手抄第二份,与直连漂移
  • 落地 URL 缺 ?target=ClashMeta 时丢掉 dialer-proxy
  • oracle(大阪)落地 dialer 误指 美国 Final
  • 多条分发路径(admin API / Gist artifact)内容漂移

排查过程(可复用顺序)

  1. 分清测速 vs 真用

    • 测速:节点 delay API
    • 真用:策略组 now + 访问 cdn-cgi/trace 看出站 IP
  2. 证明路径

    • 境外/中转能否拨到落地 IP
    • 家宽直连是否服务端无日志
  3. 证明 dialer 机制

    • 用 Mihomo 最小配置:dialer-proxy → 单条 IEPL + 落地
    • 或 sing-box 等价:detour
    • 成功则出口应为落地机公网 IP
  4. 查同名

    • 直连集合与落地集合是否共享 name
  5. 查服务端

    • SS/VLESS 分别测
    • Reality:本机 127.0.x.x:port 回环
  6. 查 Sub-Store 下载

    • 落地必须 target=ClashMeta(或等价)保留 dialer
    • 主配置 land-nodes URL 是否指向 collection

解决方案

A. 客户端拓扑(保持)

机场 IEPL(中转,无 dialer)
    ↑ dialer-proxy
自建落地(SS / VLESS-Vision-Reality,有 dialer)

B. 命名契约

{云}-{区域}-{标识}-{协议}[-特性]-{角色}

角色:
  -dd    直连
  -land  落地(中转拨入)

示例:

  • Azure-Korea-llh-SS-dd / Azure-Korea-llh-SS-land
  • oracle-osaka-SS-land(大阪节点,日本 IEPL 中转,不要美国 Final)

C. Sub-Store 推荐结构(已按此演进)

subs/
  Azure-Korea-llh          # 直连真相
  Azure-Korea-llh-land     # 由直连生成:改名 + dialer
  Azure-Japan-hhc
  Azure-Japan-hhc-land
  oracle-osaka
  oracle-osaka-land        # dialer = 🚀 IEPL-日本-Final

collections/
  all-self-node-for-collect-directly
  all-self-node-for-land     # 合并各 *-land

file: all-nodes-all-ways
  proxy-providers:
    direct-collect → collection/all-self-node-for-collect-directly
    land-nodes     → collection/all-self-node-for-land?target=ClashMeta
    airport-...    → 机场订阅(路由器 DIRECT 拉取)

原则:

  1. 参数只改直连 sub
  2. 落地 = clone(直连) + -land + dialer-proxy
  3. Nikki 单一主订阅api/file/all-nodes-all-ways
  4. 避免与过期 Gist artifact 混用

D. 服务端修复要点

  • 韩国:直连被扰时依赖中转;协议本身可保留 Vision+Reality
  • 日本 VLESS:密钥/SNI 异常时 重生 Reality 密钥,并同步 Sub-Store 直连 + 落地
  • Azure NSG:额外端口必须放行后再做到达性实验

E. 面板与策略

  • 默认代理优先:机场中转 → 自有落地
  • store-selected 会记住 DIRECT:改结构后强制重选
  • 同名修复后,测速应对准 *-land,直连应对准 *-dd

回归验证

检查期望
落地订阅含 dialer-proxyClashMeta 下载可见
无跨 sub 同名直连/落地 name 不重复
韩国 *-land 真用cdn-cgi/trace 出口为韩国机 IP
日本 SS-land 真用出口为日本机 IP
日本 VLESS-land(修复后)中转或境外可达时成功
家宽直连韩国仍可能失败(路径问题,预期)
测速*-land 有延迟;勿与 *-dd 混淆

经验清单

  1. 先证路径,再疑协议
  2. dialer 只写落地;组名精确匹配
  3. 落地与直连禁止同名
  4. 测速对象 ≠ 策略组当前选中 时不要用日志误判
  5. REALITY 用本机 loopback 一票否决
  6. Sub-Store:直连真相 / 落地派生 / 集合合并 / 单一主配置
  7. 区域中转要对齐地理:大阪节点用日本 IEPL,不要误绑美国 Final

创建于 2026/7/25 更新于 2026/7/25