建议:很多配置需要去github拉取,在外网失效的情况下容易内核崩溃。
建议第一次拉取可以。后面最好可以先走缓存?
ai对话结果:
已经帮你恢复了。
我在路由器上看到的状态是:
OpenClash 起初是 running (1/2),只有 watchdog,没有核心进程。
procd 里有 crash loop 记录。
7890/7891/7892/7893/7895/7874/9090 这些代理/DNS/API 端口一开始都没监听。
手动校验配置成功,核心二进制也能正常运行,不是配置 YAML 或 amd64 核心本身坏了。
前台跑核心时看到访问 provider/GitHub 出现 EOF,还有一次 reject loopback connection to github.com:443,像是路由器自身流量代理自举时卡住。
我执行了 /etc/init.d/openclash restart 后恢复:
/etc/init.d/openclash status 现在是 running
核心进程已启动:/etc/openclash/clash -d /etc/openclash -f /etc/openclash/OneSmart.yaml
端口已监听:7890/7891/7892/7893/7895/7874/9090
防火墙 nft OpenClash 规则已加载
路由器上测试:curl -I https://github.com 返回 HTTP/2 200
curl -I -x http://127.0.0.1:7890 https://github.com 返回 HTTP/2 200
curl -I https://raw.githubusercontent.com 返回响应
这次没有改你的配置文件,只做了诊断和重启 OpenClash。后续如果重启路由器后又复现,优先看两个方向:关闭“路由器自身代理”试一下,或者让 provider/rule-provider 不在核心启动瞬间强制拉取远端,避免核心初始化时自己代理自己。
但是这个是不是就会出现这个问题。怎么解决呢? 是不是要修改yaml
是的,这类问题一部分要改 YAML。
我已经改了 /etc/openclash/config/OneSmart.yaml,并先备份到:
/etc/openclash/config/OneSmart.yaml.bak-20260802-1329
改动是:
BaseProvider 从 proxy: DIRECT 改成 proxy: 兜底流量
BehaviorDN 加了 proxy: 兜底流量
BehaviorIP 加了 proxy: 兜底流量
原因是你原来的配置里,订阅和 GitHub 规则集更新很多都是直连拉取。OpenClash/核心刚启动时,如果 GitHub 或订阅站点直连不通,就容易出现 EOF、解析失败、甚至启动阶段卡住。现在改成走已有代理组,启动后更新 provider/rule-provider 会更稳。
我已经验证过:
YAML 校验成功
OpenClash 重启成功,状态是 running
核心进程在
生成后的 /etc/openclash/OneSmart.yaml 已经带上 proxy: 兜底流量
https://github.com 返回 HTTP/2 200
https://raw.githubusercontent.com 也能返回响应
还有一个边界:如果以后你把 /etc/openclash/proxy_provider/ 和 /etc/openclash/rule_provider/ 里的缓存全删掉,第一次冷启动仍然可能没有节点可用来拉订阅。现在这台机器缓存是存在的,所以这个改法是合适的。
13:27
建议:很多配置需要去github拉取,在外网失效的情况下容易内核崩溃。
建议第一次拉取可以。后面最好可以先走缓存?
ai对话结果:
已经帮你恢复了。
我在路由器上看到的状态是:
OpenClash 起初是 running (1/2),只有 watchdog,没有核心进程。
procd 里有 crash loop 记录。
7890/7891/7892/7893/7895/7874/9090 这些代理/DNS/API 端口一开始都没监听。
手动校验配置成功,核心二进制也能正常运行,不是配置 YAML 或 amd64 核心本身坏了。
前台跑核心时看到访问 provider/GitHub 出现 EOF,还有一次 reject loopback connection to github.com:443,像是路由器自身流量代理自举时卡住。
我执行了 /etc/init.d/openclash restart 后恢复:
/etc/init.d/openclash status 现在是 running
核心进程已启动:/etc/openclash/clash -d /etc/openclash -f /etc/openclash/OneSmart.yaml
端口已监听:7890/7891/7892/7893/7895/7874/9090
防火墙 nft OpenClash 规则已加载
路由器上测试:curl -I https://github.com 返回 HTTP/2 200
curl -I -x http://127.0.0.1:7890 https://github.com 返回 HTTP/2 200
curl -I https://raw.githubusercontent.com 返回响应
这次没有改你的配置文件,只做了诊断和重启 OpenClash。后续如果重启路由器后又复现,优先看两个方向:关闭“路由器自身代理”试一下,或者让 provider/rule-provider 不在核心启动瞬间强制拉取远端,避免核心初始化时自己代理自己。
但是这个是不是就会出现这个问题。怎么解决呢? 是不是要修改yaml
是的,这类问题一部分要改 YAML。
我已经改了 /etc/openclash/config/OneSmart.yaml,并先备份到:
/etc/openclash/config/OneSmart.yaml.bak-20260802-1329
改动是:
BaseProvider 从 proxy: DIRECT 改成 proxy: 兜底流量
BehaviorDN 加了 proxy: 兜底流量
BehaviorIP 加了 proxy: 兜底流量
原因是你原来的配置里,订阅和 GitHub 规则集更新很多都是直连拉取。OpenClash/核心刚启动时,如果 GitHub 或订阅站点直连不通,就容易出现 EOF、解析失败、甚至启动阶段卡住。现在改成走已有代理组,启动后更新 provider/rule-provider 会更稳。
我已经验证过:
YAML 校验成功
OpenClash 重启成功,状态是 running
核心进程在
生成后的 /etc/openclash/OneSmart.yaml 已经带上 proxy: 兜底流量
https://github.com 返回 HTTP/2 200
https://raw.githubusercontent.com 也能返回响应
还有一个边界:如果以后你把 /etc/openclash/proxy_provider/ 和 /etc/openclash/rule_provider/ 里的缓存全删掉,第一次冷启动仍然可能没有节点可用来拉订阅。现在这台机器缓存是存在的,所以这个改法是合适的。
13:27