Repo Document

OpenClash 配置手册

你可以按下面的顺序阅读:

docs/Openclash_Config.md更新于 2026年4月12日

OpenClash 配置手册

你可以按下面的顺序阅读:

  • 先用最短时间把 OpenClash 配好并直接用起来
  • 再看怎么自己添加“直连”和“代理”规则
  • 最后再了解这两份 YAML 已经内置好的几个常见场景,例如文献库直连、自定义分流、LinkedIn 修复和 GitHub SSH 22

先看结论

现在你只需要在下面 2 份 OpenClash YAML 里选一份:

文件适合谁界面要求
config_linkedin_auto.yaml大多数人保持 fake-ip 思路,关闭“绕过大陆”和 DNS 覆写类选项
config_linkedin_auto_ssh22_redir.yamlGitHub SSH 22 端口握手异常的人使用 Redir/redir-host,关闭 TUN,同时保留 LinkedIn 配置

这两份配置的共同特点是:

  • 支持用户自己在 rules: 里继续加直连或代理规则
  • 已经内置了文献库直连思路,减少下载论文时频繁切换代理
  • 已经处理了 LinkedIn 国际版访问问题
  • 推荐版默认使用自动故障切换,日常不需要频繁手动切节点

如果你只是想正常代理上网,并能稳定打开国际版 LinkedIn,直接用 config_linkedin_auto.yaml

只有在下面这种情况才切到 config_linkedin_auto_ssh22_redir.yaml

ssh -T git@github.com

仍然报 Connection closed by remote hostkex_exchange_identification 之类的 22 端口握手错误。

OpenClash 是什么

如果你是第一次接触 OpenClash,可以先把它理解成:

  • OpenWrt / ImmortalWrt 上常见的代理插件
  • 用来统一管理订阅、节点、DNS、分流规则和策略组
  • 配好之后,你可以直接决定哪些网站直连,哪些网站走代理

对大多数用户来说,OpenClash 最常用的作用就是:

  • 管理机场订阅和节点
  • 让家里设备统一走代理或分流
  • 把常见网站按规则分成直连、代理、指定分组

你不需要一开始就把所有原理都搞清楚。先装好插件、导入 YAML、确认几个界面设置,就已经可以正常使用。

怎么下载和安装 OpenClash

安装前先确认两件事:

  1. 你的系统是 24.10 及更早,还是 25.12 及更新
  2. 你拿到的安装包是否和系统版本、设备架构匹配

常见安装方式有两种。

方式 1:直接从系统里安装

如果你的固件源里已经有 OpenClash,可以直接安装。

24.10 及更早稳定版

opkg update
opkg install luci-app-openclash

25.12 及更新版本

apk update
apk add luci-app-openclash

方式 2:先下载安装包,再手动安装

如果你的系统源里没有 OpenClash,更常见的做法是先下载与你系统匹配的插件安装包,再手动安装。

安装时重点看这几件事:

  • 插件版本是否适配你的 OpenWrt / ImmortalWrt 版本
  • 安装包架构是否和你的设备一致
  • 不要把旧的 opkg/.ipk 安装方法直接套到新的 apk 路线

常见安装命令:

# 24.10 及更早
opkg install /tmp/example.ipk

# 25.12 及更新
apk add --allow-untrusted /tmp/example.apk

安装完成后,通常可以在 LuCI 后台的:

服务 -> OpenClash

看到插件入口。

如果你之前见过旧版的 4 份文件

如果你之前见过旧版的 4 份文件,可以这样理解:

旧文件原来作用现在状态
config.yaml最早的基础模板,曾尝试用 nameserver-policy 修 LinkedIn已废弃,可删除
config_linkedin.yaml在基础模板上改 LinkedIn,但仍偏手动切节点已废弃,可删除
config_linkedin_auto.yaml在 LinkedIn 修复版基础上,把常用分组改成自动故障切换当前推荐
config_linkedin_auto_ssh22_redir.yaml在自动版基础上,额外处理 GitHub SSH 22 端口当前保留

也就是说,现在不用再让用户在 config.yamlconfig_linkedin.yaml 之间纠结了。

先判断你的系统版本

先 SSH 进去执行:

cat /etc/openwrt_release

重点看 DISTRIB_RELEASE

  • 24.10.x23.x、更早稳定版:按 opkg 路线
  • 25.12.x、后续新版本:按 apk 路线

常见命令:

# 24.10 及更早
opkg update
opkg install <package-name>

# 25.12 及更新
apk update
apk add <package-name>

不要把旧教程里的 opkg install 直接照搬到 25.12+

准备 YAML

打开你要使用的配置文件,先把订阅链接改掉:

proxy-providers:
  Airport1:
    url: "这里填写机场订阅"

只改这里即可,其余 LinkedIn 和 DNS 相关内容不要先动。

导入到 OpenClash

导入顺序很简单:

  1. 打开 OpenClash
  2. 进入 配置文件订阅配置文件管理
  3. 上传 YAML,或者把 YAML 放到 OpenClash 配置目录后在界面里选择
  4. 切换到这份配置
  5. 应用配置并启动 OpenClash

真正关键的不在“上传”,而在下面这些界面开关。

导入后先确认这些界面设置

这一步应该先做。目标很简单:先把它用起来,再考虑后面按自己需求加规则。

必须确认的界面设置

  1. 关闭“绕过中国大陆 / 绕过大陆”相关功能。

原因不是这份 YAML 不做大陆直连,而是 OpenClash 界面里的这套功能会在插件层额外接管流量逻辑,可能导致 LinkedIn 还没按 YAML 里的排除规则处理,就先被系统链路改写,最终又跳回 linkedin.cn

  1. 关闭 DNS 覆写相关选项。

至少确认这些是关闭状态:

  • 自定义上游 DNS 服务器
  • 遵循规则(Respect-Rules)
  • 追加上游 DNS
  • 追加默认 DNS
  • 其他会覆盖配置文件 DNS 的选项
  1. 不要把这份配置改成 redir-host

这份 YAML 按 fake-ip 思路写的,LinkedIn 的修复依赖这一套 DNS / fake-ip / rule 组合,不建议再手动改成 redir-host

这份 YAML 实际做了什么

它并不是“特殊为 LinkedIn 单开一套完全不同的代理逻辑”,而是在原本“大陆直连 / 非大陆代理”的分流基础上,额外做了 3 件事:

  1. fake-ip-filter 里排除了 LinkedIn
  2. cn_domain 规则集中排除了 LinkedIn
  3. rules: 里把 linkedin.comlinkedin.cnlicdn.comlnkd.in 单独指定到 🚀 默认代理

所以正常情况下:

  • 大陆站点仍然走直连
  • 其他非大陆站点仍然按原策略走代理
  • LinkedIn 不会被“绕大陆”逻辑错误带回中国站

为什么现在不默认启用 nameserver-policy

当前方案里,nameserver-policy 只是备用兜底,不是必需项。

实测只要:

  • 保留 fake-ip-filter 中这条规则
    geosite:cn:!linkedin.com:!linkedin.cn:!*.linkedin.com:!*.linkedin.cn
  • 关闭“绕过大陆”
  • 关闭 DNS 覆写

就能正常访问国际版 LinkedIn。

而且目前这套配置里,直接使用运营商 DNS 往往比强行指定 1.1.1.18.8.8.8 更快。

到这里就可以安心使用了

如果你只是想先把 OpenClash 配好并正常使用,那么做到前面第 1 到第 3 步就已经够了。

也就是说,到这里你已经可以:

  • 正常导入并启用配置
  • 直接开始代理上网
  • 使用当前 YAML 内置的默认分流能力

后面的内容属于进阶配置。你可以按自己的需求自查:

  • 想自己额外添加直连或代理规则
  • 想理解 Steam、文献库、LinkedIn、SSH 22 这些场景是怎么实现的
  • 想在现有 YAML 基础上继续按自己的使用习惯微调

进阶配置:自己改 rules:

真正值得掌握的,不是“怎么上传 YAML”,而是“以后我想让哪个网站直连,哪个网站走代理,应该加到哪里”。

结论先说:

  • 主要改 rules: 区块
  • 你自己新增的规则,尽量放在前面
  • 通用 RULE-SET 往往放在后面,所以你的自定义规则应该写在它们前面

应该加在哪里

就在 YAML 的 rules: 下面加,优先放在 # Custom 附近,也就是这些通用规则之前:

rules:
  # 先放你自己的规则
  - DOMAIN-SUFFIX,example.edu,DIRECT
  - DOMAIN-SUFFIX,example.com,🚀 默认代理

  # 后面才是通用规则集
  - RULE-SET,private_ip,直连
  - RULE-SET,private_domain,直连

原因很简单:OpenClash 按“从上到下”匹配,前面命中就不会继续往后看。

最常用的格式怎么写

  1. 整站或某个主域名都按同一策略处理

DOMAIN-SUFFIX

- DOMAIN-SUFFIX,example.com,DIRECT
- DOMAIN-SUFFIX,example.com,🚀 默认代理

适合:

  • linkedin.com
  • nature.com
  • steamserver.net
  1. 只匹配一个精确域名

DOMAIN

- DOMAIN,sub.example.com,DIRECT
- DOMAIN,api.example.com,🤖 ChatGPT

适合只想命中某一个子域名,而不想影响整个主域名的场景。

  1. 按 IP 段处理

IP-CIDR

- IP-CIDR,1.2.3.0/24,DIRECT,no-resolve

这类写法一般用于你已经明确知道某段 IP 必须直连或必须代理的情况。

  1. 按端口处理

DST-PORT

- DST-PORT,22,DIRECT

这就是 GitHub SSH 22 修复版里使用的写法。

规则最后一列填什么

最后一列就是“交给哪个策略组”:

  • DIRECT直连:直接连接,不走代理
  • 🚀 默认代理:交给默认代理组
  • 🤖 ChatGPT:交给 ChatGPT 分组
  • 👨🏿‍💻 GitHub:交给 GitHub 分组

如果你只是想让某个网站正常翻墙,通常直接写到 🚀 默认代理 就够了。

给几个最常见的例子

  1. 学校或机构网站直连
- DOMAIN-SUFFIX,example.edu.cn,DIRECT
- DOMAIN-SUFFIX,library.example.edu,DIRECT
  1. 某些 AI 或海外服务强制代理
- DOMAIN-SUFFIX,openai.com,🤖 ChatGPT
- DOMAIN-SUFFIX,anthropic.com,🚀 默认代理
  1. 某个下载站直连,但官网走代理
- DOMAIN-SUFFIX,download.example.com,DIRECT
- DOMAIN-SUFFIX,www.example.com,🚀 默认代理
  1. 只给单一端口直连
- DST-PORT,22,DIRECT

改完后怎么生效

  1. 保存 YAML
  2. 重新上传到 OpenClash,或者替换当前配置文件
  3. 在 OpenClash 里重新应用或重载配置

如果改了规则但没重载,效果通常不会立刻变化。

这两份 YAML 已经内置了哪些常见场景

前面讲的是你以后怎么自己加规则。下面这些是当前 YAML 已经带好的常见用法,按需了解即可。

1. Steam:商店代理,下载直连

这类需求的核心不是“所有 Steam 流量都必须同一种处理方式”,而是不同部分按用途分开:

  • 商店、社区、海外页面可以走代理
  • 下载分发、国内游戏相关资源尽量直连

这样做的好处是:

  • 浏览和访问海外页面更稳定
  • 下载速度通常更合适
  • 不需要频繁手动在“全局代理 / 直连”之间来回切

当前配置里已经内置了这类直连规则,例如:

- GEOSITE,category-games@cn,DIRECT
- DOMAIN-SUFFIX,steamserver.net,DIRECT
- DOMAIN-SUFFIX,cm.steampowered.com,DIRECT

如果你后续还想补更多 Steam 相关规则,就继续按前面 rules: 的写法追加即可。

2. 文献库直连

这里的思路不是“为了省代理流量”,而是让文献站点尽量直接识别你当前校园网、机构网或已有授权网络的出口 IP。

这样做的实际意义是:

  • 打开文献库时更容易被识别为学校或机构网络
  • 下载论文时不需要频繁手动关代理、开代理来回切换
  • 避免出现“首页能打开,但 PDF 下载权限识别不对”的情况

当前配置里已经内置了这些直连示例:

- DOMAIN-SUFFIX,dl.acm.org,DIRECT
- DOMAIN-SUFFIX,ieeexplore.ieee.org,DIRECT
- DOMAIN-SUFFIX,sciencedirect.com,DIRECT
- DOMAIN-SUFFIX,nature.com,DIRECT
- DOMAIN-SUFFIX,science.org,DIRECT

如果你学校还有别的数据库、图书馆站点,也按同样方式往 rules: 里加即可。

3. LinkedIn 国际版访问

LinkedIn 只是这份配置的一个现成场景,不是整篇文档的重点。

它当前的处理方式是:

  • 保留“大陆直连 / 非大陆代理”的主分流思路
  • 但把 LinkedIn 从大陆分流逻辑里单独排除
  • 再通过显式规则让 linkedin.comlinkedin.cnlicdn.comlnkd.in🚀 默认代理

因此只要不乱改 DNS、fake-ip-filtercn_domain 和 LinkedIn 规则,通常就可以稳定访问国际版 LinkedIn。

什么时候用 config_linkedin_auto_ssh22_redir.yaml

只有你明确遇到 GitHub SSH 22 端口问题时,才切到这一份。

典型现象:

ssh -vvT git@github.com

出现:

kex_exchange_identification: Connection closed by remote host
Connection closed by 20.205.x.x port 22

这份 SSH22 配置比默认版多了什么

它在保留 LinkedIn 配置的同时,额外做了两件事:

  • tun.enable: false
  • rules: 前部加入 DST-PORT,22,DIRECT

界面里要怎么配

  1. 配置文件选择 config_linkedin_auto_ssh22_redir.yaml
  2. OpenClash -> 模式设置 中使用 Redirredir-host
  3. 不要开启 TUN
  4. 仍然关闭“绕过中国大陆 / 绕过大陆”
  5. 仍然关闭 DNS 覆写相关选项

如果你没有遇到 SSH 22 问题,继续使用默认推荐的 config_linkedin_auto.yaml 即可。

哪些配置不要乱动

如果你当前 LinkedIn 已经正常,就尽量不要随便改下面这些地方:

  • dns: 整块
  • fake-ip-filter 里的 LinkedIn 排除项
  • cn_domain 的 LinkedIn 过滤
  • rules: 里 LinkedIn 的单独代理规则

这些内容是联动的。只改其中一处,最容易把“又跳到中国站”“又不按预期分流”重新改回来。

常见问题

1. 为什么我还是在手动切节点

先检查两件事:

2. 为什么 LinkedIn 又跳到中国区了

优先看这几项:

  • 有没有把“绕过大陆”重新打开
  • 有没有开启 DNS 覆写
  • 有没有改动 fake-ip-filtercn_domain、LinkedIn 规则

3. 为什么 GitHub SSH 还是不通

确认这 4 项是不是同时满足:

官方参考

图示

  • OpenClash 更新

  • OpenClash 备份