OpenClash 配置手册
本文适用于基础网络已经正常的环境。开始配置前,应确认关闭 OpenClash 时路由器和客户端均可访问互联网;否则先完成快速安装指南中的网络验证。
验收结果:OpenClash 正常运行;直连和代理网站均可访问;关闭 OpenClash 后基础网络仍然正常。
建议按以下顺序阅读:
- 选择并导入适用的 YAML 模板
- 配置 OpenClash 界面选项
- 根据需要添加直连或代理规则
- 查阅文献库、LinkedIn 和 GitHub SSH
22等场景说明
选择配置模板
本仓库提供以下 3 份 OpenClash YAML:
| 文件 | 适合谁 | 界面要求 |
|---|---|---|
| config_linkedin_auto.yaml | 单订阅用户 | 使用 fake-ip 模式,关闭绕过大陆和 DNS 覆写类选项 |
| config_multi-airport_linkedin.yaml | 有两个订阅、需要跨订阅故障切换的人 | 分别填写两个订阅;先确认每个订阅都能单独更新 |
| config_linkedin_auto_ssh22_redir.yaml | GitHub SSH 22 端口握手异常的人 | 使用 Redir/redir-host,关闭 TUN,同时保留 LinkedIn 配置 |
这些配置的共同特点是:
- 支持用户自己在
rules:里继续加直连或代理规则 - 已经内置了文献库直连思路,减少下载论文时频繁切换代理
- 已经处理了 LinkedIn 国际版访问问题
- 推荐版默认使用自动故障切换,日常不需要频繁手动切节点
单订阅使用 config_linkedin_auto.yaml。两个订阅需要故障切换时使用多订阅模板。没有多订阅需求时无需增加相应配置。
只有在下面这种情况才切到 config_linkedin_auto_ssh22_redir.yaml:
ssh -T git@github.com
仍然报 Connection closed by remote host、kex_exchange_identification 之类的 22 端口握手错误。
OpenClash 功能
OpenClash 是 OpenWrt / ImmortalWrt 上的代理管理插件,主要功能包括:
- 管理订阅和代理节点
- 配置 DNS、分流规则和策略组
- 按域名、IP 或端口指定直连与代理策略
完成插件安装、YAML 导入和界面选项设置后,即可使用模板提供的默认分流规则。
下载并安装 OpenClash
安装前先确认两件事:
- 你的系统是
24.10 及更早,还是25.12 及更新 - 你拿到的安装包是否和系统版本、设备架构匹配
常见安装方式有两种。
方式 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 份配置文件,其状态如下:
| 旧文件 | 原来作用 | 现在状态 |
|---|---|---|
config.yaml | 最早的基础模板,曾尝试用 nameserver-policy 修 LinkedIn | 已废弃,可删除 |
config_linkedin.yaml | 在基础模板上改 LinkedIn,但仍偏手动切节点 | 已废弃,可删除 |
config_linkedin_auto.yaml | 在 LinkedIn 修复版基础上,把常用分组改成自动故障切换 | 当前推荐 |
config_linkedin_auto_ssh22_redir.yaml | 在自动版基础上,额外处理 GitHub SSH 22 端口 | 当前保留 |
config.yaml 和 config_linkedin.yaml 已废弃,不再作为配置入口。
确认系统版本
通过 SSH 执行:
cat /etc/openwrt_release
重点看 DISTRIB_RELEASE:
24.10.x、23.x、更早稳定版:按opkg路线25.12.x、后续新版本:按apk路线
常见命令:
# 24.10 及更早
opkg update
opkg install <package-name>
# 25.12 及更新
apk update
apk add <package-name>
OpenWrt 25.12 及更新版本不使用 opkg install。
准备 YAML
打开需要使用的配置文件,填写订阅链接:
proxy-providers:
Airport1:
url: "这里填写你的订阅链接"
首次导入时仅修改订阅字段,保留 LinkedIn 和 DNS 的默认配置。
多机场模板有两个同样的 url 字段,分别填入两个订阅。不要把含真实订阅链接的 YAML 提交到公开仓库;如果已经公开,应立即重置订阅链接并清理 Git 历史。
导入到 OpenClash
按以下顺序导入:
- 打开
OpenClash - 进入
配置文件订阅或配置文件管理 - 上传 YAML,或者把 YAML 放到 OpenClash 配置目录后在界面里选择
- 切换到这份配置
- 应用配置并启动 OpenClash
上传完成后还需检查 OpenClash 的界面选项。
导入后的界面设置
先完成以下界面设置,再根据需要添加自定义规则。
必须确认的界面设置
- 关闭
绕过中国大陆或绕过大陆相关功能。
原因不是这份 YAML 不做大陆直连,而是 OpenClash 界面里的这套功能会在插件层额外接管流量逻辑,可能导致 LinkedIn 还没按 YAML 里的排除规则处理,就先被系统链路改写,最终又跳回 linkedin.cn。
- 关闭 DNS 覆写相关选项。
至少确认这些是关闭状态:
自定义上游 DNS 服务器遵循规则(Respect-Rules)追加上游 DNS追加默认 DNS- 其他会覆盖配置文件 DNS 的选项
- 保持
fake-ip模式。
这份 YAML 按 fake-ip 思路写的,LinkedIn 的修复依赖这一套 DNS / fake-ip / rule 组合,不建议再手动改成 redir-host。
配置内容说明
该模板在大陆直连、非大陆代理的基础规则上增加了以下配置:
- 在
fake-ip-filter里排除了 LinkedIn - 在
cn_domain规则集中排除了 LinkedIn - 在
rules:里把linkedin.com、linkedin.cn、licdn.com、lnkd.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.1、8.8.8.8 更快。
基础配置验收
完成前述安装、导入和界面设置后,应确认:
- 正常导入并启用配置
- 直接开始代理上网
- 使用当前 YAML 内置的默认分流能力
后续章节介绍以下自定义配置:
- 想自己额外添加直连或代理规则
- 想理解 Steam、文献库、LinkedIn、SSH
22这些场景是怎么实现的 - 想在现有 YAML 基础上继续按自己的使用习惯微调
自定义 rules: 规则
自定义域名、IP 或端口的分流策略时,主要修改 rules: 区块:
- 主要改
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 按从上到下的顺序匹配规则,命中后不再继续匹配。
常用规则格式
- 整站或某个主域名都按同一策略处理
用 DOMAIN-SUFFIX:
- DOMAIN-SUFFIX,example.com,DIRECT
- DOMAIN-SUFFIX,example.com,🚀 默认代理
适合:
linkedin.comnature.comsteamserver.net
- 只匹配一个精确域名
用 DOMAIN:
- DOMAIN,sub.example.com,DIRECT
- DOMAIN,api.example.com,🤖 ChatGPT
适合只想命中某一个子域名,而不想影响整个主域名的场景。
- 按 IP 段处理
用 IP-CIDR:
- IP-CIDR,1.2.3.0/24,DIRECT,no-resolve
这类写法一般用于你已经明确知道某段 IP 必须直连或必须代理的情况。
- 按端口处理
用 DST-PORT:
- DST-PORT,22,DIRECT
这就是 GitHub SSH 22 修复版里使用的写法。
策略组字段
每条规则的最后一个字段用于指定策略组:
DIRECT或直连:直接连接,不走代理🚀 默认代理:交给默认代理组🤖 ChatGPT:交给 ChatGPT 分组👨🏿💻 GitHub:交给 GitHub 分组
如果你只是想让某个网站正常翻墙,通常直接写到 🚀 默认代理 就够了。
配置示例
- 学校或机构网站直连
- DOMAIN-SUFFIX,example.edu.cn,DIRECT
- DOMAIN-SUFFIX,library.example.edu,DIRECT
- 某些 AI 或海外服务强制代理
- DOMAIN-SUFFIX,openai.com,🤖 ChatGPT
- DOMAIN-SUFFIX,anthropic.com,🚀 默认代理
- 某个下载站直连,但官网走代理
- DOMAIN-SUFFIX,download.example.com,DIRECT
- DOMAIN-SUFFIX,www.example.com,🚀 默认代理
- 只给单一端口直连
- DST-PORT,22,DIRECT
应用规则变更
- 保存 YAML
- 重新上传到 OpenClash,或者替换当前配置文件
- 在 OpenClash 里重新应用或重载配置
如果改了规则但没重载,效果通常不会立刻变化。
模板内置场景
以下场景已经写入当前模板,可根据实际需要保留或调整。
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.com、linkedin.cn、licdn.com、lnkd.in走🚀 默认代理
因此只要不乱改 DNS、fake-ip-filter、cn_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
SSH22 模板界面设置
- 配置文件选择 config_linkedin_auto_ssh22_redir.yaml
OpenClash -> 模式设置中使用Redir或redir-host- 不要开启
TUN - 关闭
绕过中国大陆或绕过大陆 - 仍然关闭 DNS 覆写相关选项
如果你没有遇到 SSH 22 问题,继续使用默认推荐的 config_linkedin_auto.yaml 即可。
关联配置项
以下配置共同决定 LinkedIn 的 DNS 与分流行为,应在明确影响范围后再修改:
dns:整块fake-ip-filter里的 LinkedIn 排除项cn_domain的 LinkedIn 过滤rules:里 LinkedIn 的单独代理规则
只修改其中一项可能导致 LinkedIn 跳转到中国站或分流规则失效。
常见问题
1. 自动故障切换未生效
先检查两件事:
- 你导入的是不是 config_linkedin_auto.yaml
- 当前生效配置是不是它,而不是旧配置
2. LinkedIn 跳转到中国站
优先看这几项:
- 绕过大陆功能是否已重新开启
- 有没有开启 DNS 覆写
- 有没有改动
fake-ip-filter、cn_domain、LinkedIn 规则
3. GitHub SSH 仍无法连接
确认这 4 项是不是同时满足:
- 使用的是 config_linkedin_auto_ssh22_redir.yaml
- OpenClash 模式已经切到
Redir/redir-host TUN已关闭DST-PORT,22,DIRECT没被删掉
官方参考
- OpenWrt
apk文档:https://openwrt.org/docs/guide-user/additional-software/apk - OpenWrt
opkg文档:https://openwrt.org/docs/guide-user/additional-software/opkg - OpenWrt
opkg -> apk对照表:https://openwrt.org/docs/guide-user/additional-software/opkg-to-apk-cheatsheet - OpenClash 维护参考:https://blog.dreamtobe.cn/openclash_maintain/
- 自定义 OpenClash 规则参考:https://github.com/Aethersailor/Custom_OpenClash_Rules