Files
Hermes-Skills/okx-auto-position/references/mihomo-clash-node-supplier-dns-2026-07-21.md
T
mike b660debd06 v2026-07-21: 实战教训汇总 (push 11 文件)
新增 8 reference:
  - dividend-stability-score: A 股 5 维评分 (派息年数/CAGR/波动/最近/连续) → 0-100 分 + 5 星
  - dividend-yield-rate-sort: 按股息率% 倒序 (用户偏好 2026-07-13)
  - longport-http-module: longport_http.py 公共模块 (替代 SDK WSS)
  - leverage-pass-through-bug: process_signal.py 丢失 leverage 字段 (5x 实际 10x)
  - follow-trading-iron-laws: 跟单铁律 (用户原话 5+ 次 2026-07-21)
  - forced-skill-entry-okx-trade: okx_trade.sh 强制入口 (替代 ccxt 裸调)
  - mihomo-clash-node-supplier-dns: Clash 节点供应商 DNS 失败处理
  - mihomo-ssl-reconnect-pattern: mihomo 反复 SSL/Timeout 模式
  - v4.5.44-mu-add-to-75pct-cap: MU 加仓 75% 单币种 cap 标准流程

改 2 SKILL.md:
  - dividend-investing: 加 5 维评分 + 长桥 http 模块
  - longbridge-cli: 标注 '不要写 openapi.QuoteContext' + 迁移说明
2026-07-22 13:22:45 +08:00

79 lines
3.4 KiB
Markdown

# Clash 节点供应商 DNS 解析失败处理 (2026-07-21 实测)
**问题场景**: mihomo 反复 timeout,但订阅没动,所有节点都连不上。
**根因 (实测)**: 节点供应商的多个域名 DNS 解析**返回乱码**:
```
ns1.accor.co.im → IP: sdaf.rezg.6tie.a.rros.cc. # 不是 IP
ns1.mercure.zone → IP: sdaf.rezg.6tie.a.rros.cc. # 同上,同一 IP
ns1.accor.zone → IP: hhaq.wwcm.bukx.a.vvps.xyz. # 也不是 IP
01-synexvm-hk-std.node-ddns.top → IP: 42.200.173.113 # 真 IP, 但 TCP 也 timeout
```
**两个原因叠加**:
1. **节点供应商的 DDNS 域名过期 / 被 DNS 污染** → DNS 返乱码
2. **mihomo 选 `select` 类型 selector** → 不会自动跳死的节点,会反复 retry timeout
**诊断步骤 (5 秒内)**:
```bash
# 1. 看 mihomo 还在不在
pgrep mihomo
# 2. 看端口监听
ss -tlnp | grep -E ":7890|:9090"
# 3. 看 mihomo 日志最后几行
tail -10 /tmp/mihomo.log
# 4. 测各节点 DNS + TCP 连通
for dom in ns1.accor.co.im ns1.mercure.zone ns1.accor.zone 01-synexvm-hk-std.node-ddns.top; do
ip=$(timeout 5 dig +short $dom 2>&1 | head -1)
echo "$dom → IP: $ip"
# 正常 IP 应该是 x.x.x.x
done
# 5. 测 TCP 连通 (只对有真 IP 的)
timeout 3 bash -c "echo > /dev/tcp/42.200.173.113/443" 2>&1 && echo "OK" || echo "timeout"
# 6. 确认节点供应商死,不是本地网络问题
# → 手工跑一次订阅更新 (重新拉节点列表)
timeout 30 bash ~/clash/update-sub.sh
```
**修复方案**:
### 1. 短期(等供应商修)
- **不要重启 mihomo**(浪费 CPU, 也救不了)
- 换 selector type 从 `select``fallback`(自动跳死的)
- 手动重启 mihomo 看新订阅是否还包含相同节点
### 2. 改 BiXin Network selector 为 fallback(实测有效)
`~/clash/config/config.yaml`:
```yaml
# 改 select → fallback, 排序好的节点放前面
proxy-groups:
- { name: BiXin Network, type: fallback, url: 'http://cp.cloudflare.com/generate_204', interval: 300, proxies: ['🇭🇰 [Lv2] 香港 02', '🇭🇰 [Lv1] 香港 02', '🇭🇰 [Lv2] 香港 01', '🇭🇰 [Lv2] 香港 03', '🇨🇳 [Lv2] 台湾 01', '🇨🇳 [Lv2] 台湾 02', '🇨🇳 [Lv2] 台湾 03', '🇺🇸 [Lv2] 美国 01', '🇺🇸 [Lv2] 美国 02', '🇺🇸 [Lv2] 美国 03', 'Lv2 节点已经全部过时', 请前往官网下载最新版软件, 官网www.bixiny.org] }
```
**关键参数**:
- `type: fallback`(不是 `select` 也不是 `url-test`)—— fallback 按顺序试,死节点自动跳到下一个
- `interval: 300`(5 分钟重测,比 url-test 24h 短)—— 死的能被快速跳过
- 排序: 已知最稳的节点放前(可先用 curl 测一遍每个)
### 3. 长期
- **换订阅源**: bxy.re 节点供应商问题多,换其他
- **自建节点**: 买个 VPS 跑 SS/VLESS/WireGuard(mihomo 内置支持,见 `references/wireguard-outbound-setup.md` 如果有)
- **加多源备份**: config.yaml 加 `proxy-providers:` 多源,某个源挂了自动切
**实战教训 (2026-07-21)**:
- mihomo timeout 第一次出现时,**不应该 restart**,应该先 `dig +short` 查 DNS
- `select` 类型 selector 是反模式,永远用 `fallback``url-test` (短 interval)
- 节点供应商的 4 个域名中 3 个 DNS 失败 — **这是节点供应商的"硬挂"标志**, 换订阅源才是治本
**对 cron 影响**:
- `bdf27f3d76f8` Clash 订阅自动更新 (每 2h) — 拉得到,但节点列表没变(订阅源死)
- 不会自动恢复,需要手动换订阅源