Last active
September 10, 2025 12:41
-
-
Save yayanet/707fcd2d98167f21cfa125c9c7cc569f to your computer and use it in GitHub Desktop.
clash rules
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # <-- custom start | |
| - DOMAIN-SUFFIX,youdao.com,DIRECT | |
| - DOMAIN-SUFFIX,hillinsight.tech,DIRECT | |
| - DOMAIN-SUFFIX,sentry.io,DIRECT | |
| - DOMAIN-SUFFIX,ifconfig.io,Proxy | |
| - DOMAIN-SUFFIX,github.com,Proxy | |
| - DOMAIN-SUFFIX,dlercloud.com,Proxy | |
| - DOMAIN-SUFFIX,dler.io,Proxy | |
| - DOMAIN-SUFFIX,m-team.cc,Proxy | |
| - DOMAIN-SUFFIX,google.com,Proxy | |
| - DOMAIN-SUFFIX,google-analytics.com,Proxy | |
| - DOMAIN-SUFFIX,googleapis.com,Proxy | |
| - DOMAIN-SUFFIX,googleusercontent.com,Proxy | |
| - DOMAIN-SUFFIX,google.com.hk,Proxy | |
| # custom end --> | |
| - RULE-SET,Reject,AdBlock | |
| - RULE-SET,Special,DIRECT | |
| - RULE-SET,Netflix,Netflix | |
| - RULE-SET,Spotify,Spotify | |
| - RULE-SET,YouTube,YouTube | |
| - RULE-SET,Disney Plus,Disney | |
| - RULE-SET,Bilibili,AsianTV | |
| - RULE-SET,iQiyi,AsianTV | |
| - RULE-SET,Letv,AsianTV | |
| - RULE-SET,Netease Music,AsianTV | |
| - RULE-SET,Tencent Video,AsianTV | |
| - RULE-SET,Youku,AsianTV | |
| - RULE-SET,WeTV,AsianTV | |
| - RULE-SET,ABC,GlobalTV | |
| - RULE-SET,Abema TV,GlobalTV | |
| - RULE-SET,Amazon,GlobalTV | |
| - RULE-SET,Apple News,GlobalTV | |
| - RULE-SET,Apple TV,GlobalTV | |
| - RULE-SET,Bahamut,GlobalTV | |
| - RULE-SET,BBC iPlayer,GlobalTV | |
| - RULE-SET,DAZN,GlobalTV | |
| - RULE-SET,Discovery Plus,GlobalTV | |
| - RULE-SET,encoreTVB,GlobalTV | |
| - RULE-SET,Fox Now,GlobalTV | |
| - RULE-SET,Fox+,GlobalTV | |
| - RULE-SET,HBO,GlobalTV | |
| - RULE-SET,Hulu Japan,GlobalTV | |
| - RULE-SET,Hulu,GlobalTV | |
| - RULE-SET,Japonx,GlobalTV | |
| - RULE-SET,JOOX,GlobalTV | |
| - RULE-SET,KKBOX,GlobalTV | |
| - RULE-SET,KKTV,GlobalTV | |
| - RULE-SET,Line TV,GlobalTV | |
| - RULE-SET,myTV SUPER,GlobalTV | |
| - RULE-SET,Pandora,GlobalTV | |
| - RULE-SET,PBS,GlobalTV | |
| - RULE-SET,Pornhub,GlobalTV | |
| - RULE-SET,Soundcloud,GlobalTV | |
| - RULE-SET,ViuTV,GlobalTV | |
| - RULE-SET,Telegram,Telegram | |
| - RULE-SET,Steam,Steam | |
| - RULE-SET,Speedtest,Speedtest | |
| - RULE-SET,PayPal,PayPal | |
| - RULE-SET,Microsoft,Microsoft | |
| - RULE-SET,PROXY,Proxy | |
| - RULE-SET,Apple,Apple | |
| - RULE-SET,Scholar,Scholar | |
| - RULE-SET,Domestic,Domestic | |
| - RULE-SET,Domestic IPs,Domestic | |
| - RULE-SET,LAN,DIRECT | |
| - GEOIP,CN,Domestic | |
| - MATCH,Others | |
| script: | |
| code: | | |
| def main(ctx, metadata): | |
| ruleset_action = {"Reject": "AdBlock", | |
| "Special": "DIRECT", | |
| "Netflix": "Netflix", | |
| "Spotify": "Spotify", | |
| "YouTube": "YouTube", | |
| "Disney Plus": "Disney", | |
| "Bilibili": "AsianTV", | |
| "iQiyi": "AsianTV", | |
| "Letv": "AsianTV", | |
| "Netease Music": "AsianTV", | |
| "Tencent Video": "AsianTV", | |
| "Youku": "AsianTV", | |
| "WeTV": "AsianTV", | |
| "ABC": "GlobalTV", | |
| "Abema TV": "GlobalTV", | |
| "Amazon": "GlobalTV", | |
| "Apple News": "GlobalTV", | |
| "Apple TV": "GlobalTV", | |
| "Bahamut": "GlobalTV", | |
| "BBC iPlayer": "GlobalTV", | |
| "DAZN": "GlobalTV", | |
| "Discovery Plus": "GlobalTV", | |
| "encoreTVB": "GlobalTV", | |
| "Fox Now": "GlobalTV", | |
| "Fox+": "GlobalTV", | |
| "HBO": "GlobalTV", | |
| "Hulu Japan": "GlobalTV", | |
| "Hulu": "GlobalTV", | |
| "Japonx": "GlobalTV", | |
| "JOOX": "GlobalTV", | |
| "KKBOX": "GlobalTV", | |
| "KKTV": "GlobalTV", | |
| "Line TV": "GlobalTV", | |
| "myTV SUPER": "GlobalTV", | |
| "Pandora": "GlobalTV", | |
| "PBS": "GlobalTV", | |
| "Pornhub": "GlobalTV", | |
| "Soundcloud": "GlobalTV", | |
| "ViuTV": "GlobalTV", | |
| "Telegram": "Telegram", | |
| "Steam": "Steam", | |
| "Speedtest": "Speedtest", | |
| "PayPal": "PayPal", | |
| "Microsoft": "Microsoft", | |
| "PROXY": "Proxy", | |
| "Apple": "Apple", | |
| "Scholar": "Scholar", | |
| "Domestic": "Domestic", | |
| "Domestic IPs": "Domestic", | |
| "LAN": "DIRECT" | |
| } | |
| port = int(metadata["dst_port"]) | |
| if metadata["network"] == "UDP": | |
| if port == 443: | |
| ctx.log('[Script] matched QUIC traffic use reject') | |
| return "REJECT" | |
| port_list = [21, 22, 23, 53, 80, 123, 143, 194, 443, 465, 587, 853, 993, 995, 998, 2052, 2053, 2082, 2083, 2086, 2095, 2096, 5222, 5228, 5229, 5230, 8080, 8443, 8880, 8888, 8889] | |
| if port not in port_list: | |
| ctx.log('[Script] not common port use direct') | |
| return "DIRECT" | |
| if metadata["dst_ip"] == "": | |
| metadata["dst_ip"] = ctx.resolve_ip(metadata["host"]) | |
| for ruleset in ruleset_action: | |
| if ctx.rule_providers[ruleset].match(metadata): | |
| return ruleset_action[ruleset] | |
| if metadata["dst_ip"] == "": | |
| return "DIRECT" | |
| code = ctx.geoip(metadata["dst_ip"]) | |
| if code == "CN": | |
| ctx.log('[Script] Geoip CN') | |
| return "Domestic" | |
| ctx.log('[Script] FINAL') | |
| return "Others" | |
| rule-providers: | |
| Reject: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Reject.yaml | |
| path: ./Rules/Reject | |
| interval: 86400 | |
| Special: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Special.yaml | |
| path: ./Rules/Special | |
| interval: 86400 | |
| Netflix: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Netflix.yaml | |
| path: ./Rules/Media/Netflix | |
| interval: 86400 | |
| Spotify: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Spotify.yaml | |
| path: ./Rules/Media/Spotify | |
| interval: 86400 | |
| YouTube: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/YouTube.yaml | |
| path: ./Rules/Media/YouTube | |
| interval: 86400 | |
| Bilibili: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Bilibili.yaml | |
| path: ./Rules/Media/Bilibili | |
| interval: 86400 | |
| iQiyi: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/iQiyi.yaml | |
| path: ./Rules/Media/iQiyi | |
| interval: 86400 | |
| Letv: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Letv.yaml | |
| path: ./Rules/Media/Letv | |
| interval: 86400 | |
| Netease Music: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Netease%20Music.yaml | |
| path: ./Rules/Media/Netease_Music | |
| interval: 86400 | |
| Tencent Video: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Tencent%20Video.yaml | |
| path: ./Rules/Media/Tencent_Video | |
| interval: 86400 | |
| Youku: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Youku.yaml | |
| path: ./Rules/Media/Youku | |
| interval: 86400 | |
| WeTV: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/WeTV.yaml | |
| path: ./Rules/Media/WeTV | |
| interval: 86400 | |
| ABC: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/ABC.yaml | |
| path: ./Rules/Media/ABC | |
| interval: 86400 | |
| Abema TV: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Abema%20TV.yaml | |
| path: ./Rules/Media/Abema_TV | |
| interval: 86400 | |
| Amazon: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Amazon.yaml | |
| path: ./Rules/Media/Amazon | |
| interval: 86400 | |
| Apple News: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Apple%20News.yaml | |
| path: ./Rules/Media/Apple_News | |
| interval: 86400 | |
| Apple TV: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Apple%20TV.yaml | |
| path: ./Rules/Media/Apple_TV | |
| interval: 86400 | |
| Bahamut: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Bahamut.yaml | |
| path: ./Rules/Media/Bahamut | |
| interval: 86400 | |
| BBC iPlayer: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/BBC%20iPlayer.yaml | |
| path: ./Rules/Media/BBC_iPlayer | |
| interval: 86400 | |
| DAZN: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/DAZN.yaml | |
| path: ./Rules/Media/DAZN | |
| interval: 86400 | |
| Discovery Plus: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Discovery%20Plus.yaml | |
| path: ./Rules/Media/Discovery_Plus | |
| interval: 86400 | |
| Disney Plus: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Disney%20Plus.yaml | |
| path: ./Rules/Media/Disney_Plus | |
| interval: 86400 | |
| encoreTVB: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/encoreTVB.yaml | |
| path: ./Rules/Media/encoreTVB | |
| interval: 86400 | |
| Fox Now: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Fox%20Now.yaml | |
| path: ./Rules/Media/Fox_Now | |
| interval: 86400 | |
| Fox+: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Fox%2B.yaml | |
| path: ./Rules/Media/Fox+ | |
| interval: 86400 | |
| HBO: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/HBO.yaml | |
| path: ./Rules/Media/HBO | |
| interval: 86400 | |
| Hulu Japan: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Hulu%20Japan.yaml | |
| path: ./Rules/Media/Hulu_Japan | |
| interval: 86400 | |
| Hulu: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Hulu.yaml | |
| path: ./Rules/Media/Hulu | |
| interval: 86400 | |
| Japonx: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Japonx.yaml | |
| path: ./Rules/Media/Japonx | |
| interval: 86400 | |
| JOOX: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/JOOX.yaml | |
| path: ./Rules/Media/JOOX | |
| interval: 86400 | |
| KKBOX: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/KKBOX.yaml | |
| path: ./Rules/Media/KKBOX | |
| interval: 86400 | |
| KKTV: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/KKTV.yaml | |
| path: ./Rules/Media/KKTV | |
| interval: 86400 | |
| Line TV: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Line%20TV.yaml | |
| path: ./Rules/Media/Line_TV | |
| interval: 86400 | |
| myTV SUPER: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/myTV%20SUPER.yaml | |
| path: ./Rules/Media/myTV_SUPER | |
| interval: 86400 | |
| Pandora: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Pandora.yaml | |
| path: ./Rules/Media/Pandora | |
| interval: 86400 | |
| PBS: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/PBS.yaml | |
| path: ./Rules/Media/PBS | |
| interval: 86400 | |
| Pornhub: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Pornhub.yaml | |
| path: ./Rules/Media/Pornhub | |
| interval: 86400 | |
| Soundcloud: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Soundcloud.yaml | |
| path: ./Rules/Media/Soundcloud | |
| interval: 86400 | |
| ViuTV: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/ViuTV.yaml | |
| path: ./Rules/Media/ViuTV | |
| interval: 86400 | |
| Telegram: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Telegram.yaml | |
| path: ./Rules/Telegram | |
| interval: 86400 | |
| Steam: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Steam.yaml | |
| path: ./Rules/Steam | |
| interval: 86400 | |
| Speedtest: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Speedtest.yaml | |
| path: ./Rules/Speedtest | |
| interval: 86400 | |
| PayPal: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/PayPal.yaml | |
| path: ./Rules/PayPal | |
| interval: 86400 | |
| Microsoft: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Microsoft.yaml | |
| path: ./Rules/Microsoft | |
| interval: 86400 | |
| PROXY: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Proxy.yaml | |
| path: ./Rules/Proxy | |
| interval: 86400 | |
| Domestic: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Domestic.yaml | |
| path: ./Rules/Domestic | |
| interval: 86400 | |
| Apple: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Apple.yaml | |
| path: ./Rules/Apple | |
| interval: 86400 | |
| Scholar: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Scholar.yaml | |
| path: ./Rules/Scholar | |
| interval: 86400 | |
| Domestic IPs: | |
| type: http | |
| behavior: ipcidr | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Domestic%20IPs.yaml | |
| path: ./Rules/Domestic_IPs | |
| interval: 86400 | |
| LAN: | |
| type: http | |
| behavior: classical | |
| url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/LAN.yaml | |
| path: ./Rules/LAN | |
| interval: 86400 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment