分享我的一个 openclash 终极优化方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
guoguobaba
V2EX    OpenWrt

分享我的一个 openclash 终极优化方案

  •  
  •   guoguobaba 299 天前 6523 次点击
    这是一个创建于 299 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先说我的需求,第一当然是科学上网,第二是我的群晖需要用 ipv6 暴露在外网。所以我的网络需要开启 ipv6 ,包括 dns 也需要允许 ipv6.下面是我的优化方案:

    1 、基本的上网配置是 dnsmasq+openclash+smartdns, openclash 劫持 dnsmasq 的 53 端口,然后将 dns 转发到 smartdns 的 5335 端口,smartdns 国内域名向我的上游 dns 解析,国外域名通过 doh/dot 解析。类似于这样的配置:

    domain-set -name chinalist -file /etc/smartdns/domain-set/accelerated-domains.china.domain.smartdns.conf domain-rules /domain-set:chinalist/ -nameserver domestic -speed-check-mode ping,tcp:80,tcp:443 -address #4,#6 -dualstack-ip-selection yes -response-mode first-ping domain-rules /./ -nameserver gw -speed-check-mode none -address -6 dualstack-ip-selection no -response-mode fastest-response 

    这里,国内域名可以解析 ipv4 和 ipv6 地址,国外域名就只解析 ipv4 地址。

    2 、openclash 使用 redir-host 模式,之所以不使用 fakeip ,是因为我来需要 ssh 连接外网,用 fakeip 会出各种奇怪的问题。然后选择“自定义上游 DNS 服务器”,所有上游服务器都设置成 smartdns 的 5335 端口。这样把 dns 交给 smartdns 分流,smartdns 如果使用 doh 查询 1.1.1.1 或者 google 的 dns ,又会转到 openclash 翻墙。 之所以不把 smartdns 放最前面,是因为 openclash 通过域名去分流更精准一些。

    3 、openclash 不做 ipv6 的代理,因为上面说了,国外域名只会解析 ipv4 地址。

    4 、在 openclash 开发者选项增加 iptables 规则,这样当国内域名解析 ipv4 后,直接就通过网络出去了,而不走 clash 代理,在插件设置-->开发者选项里增加两行脚本:

     LOG_OUT "Tip: Start Add Custom Firewall Rules..." iptables -t nat -I openclash -m set --match-set china_ip_route dst -j RETURN iptables -t mangle -I openclash_output -m set --match-set china_ip_route dst -j RETURN 

    利用 openclash 自己同步的 ipset 规则来讲解析到的国内 ip 地址直接跳转而不走 clash 代理通道。第一条是路由规则,第二条是本机规则。

    5 、使用 github cmliu 大神的 edgetunnel 项目,在 cf 上弄了个代理,然后又用 CF-Workers-SUB 项目,将我买的收费机场和 cf 的免费机场做了一个聚合。最后 fork cmliu 大神的 ACL4SSR 项目,定制了我的分流规则,使 openclash 自动订阅我的 https://fgfwsub.xxxx.site/<uuid>即可自动获取机场订阅信息。当我的机场发生改变的时候,只需要去这个网址上去修改机场聚合地址就可以了 。当我需要设置新的分流规则,只需要在我 fork 的 ACL4SSR 项目里,修改对应的分流规则即可。具体可以参照油罐该大神的视频。

    春节以来,零零碎碎折腾了好久,总算折腾得好用了。

    17 条回复    2025-05-21 14:01:16 +08:00
    feelinglucky
        1
    feelinglucky  
       298 天前
    sing-box + adguard 足够了,国内直连国外走代理,没有那么复杂
    235777178
        2
    235777178  
       298 天前
    越复杂延迟时间越长。最后发现折腾的意义就是折腾
    badgv
        3
    badgv  
       298 天前 via Android
    很好奇 fakeip 的 ssh 能有啥奇怪问题?一直用 fake 模式,啥问题都没有,adguard(可有可无)+psw2(自建 sbox)+fakedns ,带 ipv6 环境,基于域名(geodata+自定义维护域名)分流,国内正常解析双栈域名,科学域名直接 fake ,用好久了,啥问题都没有
    SakuraYuki
        4
    SakuraYuki  
       298 天前
    openclash 以前折腾半天,最后发现不如换成 singbox 或者 surge ,简单省事
    guoguobaba
        5
    guoguobaba  
    OP
       298 天前
    @SakuraYuki 看需求的,比如我用 singbox ,之前发过,内网的 ipv6 不能被访问,导致 pt 没流量。而且很多网站需要动态调整规则,手动选择机场,比如 openai 就不能用 hk 的机场,不能用 cf 的机场等等,缺省的方案访问馒头会被当成 box 。综合来看,这套方案能满足我这些需求。
    xpn282
        6
    xpn282  
       298 天前 via iPhone
    搞那么复杂了。
    我也是 IPv6 环境,主路由上 OpenClash 也是 redir-host 模式,OpenClash 设置里:接管 IPv6 流量,并且允许 IPv6 类型 DNS 解析,也就是说 IPv6 全开了。只要做好 geoip:cn 规则,v4 和 v6 流量由 OpenClash 处理(直连或代理),我的节点有 IPv6 的,也有 IPv4 的,混合随机使用,也不需要担心什么国外只返回 v4 不返回 v6 之类的东西,一切正常,没发现过任何因为使用 IPv6 产生的问题。

    还有就是 OpenClash 的 dns 服务本身就可以做分流的,不需要借助其他 dns 工具了。配置 nameserver-policy 和 nameserver 即可实现分流,并且现在可以把国外 dns 代理解析,这几天国外 dns 不是被墙了吗,不好使了,把国外 dns 代理即可解决
    guoguobaba
        7
    guoguobaba  
    OP
       298 天前
    @xpn282
    为啥我连 v4 先 iptables 转 china ip 呢
    缺省都可以用,不就是优化吗
    xpn282
        8
    xpn282  
       298 天前 via iPhone
    @guoguobaba #7 不懂这些,太高深的优化我也不懂。
    我现在就是 OpenClash 里的 IPv6 全开。
    1 ,能通过各种 IPv6 网址测试。
    2 ,节点有 v4 节点和 v6 节点,fallback 策略混合使用的,出国没发现任何的问题,也就是说不会因为我的节点是 v4 还是 v6 而产生问题。

    另:如果不想让国内流量走 clash 内核,就把“绕过国内”打开。我一般都不开这个,我有时需要看个别设备访问什么域名。
    guoguobaba
        9
    guoguobaba  
    OP
       298 天前
    @xpn282 无他,就是速度问题。另外,免费的 cf 节点时常抽风,这也是我要考虑的问题。我现在大部分流量比如看油管啥的都是走免费的 cf ,少部分走按流量收费的机场。
    chuxi
        10
    chuxi  
       298 天前
    SakuraYuki
        11
    SakuraYuki  
       298 天前
    @guoguobaba #5 现在用 surge 倒是这些问题都能解决,唯一的缺点就是贵
    wegbjwjm
        12
    wegbjwjm  
       297 天前 via iPhone
    @chuxi 开箱即用我也不会,能喂吗?我的水平只会路由器刷个别人编译好的固件。
    htfcuddles
        13
    htfcuddles  
       284 天前
    smartdns 基于列表的分流并不好用,有太多漏网之鱼,只能说涵盖了部分常用网站。不在乎泄露还是 clash 的 fallback 完美。openclash 跳过 cn 路由并不需要任何脚本,直接选跳过中国路由模式就可以了。会折腾也不用订阅转换,别人写的定制性太差,直接手写本地规则,rule-set 和 geosite 都会自动更新,机场订阅用 proxy-provider 更新就可以了。
    guoguobaba
        14
    guoguobaba  
    OP
       284 天前
    @htfcuddles 绕过中国模式和我写的 iptables 规则一样,用 clash 自带的了

    proxy provider 这种机制和 singbox 的差不多,但是还是需要去界面改。我把规则分给好几个人用,用订阅+gist 这种模式比较好。
    tokuwaka
        15
    tokuwaka  
       280 天前
    可以转用 nikki 了
    diave971349
        16
    diave971349  
       228 天前
    @tokuwaka 我 pt 下载器部署在路由器上面,nikii 没有绕过端口就很麻烦。。。
    henryleo
        17
    henryleo  
       222 天前 via Android
    openclash 现在有支持 mihomo 配置文件的锚点吗?

    我把 cmfa 有锚点的配置直接给 openclash 用,这样没问题吧?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3008 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 13:27 PVG 21:27 LAX 05:27 JFK 08:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86