Last active
March 28, 2024 11:09
-
-
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