V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wenjie0032
V2EX  ›  程序员

撸了一个 Clash 的 GUI, 自带规则开箱即用

  •  
  •   wenjie0032 · 2022-05-15 09:49:35 +08:00 · 13173 次点击
    这是一个创建于 958 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直使用 ClashX 连接机场, 但是配置文件的维护上很不方便

    一是需要手动维护, 二是订阅多个机场时 proxy 的规则无法复用, 需要来回复制

    所以就撸了一个小工具, 自带规则, 维护相关配置, 使用时只需要填写机场的订阅链接即可

    默认的规则已经基本够用了, 包括: 广告屏蔽, 本地走 REJECT, GFW 走 proxy 等

    技术栈: 使用 wails : go + webview 来构建程序

    github 直达: https://github.com/daodao97/EasyClash

    欢迎下载使用

    第 1 条附言  ·  2022-05-20 20:17:48 +08:00
    v1.2 版本更新
    - 更改核心为 Clash.Meta, 支持 vless...
    - 优化 ProxyGroup 的配置, 支持 Select, loadBalance...
    - 优化 macos sysproxy setting
    105 条回复    2022-06-07 20:12:50 +08:00
    1  2  
    estk
        1
    estk  
       2022-05-15 10:00:10 +08:00
    看到一些客户端有“绕过大陆 IP”选项,这个原理是什么?
    HAWCat
        2
    HAWCat  
       2022-05-15 10:06:01 +08:00 via iPhone
    star +1
    vocaloid
        3
    vocaloid  
       2022-05-15 10:12:04 +08:00
    @estk #1 大概是用 geoip 判断是否是大陆 ip ,如果是就绕过(不走代理)
    workuse
        4
    workuse  
       2022-05-15 10:15:55 +08:00
    期待 win 版
    infun
        5
    infun  
       2022-05-15 10:16:24 +08:00
    amd 包解压之后名称是 arm
    wenjie0032
        6
    wenjie0032  
    OP
       2022-05-15 10:25:33 +08:00
    @infun 已重新打包上传
    wenjie0032
        7
    wenjie0032  
    OP
       2022-05-15 10:28:30 +08:00
    @vocaloid @estk 正解, 对应的规则是: GEOIP CN DIRECT
    infun
        8
    infun  
       2022-05-15 10:47:29 +08:00
    好像不支持 justmysocks 的订阅链接
    Biwood
        9
    Biwood  
       2022-05-15 10:48:20 +08:00 via iPhone
    尝试过几个平台的 Clash ,给我感觉都不太好用,都不如 v2rayXXX 之类的客户端好用,目前只有安卓平台在用,主要是自带的分流策略还不错
    stephenyin
        10
    stephenyin  
       2022-05-15 10:54:39 +08:00
    @Biwood #9 同意,我现在还在使用已经不维护的 Trojan-QT5 ,中间切了几次 clash 系的工具用起来都很蹩脚。就是各种不确定性。比如我把软件代理指向 clash 的 127.0.0.0:xxxxx 端口,但 clash 必须开全局模式流量才能走 proxy 出去,不然还是走 direct ,这就就很迷啊。
    sickoo
        11
    sickoo  
       2022-05-15 10:57:58 +08:00
    mac 端不能像 win 那样热修改规则,还得从配置文件开始,有点折腾但是又没办法。
    junelee220
        12
    junelee220  
       2022-05-15 11:00:31 +08:00
    macos 10.10 yosemite 用不了
    whenov
        13
    whenov  
       2022-05-15 11:01:49 +08:00
    @stephenyin rule 模式也可以啊
    wenjie0032
        14
    wenjie0032  
    OP
       2022-05-15 11:12:34 +08:00
    @infun #8 ProxyProvider 添加的地方有个订阅地址转换, justmysock 的订阅地址需要转换成 clash 格式的才行
    wenjie0032
        15
    wenjie0032  
    OP
       2022-05-15 11:14:08 +08:00
    @junelee220 #12 我本机 11.6, 不知 10.10 下具体有什么报错
    livenux
        16
    livenux  
       2022-05-15 11:14:59 +08:00
    还是用有带 pac 的客户端,全局走代理网页的 ClientIP 都变成 127.0.0.1 了
    hanbing135
        17
    hanbing135  
       2022-05-15 11:15:53 +08:00
    强烈支持 希望能完美支持 mac
    hanbing135
        18
    hanbing135  
       2022-05-15 11:24:23 +08:00
    添加订阅后,一直提示添加 proxygroup
    A3m0n
        19
    A3m0n  
       2022-05-15 11:32:48 +08:00
    想问一下如果只先 80 和 443 端口走规则(根据已有的规则判断直连还是代理),其余端口都走直连应该怎么写呀,难道要把六万多个端口都写一遍么?
    wenjie0032
        20
    wenjie0032  
    OP
       2022-05-15 11:36:34 +08:00
    @hanbing135 #18 看下 readme 中的第二步
    hxse
        21
    hxse  
       2022-05-15 12:35:49 +08:00
    有计划支持 windows 吗
    Buges
        22
    Buges  
       2022-05-15 12:44:03 +08:00 via Android   ❤️ 6
    提醒一下使用 clash 内置分流的用户,如果你启用了 clash 内置的 dns 功能,并且配置中有这样的项(来自官方示例):
    nameserver:
    - 114.114.114.114 # default value
    - 8.8.8.8 # default value
    - tls://dns.rubyfish.cn:853 # DNS over TLS
    - https://1.1.1.1/dns-query # DNS over HTTPS
    - dhcp://en0 # dns from dhcp

    那么你访问的*所有域名(包括走代理和直连的)将会全部暴露给本地 ISP 运营商与有关部门*。
    YOU HAVE BEEN WARNED

    因为 clash 具有这样的分流逻辑:获得一个域名后向所有 dns 服务器并发发送请求,取最快返回结果并判断是否为 CN ip ,且 clash 的 dns 请求只支持直连,无法通过代理发送。所以如果你的 nameserver 列表中包含:任何非 DoT 和 DoH 的项;任何大陆服务器。那么你的所有请求都会暴露。
    除此以外如果你使用包括 chinadns 在内的各种同类软件都会出现同样的后果。
    Macolor21
        23
    Macolor21  
       2022-05-15 13:01:58 +08:00
    > 二是订阅多个机场时 proxy 的规则无法复用, 需要来回复制

    热知识,Clash 有个配置叫:proxy-providers

    https://github.com/Dreamacro/clash/wiki/configuration#proxy-providers
    Macolor21
        24
    Macolor21  
       2022-05-15 13:03:38 +08:00
    @Macolor21 #22 我没有多机场,但自己写一份规则,然后多个订阅链接,应该满足这个需求
    ericgui
        25
    ericgui  
       2022-05-15 13:09:35 +08:00
    golang 也可以写 GUI 了,不错
    yanyumihuang
        26
    yanyumihuang  
       2022-05-15 14:42:29 +08:00 via Android
    @Buges 你的说法是不完整的。fakeIP 模式下,第一如果你规则列表里只有域名或者 ip 规则后面有 noreslove ,那只有在匹配完成后才进行 dns 请求,直连就走 nameserver 里面写的 dns ,走代理则直接将域名发往远方服务器。如果你有 IP 类规则或者 geoip ,那只有在匹配到 IP 类规则时,才会进行 dns 请求来进行对比,匹配完成后跟上面的流程一样。只要有 IP 类的匹配规则就必须要进行 dns 解析,无解。这与 clash 无关,跟规则有很大关系
    magicdawn
        27
    magicdawn  
       2022-05-15 15:25:33 +08:00 via Android
    啊, 我也写过 clash 配置合并工具
    https://github.com/magicdawn/clash-config-manager
    Buges
        28
    Buges  
       2022-05-15 16:14:50 +08:00 via Android   ❤️ 1
    @yanyumihuang 不会真有人不使用 IP 类规则吧? geoip 匹配 CN ,这基本是分流的标配了,也只有 IP 匹配相对准确。clash 的 dns 模块不支持走代理只能直连,再加上从官方示例到各种托管提供的配置都在使用这种类似 chinadns 的“智能”分流方式,如果用户没有非常仔细地阅读文档并自己编写配置的话,那么他十有八九正在暴露所有访问的域名而不自知。另外还有些事情连文档都没写,不去仔细看代码都发现不了。你知道节点不支持 UDP 的情况下,你的 UDP 流量会怎么样吗?
    sunny2580839896
        29
    sunny2580839896  
       2022-05-15 16:33:41 +08:00
    @Macolor21 #23 可以使用预处理
    studyingss
        30
    studyingss  
       2022-05-15 17:00:23 +08:00   ❤️ 3
    @Buges 然而并没有其他办法可以完全避免这一点,如果想完全控制 dns 解析行为,可以考虑使用 script 模式。

    另外,有 ip 规则不代表一定会进行 ip 解析,假如规则这么写:

    DOMAIN,google.com,Proxy
    GEOIP,CN,direct
    match,Proxy

    访问 google.com 的时候是一定不会产生 dns 请求的,因为匹配到第一条直接就走代理了。

    简单来说一个配置了代理规则的规则列表并不会导致“所有域名”暴露,起码常用域名不会暴露。

    最后,你的第一句话就有误导,“如果你启用了 clash 内置的 dns 功能”,“域名暴露给 ISP”与是否启用 clash 内置 dns 并没有太大关联。

    如果遇到会触发 dns 解析的情况,是否配置 dns 功能都不能阻止你的域名暴露,如果你只是简单地关掉了内置 dns ,却没有采取其他措施,你的 dns 请求也只是通过系统默认的 dns 而已,而系统 dns 一般也是运营商下发的。
    Buges
        31
    Buges  
       2022-05-15 17:15:42 +08:00 via Android
    @studyingss 你怎么就觉得没有呢,最简单的,全部通过 dot/doh 走代理解析,再配合一个大陆常用域名的白名单,不过就是牺牲一些准确性罢了。再比如用 edns 提供一个任意的 CN ip 通过代理以 dot/doh 向 8888 查询,再判断结果是否为 CN ip ,是的话再从国内直连解析。
    当然以上这些使用 clash 内置的 dns 与规则分流是做不到的,连解析都不能走代理。问题就是 clash 的 dns 模块本身,不使用 clash 内置 dns 可以用外置的 dns ,配好走代理的 dot/doh ,你告诉我怎么会泄露?
    另外像你这种规则写法是没必要的,除了耐飞等需要特殊配置的以外,在能被兜底规则匹配到的情况下提前加规则有啥意义?就算你请求中的少部分“热门”、“常用”域名没有产生 DNS 请求,你访问的不存在于规则列表中的域名是比前者更不宜暴露的。
    WAHSUN
        32
    WAHSUN  
       2022-05-15 17:41:32 +08:00
    star +1
    Celebi
        33
    Celebi  
       2022-05-15 17:46:11 +08:00 via iPhone
    @Buges #31 怎么使用外置的 dns ?
    yanyumihuang
        34
    yanyumihuang  
       2022-05-15 17:49:34 +08:00 via Android
    @Buges clash 也是支持 doh 和 dot 的。这种写法有可以避免一次 dns 请求,某种程度上可以加快访问速度。说到底是规则的问题不是 clash 本身的问题。你觉得这种泄露查询记录,那你可以通过配置加密 dns 和修改规则来避免。
    lion9527
        35
    lion9527  
       2022-05-15 17:55:06 +08:00
    有 win 版计划吗?
    Buges
        36
    Buges  
       2022-05-15 17:55:19 +08:00 via Android
    @yanyumihuang 你配置哪个 doh/dot ?如果是境内的那结果一样,如果是境外的现在还有哪个境外 dot/doh 服务器可以直连?就算能连上,极差的速度和稳定性对网络访问体验的影响就不用我多说了。
    clash 的 dns 模块就是这样设计的,无论你怎么写规则,只要用到 dns 就会泄露。你非要说“用到 dns 就是规则的问题”那我也无话可说。
    @Celebi 就正常使用啊,把 clash 的 dns 关掉,再启动另一个 dns 服务,然后把客户端使用这个服务。
    yanyumihuang
        37
    yanyumihuang  
       2022-05-15 17:56:25 +08:00 via Android
    @Buges clash 本身的优点就是不同的域名可以使用不同的节点。我查了第三方规则,无论是 aclssr 还是神机,他们的 IP 类规则都加了 noreslove ,也就说如果你用他们的规则,且自己不乱写,dns 泄露并没有你想象的那么严重。最后解决 dns 泄露的唯一方法就是加密 dns ,而这 clash 本身也是支持的,所以请不要将自己的使用问题怪罪到工具上。
    yanyumihuang
        38
    yanyumihuang  
       2022-05-15 18:02:59 +08:00 via Android   ❤️ 2
    @Buges 建议你去好好看看 github 的 issue 。
    给你一个最简单的避免 dns 泄露的办法,规则里只写域名,ip 类后面加上 noreslove ,不用 geoip ,这样就可以解决
    或者你可以用 adghome ,用 adh 来进行 dns 分流。
    clash 这样设计在规则完善的情况下可以减少一次 dns 请求。
    Buges
        39
    Buges  
       2022-05-15 18:09:04 +08:00 via Android
    @yanyumihuang IP 类规则 noresolve 除了直接访问 ip ,通过域名解析到的都不会生效了,大部分场景都没意义了。这些规则加 resolve 是为了避免影响用户的配置,正常来说匹配到这些规则前已经被其他规则 resolve 过了。
    你倒是说说怎么配置加密 dns 能正常使用还不泄露。我上面说过了,如果 dot/doh 指定了境内的服务器,那同样还是泄露,只不过泄露的对象从 ISP 变成了 dns 提供商,最后都会归到有关部门;如果只指定境外的 dot/doh 服务,且不说大部分都被屏蔽了,就算能直连对响应速度的影响也是剧烈的。
    clash 的 dns 模块不支持通过代理解析,这是“把自己的使用问题归到工具上”。
    另外 clash 的 dns 提供的 dns 模块 nameserver 和 fallback-nameserver 的并发查询本身就是 leaked by design ,泄露就是软件设计的符合预期的行为。
    Buges
        40
    Buges  
       2022-05-15 18:11:59 +08:00 via Android
    @yanyumihuang 然而我看到的 issues 显示类似问题基本都没有回应。至于用 adghome ,就符合我最开始所说的不使用 clash 内置的 dns ,如果用了 clash 内置的 dns 必然会暴露。
    yanyumihuang
        41
    yanyumihuang  
       2022-05-15 18:19:56 +08:00 via Android
    @Buges 用 adgh 分流或者 smartdns 也可以。加密的 dns 站内有友搭建的有,你去 v 站 dns 节点就能看见。从你的回复我能看出来,你并不十分清楚 clash 的 dns 流程,建议看看苏卡卡关于 dns 的文章和 githubissue 区的一些 issue 。另外用一个 adgh 搭建一个自己的加密 dns 是十分简单的,站内有很多 v 友就是这样做的。最后一条回复
    ByteCat
        42
    ByteCat  
       2022-05-15 18:21:19 +08:00
    Clash 本来就可以引入 Rulesets ,算方便了,更何况还有 [subconverter]( https://github.com/tindy2013/subconverter),这类工具,配置维护是没什么难度的。
    Buges
        43
    Buges  
       2022-05-15 18:48:12 +08:00 via Android
    @yanyumihuang 这不就是我上面说的,换用外部 dns 服务器才能缓解 clash dns 模块的泄露问题。clash 的 dns 流程只拿来匹配 IP 规则用,最终结果还是发送域名的连接请求(这会导致实际配置的 dot/doh 全部失效,dns 解析全部暴露给远端网络提供商,不过这就是另一个问题了)。
    更稳妥的方法是连 fake-ip 也不用,完全放弃 clash 的域名规则,域名分流全部由外部 dns 服务配合 ipset/nft set 实现。
    一句话说,使用 clash 内置的 dns 模块(和依赖 dns 模块的分流机制)会暴露域名给有关部门。如果你觉得自己日常访问的所有被封禁的违法违规的境外网站全部向有关部门披露都没问题,那当然可以正常使用;但很多用户可能根本就不知道这种行为,所以我觉得还是需要提醒一下风险。
    wenjie0032
        44
    wenjie0032  
    OP
       2022-05-15 19:44:49 +08:00
    @ByteCat #42 学习了
    shangrenxi
        45
    shangrenxi  
       2022-05-15 20:11:23 +08:00 via iPhone
    支持 meta clash 内核吗? mac 上没有一个可以用 meta 的
    jsq2627
        46
    jsq2627  
       2022-05-15 20:36:39 +08:00
    clash 自己一直不支持 DNS 走代理,这是它的设计缺陷没得洗。先不说 DNS 泄露问题,fallback-nameserver 都只能直连,使用体验上根本没法用。

    不过也因此,现在大多数人用的规则集,都会配置 gfwlist 或者类似的境外黑名单走 PROXY (否则交给 fallback-server 太慢了),大部分敏感域名都能命中,不会走到本地 resolve 这一步。 @Buges
    Buges
        47
    Buges  
       2022-05-15 21:46:29 +08:00 via Android
    @jsq2627 这下倒车回到当年 pac 时代的黑名单了,不过也确实过滤大量敏感域名后能缓解相当一部分问题。
    但黑名单终归不可靠,过度依赖规则的维护,除非极轻度使用,可靠性上不如早就流行的 CN ip + geosite:cn 的白名单方式。
    终归 clash 更像是为服务的提供者而非最终用户设计的,注重易用性、忽略安全、节点切换,以及规则托管,都是为了方便服务的提供者。还有一些行为,如节点如果未指定默认视为不支持 UDP ,且如果规则到最后也没匹配到支持 UDP 的节点的话会默认直连( Match,final 也会漏掉)而非丢弃。怎么看目标客户都像是为服务提供者设计的。
    CharlesGray
        48
    CharlesGray  
       2022-05-15 22:11:18 +08:00
    @jsq2627 meta 核支持 fallback-nameserver 代理,方便多了
    abcd191898105
        49
    abcd191898105  
       2022-05-15 22:25:21 +08:00 via Android
    @estk 白名单 500
    abcd191898105
        50
    abcd191898105  
       2022-05-15 22:26:34 +08:00 via Android
    @sickoo v2rayn 也不能热更换,也要重启才行
    bjfane
        51
    bjfane  
       2022-05-15 22:34:30 +08:00
    还没仔细看 至少 clashx 不能加自己的规则( macOS 版本),因为一更新之后就覆盖,一直没研究到方法,看起来楼主的这个方法好想可以,先 star 为敬
    studyingss
        52
    studyingss  
       2022-05-16 01:17:41 +08:00
    @CharlesGray 多谢,才知道有这个 Meta 核。
    studyingss
        53
    studyingss  
       2022-05-16 01:25:52 +08:00
    @Buges 我理解你的意思了,即是说配置外部 dns 服务,使用 doh/dot 走代理,并且 dns 服务器需要是可信的国外服务。我目前也是这个方案。

    clash 很多设计确实不尽人意,比如 provider 更新、dns fallback 不能走代理之类的。我也没想明白 dns fallback 不允许走代理的设定是为什么。

    你的第一条提醒看上去的意思是“clash 内置 dns 导致了 dns 泄漏”,可能会让人误以为你的意思是(或许只有我误会了)“关掉内置 dns 或者修改默认配置就能避免 dns 泄漏”,实际上还需要搭配一个外置的 dns 服务。

    应该就是这样。
    TcDhl
        54
    TcDhl  
       2022-05-16 01:39:07 +08:00
    其实蛮想要的一种功能是"负载均衡", 可以把所有线路都调用起来
    Buges
        55
    Buges  
       2022-05-16 02:13:48 +08:00 via Android
    @studyingss 我的意思只是提醒普通用户或没有仔细阅读文档甚至源码并手动编写配置的用户,如果使用了默认的(官方示例 or 提供商托管)配置,大概率访问的域名已经暴露给了 ISP 和有关部门。
    这是 clash 本身设计的“缺陷”,虽然通过外部服务可以一定程度缓解,但对很多用户(尤其是终端而非网关)是很难达成的。
    当然你要说不尽人意也未必,只是不尽我们意,对服务提供商来说各种泄露流量外加配置托管,可以由服务商控制哪些流量被代理(大部分用户不会自己写配置),方便还能节省成本,好用的很呢。
    hanbing135
        56
    hanbing135  
       2022-05-16 08:26:33 +08:00 via Android
    @TcDhl 这个是不是理论上技术做不到
    jKpzPv20NjX56i44
        57
    jKpzPv20NjX56i44  
       2022-05-16 09:02:19 +08:00 via iPad
    建议增加 Linux 版。Linux 上好用的代理软件不多了…
    gydi
        58
    gydi  
       2022-05-16 09:24:26 +08:00 via Android
    275761919
        59
    275761919  
       2022-05-16 09:41:57 +08:00
    @qwerzl 推荐一下我写的 clashweblite, https://github.com/ctaoist/clashweblite, 主打跨平台,轻量
    Kinnice
        60
    Kinnice  
       2022-05-16 10:02:20 +08:00
    @TcDhl
    @hanbing135
    可以,但是大概率会被各类网站 ban
    同一个用户凭证,同时在十几个国家或地区上线......
    studyingss
        61
    studyingss  
       2022-05-16 10:04:12 +08:00
    @TcDhl clash 本身就有啊,叫 load balance
    moxuanyuan
        62
    moxuanyuan  
       2022-05-16 11:22:32 +08:00
    clash 不支持 vless
    Celebi
        63
    Celebi  
       2022-05-16 11:50:59 +08:00
    studyingss
        64
    studyingss  
       2022-05-16 12:31:02 +08:00
    @Celebi 第一他给的配置没写 fallback filter ,可能是太长没贴上,需要补一下,

    第二 fallback 里的全都连不上,他是提意见要求 clash 让 fallback 走代理,目前 clash 没加这个功能,他这个配置用不了的(似乎开 tun 模式可以用,有看到别人测试过,我不确定)。

    楼上的那位说的是对的,要如果一定要在本地做 dns 解析到话,完全解决 dns 泄漏和 dns 污染的问题只能依靠外部 dns 服务。

    至于这个 comment 提到的问题,我还是认为应该直接配置 google 域名规则走代理,而不是依赖本地 dns 解析,需要代理才能连接的域名就不该请求国内 dns 。

    最主要的是他本地解析同时使用的还是 redir-host 模式……如果他用的是 fake-ip 模式,clash 看到 ip 是国外 ip 就会直接把域名发到节点 dns 解析并连接,污染也就无所谓了。
    就算结果没被污染也会因为没有利用 cdn 的原因导致连接速度贼慢啊……
    xx3122
        65
    xx3122  
       2022-05-16 12:42:23 +08:00
    @Buges 咋弄?删除该部分即可么?还是?
    TcDhl
        66
    TcDhl  
       2022-05-16 13:41:36 +08:00
    @studyingss #61
    对, "load balance", 我知道这个, 但负载的时候没有 ShadowsocksR 那么好
    TcDhl
        67
    TcDhl  
       2022-05-16 13:42:06 +08:00
    @hanbing135 #56 ShadowsocksR 就有
    TcDhl
        68
    TcDhl  
       2022-05-16 13:43:02 +08:00
    @Kinnice #60
    就是弄成开关那种形式, 需要的就打开, 不需要的就默认关闭
    可以用在 TG 那种软件上的, 加载图片, 看视频会快很多很多
    kookpua
        69
    kookpua  
       2022-05-16 13:52:14 +08:00
    \厉害
    beijiaoff
        70
    beijiaoff  
       2022-05-16 14:45:09 +08:00
    从评论中学到了新知识。请教一下,为什么 clash 不能让 dns 也走代理呢
    xuanzc880
        71
    xuanzc880  
       2022-05-16 14:51:13 +08:00
    @Buges 和 dns 泄漏比起来用国内的网络更不安全,你所有网络链接 ISp 都会知道,通过 ip 反查就知道你有没走代理,你不用国外的网络算啥安全?
    gowk
        72
    gowk  
       2022-05-16 15:05:54 +08:00
    技术栈不错,Go 写跨平台桌面应用除了 wails 还有别的更好的选择吗
    SenLief
        73
    SenLief  
       2022-05-16 17:09:54 +08:00
    @beijiaoff clash 本体重在分流,dns 部分应由其他部分处理,所以也有 dns 上游用 dnsmaq 的吧。
    SenLief
        74
    SenLief  
       2022-05-16 17:18:34 +08:00
    我发现我怎么一直没有安装上呢,给了任何来源也不行。
    Buges
        75
    Buges  
       2022-05-16 17:41:14 +08:00 via Android
    @xuanzc880 知道你走代理和知道你通过代理访问的所有域名是两个概念。
    据我所知国内 53 和 80 端口的上行流量会全部镜像一份到某部门,具体风险自己考虑吧。我发这些只是提醒不知道这种行为的用户其中可能的风险,你了解风险并接受当然可以正常使用。
    @xx3122 解决方法是你要仔细阅读并完全理解文档,然后自己手动编写配置。简单地说自己额外搭建一个 dns 服务,并把 clash 中所有 dns 服务器列表全部删除,dns 指向自己搭建的服务。
    bavtoex
        76
    bavtoex  
       2022-05-16 20:17:24 +08:00
    在电脑开 clash,手机 wifi 直接设置连接电脑的 http 代理,部分 app 会检测并且主动禁止联网,这怎么解决?
    xiaoke
        77
    xiaoke  
       2022-05-16 22:56:46 +08:00
    @wenjie0032 导入订阅后,只能根据延迟速度来选择节点?如何手动指定。
    studyingss
        78
    studyingss  
       2022-05-17 02:32:47 +08:00
    @TcDhl 有启用 round robin 吗?
    TcDhl
        79
    TcDhl  
       2022-05-17 02:42:31 +08:00
    @studyingss #78
    咦...这个在哪里设置的
    studyingss
        80
    studyingss  
       2022-05-17 03:44:00 +08:00
    wenjie0032
        81
    wenjie0032  
    OP
       2022-05-17 08:32:32 +08:00
    @xiaoke #77 这个还没配合前端的 ui 联动支持, 后续得空添加吧
    ysc3839
        82
    ysc3839  
       2022-05-17 10:56:27 +08:00 via Android
    关于“app 已损坏”那个提示,前段时间我跟一个朋友研究了下,似乎只需要用 codesign 自签名 (adhoc),打开时就会提示“来自未知开发者”,两次右键打开即可运行。
    nyxsonsleep
        83
    nyxsonsleep  
       2022-05-17 11:12:35 +08:00
    @Macolor21 可以用订阅转换吧
    ysc3839
        84
    ysc3839  
       2022-05-17 11:18:43 +08:00 via Android
    @Buges 关于 DNS 问题,我曾经想过一个方案,需要一个无污染、且对于国内 CDN 域名会返回国内 IP(无论地区是否正确)的 DNS 服务,称其为 DNS A ,本地运营商的 DNS 称其为 DNS B 。具体工作流程是,首先请求 DNS A ,返回的结果如果不是国内 IP 则直接使用,如果是国内 IP ,则再请求 DNS B ,然后使用 DNS B 返回的结果。
    这个方案是否使用代理都适用,好处是避免手动维护黑白名单(不过有可能 DNS A 背后有人维护黑白名单,这个得看 DNA A 的质量如何了),且国内 CDN 可以正常工作,坏处是 DNA A 必须是可信的。
    这个方案我一直没有实施,因为我希望自建一个 DNS A ,但似乎没找到比较简单的方案,当然也有可能是我没仔细找。
    如果信得过第三方的话,那符合 DNS A 条件的 DNS 还是挺多的。
    Honekoneke
        85
    Honekoneke  
       2022-05-17 12:21:41 +08:00
    所以就是说,clash 混合配置这一栏有无推荐或即开即用的写法,这种规则类对普通用户研究门槛有点高…
    AoEiuV020CN
        86
    AoEiuV020CN  
       2022-05-17 12:24:53 +08:00
    @Buges #22 如果完全没有请求国内 dns 服务器,却有正常上网的流量,上面会不会觉得你心虚,在什么见不得光的事,于是针对你?
    TcDhl
        87
    TcDhl  
       2022-05-17 13:28:45 +08:00
    @studyingss #80
    好嘞, 谢谢
    Buges
        88
    Buges  
       2022-05-17 14:00:38 +08:00 via Android
    @ysc3839 你说的这种方案,用 ecs 可以近似达成。DNS A 设为 8888/9999 等支持 ecs 的 doh/dot 解析器,并指定 ecs 的 ip 为 china ip list 中随便选一个确保属于大陆 IP 的段。DNS B 设为 1111 的 doh/dot 解析器(没有 ecs )。DNS C 为普通国内 DNS 服务器。DNS A 和 B 都是全部走代理的,DNS C 直连。
    解析一个域名走以下流程:
    1. 并发向 DNS A 和 DNS B 发出解析请求。
    2. 判断 DNS A 的返回结果是否为大陆 IP ,如果是忽视结果并向 DNS C 再次请求并将结果加入 ipset/nft set 中。如果不是则返回 DNS B 的结果。

    这套方案有以下好处:
    1. 所有非在大陆无 CDN 的域名全部通过境外 dot/doh 解析,防止暴露给任何大陆实体,甚至不会暴露给代理服务提供商(如果代理提供商没有进行 tls sniffing 或启用 ech 的话)。
    2. 所有正常支持 esc 的大陆域名( dnspod 等)都可以智能直连。
    3. DNS A 和 DNS B 并发请求,耗时接近。DNS C 直连速度很快,虽然请求三次但总体对网络响应时间影响较小。
    Buges
        89
    Buges  
       2022-05-17 14:02:13 +08:00 via Android
    @AoEiuV020CN 国内直连的网站都请求国内 dns 服务器啊,没有任何访问境外网站的记录。上面看来绝对是妥妥的良民(当然仔细查肯定还是能发现使用代理)。
    xiaoke
        90
    xiaoke  
       2022-05-17 15:52:38 +08:00 via Android
    @wenjie0032 star+1
    ysc3839
        91
    ysc3839  
       2022-05-17 16:20:12 +08:00 via Android
    @Buges 我就是试过 EDNS Client Subnet 对于某些国内 CDN 不可行才提出这个方案的。当时遇到几个网站在改用 OpenDNS+dnscrypt 后异常缓慢,试过几个公共 DNS 都是这样,最后直接去请求那几个域名的权威 DNS 才发现根本不理会 ECS 。
    因为当时在学校,接下来就改用一些高校公开提供的 DNS 了(只能教育网访问,不保证非本校的可用性)。然后发现那些高校 DNS 虽然对于国内 CDN 能保证返回的是国内 IP ,但是区域是错的,于是就提出了前面那个方案。
    Buges
        92
    Buges  
       2022-05-17 16:29:51 +08:00 via Android
    @ysc3839 这个方案还同时配合 china ip + geosite:cn 双白名单,凡是解析出 cn ip 的直连,凡是在 cn 域名列表的,直连解析。
    既支持全球 CDN 又不支持 ecs 的网站不多吧,有少数的可以手动加白。
    ysc3839
        93
    ysc3839  
       2022-05-17 16:35:13 +08:00 via Android
    @Buges 就是不想手动维护黑白名单,就算要手动维护,有的时候知道是哪个域名都很麻烦,比如使用 app 的情况。
    而且还得考虑有没有现成的工具能实现这种逻辑,不然自己写代码挺麻烦的。我之前调查过,用 overture 这个软件就可以实现,好像只需要改代码的一个地方,把 if 逻辑反过来。
    Buges
        94
    Buges  
       2022-05-17 16:51:23 +08:00 via Android
    @ysc3839 这样的特例很少见,大部分用社区的白名单就都覆盖了,而且偶尔出错就错吧,流量大再加白。
    软件实现用 coredns 写个插件还是挺方便的。
    wwqgtxx
        95
    wwqgtxx  
       2022-05-17 18:43:16 +08:00
    @Buges @ysc3839 @studyingss @yanyumihuang
    话说你们可以试试 https://github.com/MetaCubeX/Clash.Meta/tree/Alpha#dns-configuration 这个版本的核心,可以支持远程 DNS 解析的
    ColinZeb
        96
    ColinZeb  
       2022-05-17 23:20:17 +08:00
    @wwqgtxx 这个是基于 clash premium 吗,我印象 premium 不是没开源吗,怎么做到的
    wwqgtxx
        97
    wwqgtxx  
       2022-05-18 07:18:59 +08:00   ❤️ 1
    @ColinZeb 只不过是重新实现了一遍 clash premium 的部分功能,并没有用 clash premium 的源码
    hanbing135
        98
    hanbing135  
       2022-05-18 20:56:08 +08:00 via Android
    @275761919 可以支持 win11 arm 版本吗
    275761919
        99
    275761919  
       2022-05-19 09:12:28 +08:00
    @hanbing135 应该可以,找个机会
    ericgui
        100
    ericgui  
       2022-05-23 15:18:03 +08:00
    这么快就被喝茶了?
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2394 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 16:00 · PVG 00:00 · LAX 08:00 · JFK 11:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.