跳转至

BASELINE:openwrt_bypass 稳定层

只放不常变的内容:环境事实、机制陷阱、命令速查、文档地图。 当前状态与待办见 docs/HANDOFF.md;变更过程见 docs/SOP*.md。

1. 环境事实

项 值
宿主 dell-R620(Ubuntu,管理地址 192.168.31.249,eno2 = .250 独立兜底入口)
旁路由 OpenWrt 24.10 KVM 虚拟机,192.168.31.2,网关 192.168.31.1,不提供 DHCP
登录 ssh root@192.168.31.2(仅密钥,密码认证已关闭)
代理 OpenClash 0.47.156 + Mihomo v1.19.31(compatible 版,适配 Sandy Bridge 无 AVX2)
端口 mixed 7893、HTTP 7890、socks 7891、API 9090(面板 /ui)
API 密钥 uci -q get openclash.config.dashboard_password(不入文档)
代理认证 运行时 yaml 的 authentication(当前形如 <用户>:<口令>)
在跑配置 机场 fsc,uci get openclash.config.config_path = /etc/openclash/config/fsc.yaml;运行时 /etc/openclash/fsc.yaml
订阅更新 每天 04:00(cron openclash.sh),GeoIP 每周一 05:00,chnroute 每周一 00:00
选优定时 每 5 分钟 speed_select.rb(#speed_select),日志 /root/speed_select.log
工具 ruby 3.3.10、curl 有;无 python3 / jq;ruby 的 json、net/http 被拆包不可用

2. 机制性陷阱

陷阱 说明
mihomo url-test 不含带宽 只测首包延迟,不读 body —— 对 10MB 端点 delay 也仅 0.65 s。带宽必须自建实测
url-test 组无法动态增删成员 成员只能来自配置;要"排除某节点"须走覆写脚本 + 完整重启
TProxy 不劫持 22 端口 本 Clash 只接管 80/443 等端口;Harbor 到香港跳板的 ssh 隧道(22)直连,不经 Clash —— 排障时别看错方向
url-test 会挑到低带宽节点 它按延迟选优,而延迟最低 ≠ 带宽最好(实测日本-HY2-47 延迟 161ms 但仅 714 KB/s)。主链路必须固定到具体节点,不能指向 url-test 组
select 组的选中项被持久化 存在 cache 里,改成员顺序不会改选中项,须用 API PUT /proxies/<组> 显式设置一次
透明代理路径走本机即直连 订阅自带 SRC-IP-CIDR,192.168.31.2/32,DIRECT(防回环);用显式端口(源 127.0.0.1)或从其它设备测才走代理
OpenClash「快速启动」跳过重建 改 custom/ 配置后不 touch /etc/config/openclash,改动静默不生效
openclash stop 会置 enable=0 之后 restart 会被拒(OpenClash Now Disabled, Need Start From Luci Page)
JSON 可用 YAML 解析 JSON 是 YAML 子集,OpenWrt 上 YAML.load(json_str) 可替代缺失的 json 库
auto_smart_switch 不可用 会改成 type: smart,标准内核 fatal
广告/信息占位节点 机场在订阅里塞 server: 0.0.0.0 或"剩余流量/套餐到期"类节点,被 url-test 选中会全断;由 clean_nodes.rb 每次启动剔除

3. 命令速查

# --- 服务 ---
/etc/init.d/openclash status
touch /etc/config/openclash && /etc/init.d/openclash stop && sleep 3 && \
  uci set openclash.config.enable=1 && uci commit openclash && /etc/init.d/openclash start

# --- 组与节点(在 OpenWrt 上执行)---
S=$(uci -q get openclash.config.dashboard_password)
curl -s -H "Authorization: Bearer $S" http://127.0.0.1:9090/proxies | \
  ruby -ryaml -e 'd=YAML.load(STDIN.read)["proxies"]; %w[便宜机场 优选 测速 自动选择].each{|k| v=d[k]; puts "#{k}: #{v["type"]} now=#{v["now"]} (#{v["all"].size})"}'

# --- 出口与带宽(在宿主执行)---
curl -s -m 20 -x "http://<认证>@192.168.31.2:7893" https://chatgpt.com/cdn-cgi/trace | grep -E '^(ip|loc|colo)='
curl -s -m 45 -x "http://<认证>@192.168.31.2:7893" -o /dev/null -w 'speed=%{speed_download}\n' \
  'https://speed.cloudflare.com/__down?bytes=5242880'

# --- 选优脚本 ---
ruby /etc/openclash/custom/speed_select.rb --dry-run     # 预览,不切主组
ruby /etc/openclash/custom/speed_select.rb --force       # 强制完整测速并切换
tail -20 /root/speed_select.log

# --- 订阅更新 ---
crontab -l | grep openclash

4. 文档地图

文档 用途
docs/HANDOFF.md 当前状态与待办(SessionStart 注入)
docs/BASELINE.md 本文件:稳定环境事实与速查
docs/SOP.md 旁路由底座改造(宿主网络 + OpenWrt VM)
docs/SOP-openclash.md OpenClash 订阅与选优配置历次变更(第 13 章 = 2026-10-01 带宽门槛选优)
recovery-plan.md 断线恢复预案
frp_openvpn_tunnel/ 独立的 FRP/OpenVPN 隧道工程(另有自己的 docs/SOP.md)

来源:/home/rain/Documents/kvm/openwrt_bypass/docs/BASELINE.md | 最后更新:2026-10-01 13:17(由 build/sync.py 同步,请勿在站点侧修改)