请注意,本文编写于 421 天前,最后修改于 148 天前,其中某些信息可能已经过时。
快速上手
建议还原openclash的默认配置后再按本文操作,访问地址 http://openwrtIP地址/cgi-bin/luci/admin/services/openclash/restore 来还原默认配置。
首先需要让openwrt能够正常连上网络,主路由配置好拨号上网,旁路由则需要设置好网关和DNS。
如果内核下载失败,可以点击下载到本地,然后上传到对应的目录。
然后前往 openclash
– 全局设置
– 版本更新
点击检查并更新内核。
建议DEV/TUN两个内核都下载,如果不使用TUN模式/混合模式可以不下载TUN内核。
openclash依赖clash内核运行,如果没有clash内核是无法启用的!
之后到配置文件订阅
添加机场的订阅地址并保存配置后,再点击更新配置即可。
如果只是需要能够科学上网,不搞那些花里胡哨的,那么到这里就已经可以正常进行科学上网了。
进阶使用
OpenClash配合MosDNS
建议先按这篇文章,安装好MosDNS。
需要注意的是请使用下面的config.yaml
,而不是上面那篇文章中的config.yaml
log:
level: info
file: ''
plugin:
################# 服务器插件 ################
# 启动服务器的插件
- tag: main_server
type: server
args:
entry: # 这个服务器插件收到请求后会
- main_sequence # 运行主执行序列
server: # 启动以下服务器
- protocol: udp
addr: '[::]:5335'
- protocol: tcp
addr: '[::]:5335'
################# 可执行插件 ################
# 包含分流的逻辑的插件
- tag: main_sequence
type: sequence
args:
exec:
- if:
- query_is_ad_domain # 已知的广告域名
exec:
- _block_with_nxdomain # 生成 NXDOMAIN 应答
- _return # 返回。不再执行后续插件。
- mem_cache # 运行缓存插件。放在这里就可以避免缓存到无用的广告域名。
- if:
- query_is_local_domain # 已知的本地域名
- '!_query_is_common' # 和不常见的请求类型
exec:
- forward_local # 用本地服务器
- _return
- if:
- query_is_non_local_domain # 已知的非本地域名
exec:
- _prefer_ipv4 # 优先 IPv4
- forward_remote # 用远程服务器
- _return
# 剩下的未知域名用 IP 分流。详细分流原理请参考 `fallback` 的工作流程。
- primary:
- forward_local # 本地服务器为主。
- if:
- '!response_has_local_ip' # 过滤掉非本地的 IP。
exec:
- _drop_response
secondary:
- _prefer_ipv4
- forward_remote
fast_fallback: 150 # 这里建议设置成 local 服务器正常延时的 2~5 倍。
# 这个延时保证了 local 延时偶尔变高时,其结果不会被 remote 抢答。
# 如果 local 超过这个延时还没响应,可以假设 local 出现了问题。
# 这时用就采用 remote 的应答。单位: 毫秒。
always_standby: true
# 缓存
- tag: 'mem_cache'
type: 'cache'
args:
size: 1024
lazy_cache_ttl: 172800
lazy_cache_reply_ttl: 30
# 转发请求至本地服务器的插件
- tag: forward_local
type: fast_forward
args:
upstream:
- addr: tcp://119.29.29.29
idle_timeout: 10
- addr: tcp://223.5.5.5
idle_timeout: 10
# 转发请求至远程服务器的插件
- tag: forward_remote
type: fast_forward
args:
upstream:
- addr: tcp://1.1.1.1
socks5: 127.0.0.1:7891
idle_timeout: 10
- addr: tcp://208.67.222.222
socks5: 127.0.0.1:7891
idle_timeout: 10
################ 匹配器插件 #################
# 匹配本地域名的插件
- tag: query_is_local_domain
type: query_matcher
args:
domain:
- 'ext:./geosite.dat:cn'
# 匹配非本地域名的插件
- tag: query_is_non_local_domain
type: query_matcher
args:
domain:
- 'ext:./geosite.dat:geolocation-!cn'
# 匹配广告域名的插件
- tag: query_is_ad_domain
type: query_matcher
args:
domain:
- 'ext:./geosite.dat:category-ads-all'
# 匹配本地 IP 的插件
- tag: response_has_local_ip
type: response_matcher
args:
ip:
- 'ext:./geoip.dat:cn'
然后需要先在 DHCP/DNS中的DNS转发
填写一个国内公共DNS,例如 223.5.5.5
。
这样可以让OpenClash启用的时候,可以正常更新订阅,之后启用OpenClash的时候,它会自动修改这里的DNS转发
。
在OpenClash的DNS设置中勾选本地DNS劫持
、自定义上游DNS服务器
和禁止Dnsmasq缓存DNS
。
自定义上游DNS服务器中的Nameserver
和Fallback
都得是MosDNS的!
之后前往配置文件订阅
中添加订阅再点击更新配置即可,这样OpenClash就配置完了。
原文:https://rxclc.top/index.php/archives/6/
要发表评论,您必须先登录。