mirror of https://github.com/lhie1/Rules.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
490 lines
14 KiB
YAML
490 lines
14 KiB
YAML
- RULE-SET,Reject,AdBlock
|
|
- RULE-SET,Special,DIRECT
|
|
|
|
- RULE-SET,Netflix,Netflix
|
|
- RULE-SET,Spotify,Spotify
|
|
|
|
# - RULE-SET,YouTube Music,YouTube
|
|
- RULE-SET,YouTube,YouTube
|
|
|
|
- RULE-SET,Disney Plus,Disney
|
|
|
|
- RULE-SET,Bilibili,Asian TV
|
|
- RULE-SET,IQ,Asian TV
|
|
- RULE-SET,IQIYI,Asian TV
|
|
- RULE-SET,Letv,Asian TV
|
|
# - RULE-SET,MOO,Asian TV
|
|
- RULE-SET,Netease Music,Asian TV
|
|
- RULE-SET,Tencent Video,Asian TV
|
|
- RULE-SET,Youku,Asian TV
|
|
- RULE-SET,WeTV,Asian TV
|
|
|
|
- RULE-SET,ABC,Global TV
|
|
- RULE-SET,Abema TV,Global TV
|
|
- RULE-SET,Amazon,Global TV
|
|
- RULE-SET,Apple News,Global TV
|
|
- RULE-SET,Apple TV,Global TV
|
|
- RULE-SET,Bahamut,Global TV
|
|
- RULE-SET,BBC iPlayer,Global TV
|
|
- RULE-SET,DAZN,Global TV
|
|
- RULE-SET,Discovery Plus,Global TV
|
|
- RULE-SET,encoreTVB,Global TV
|
|
- RULE-SET,Fox Now,Global TV
|
|
- RULE-SET,Fox+,Global TV
|
|
- RULE-SET,HBO Go,Global TV
|
|
- RULE-SET,HBO Max,Global TV
|
|
- RULE-SET,Hulu Japan,Global TV
|
|
- RULE-SET,Hulu,Global TV
|
|
- RULE-SET,Japonx,Global TV
|
|
- RULE-SET,JOOX,Global TV
|
|
- RULE-SET,KKBOX,Global TV
|
|
- RULE-SET,KKTV,Global TV
|
|
- RULE-SET,Line TV,Global TV
|
|
- RULE-SET,myTV SUPER,Global TV
|
|
- RULE-SET,Pandora,Global TV
|
|
- RULE-SET,PBS,Global TV
|
|
- RULE-SET,Pornhub,Global TV
|
|
- RULE-SET,Soundcloud,Global TV
|
|
- RULE-SET,ViuTV,Global TV
|
|
|
|
- RULE-SET,Telegram,Telegram
|
|
- RULE-SET,Steam,Steam
|
|
- RULE-SET,Speedtest,Speedtest
|
|
- RULE-SET,PayPal,PayPal
|
|
- RULE-SET,Microsoft,Microsoft
|
|
|
|
- RULE-SET,Apple,Apple
|
|
|
|
- RULE-SET,Google FCM,Google FCM
|
|
|
|
- RULE-SET,Scholar,Scholar
|
|
|
|
- RULE-SET,PROXY,Proxy
|
|
|
|
- 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": "Asian TV",
|
|
"IQ": "Asian TV",
|
|
"IQIYI": "Asian TV",
|
|
"Letv": "Asian TV",
|
|
"Netease Music": "Asian TV",
|
|
"Tencent Video": "Asian TV",
|
|
"Youku": "Asian TV",
|
|
"WeTV": "Asian TV",
|
|
"ABC": "Global TV",
|
|
"Abema TV": "Global TV",
|
|
"Amazon": "Global TV",
|
|
"Apple News": "Global TV",
|
|
"Apple TV": "Global TV",
|
|
"Bahamut": "Global TV",
|
|
"BBC iPlayer": "Global TV",
|
|
"DAZN": "Global TV",
|
|
"Discovery Plus": "Global TV",
|
|
"encoreTVB": "Global TV",
|
|
"Fox Now": "Global TV",
|
|
"Fox+": "Global TV",
|
|
"HBO Go": "Global TV",
|
|
"HBO Max": "Global TV",
|
|
"Hulu Japan": "Global TV",
|
|
"Hulu": "Global TV",
|
|
"Japonx": "Global TV",
|
|
"JOOX": "Global TV",
|
|
"KKBOX": "Global TV",
|
|
"KKTV": "Global TV",
|
|
"Line TV": "Global TV",
|
|
"myTV SUPER": "Global TV",
|
|
"Pandora": "Global TV",
|
|
"PBS": "Global TV",
|
|
"Pornhub": "Global TV",
|
|
"Soundcloud": "Global TV",
|
|
"ViuTV": "Global TV",
|
|
"Telegram": "Telegram",
|
|
"Steam": "Steam",
|
|
"Speedtest": "Speedtest",
|
|
"PayPal": "PayPal",
|
|
"Microsoft": "Microsoft",
|
|
"Apple": "Apple",
|
|
"Google FCM": "Google FCM",
|
|
"Scholar": "Scholar",
|
|
"PROXY": "Proxy",
|
|
"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://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Reject.yaml'
|
|
path: ./Rules/Reject
|
|
interval: 86400
|
|
Special:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Special.yaml'
|
|
path: ./Rules/Special
|
|
interval: 86400
|
|
Netflix:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Netflix.yaml'
|
|
path: ./Rules/Media/Netflix
|
|
interval: 86400
|
|
Spotify:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Spotify.yaml'
|
|
path: ./Rules/Media/Spotify
|
|
interval: 86400
|
|
# YouTube Music:
|
|
# type: http
|
|
# behavior: classical
|
|
# url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/YouTube%20Music.yaml'
|
|
# path: ./Rules/Media/YouTube_Music
|
|
# interval: 86400
|
|
YouTube:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/YouTube.yaml'
|
|
path: ./Rules/Media/YouTube
|
|
interval: 86400
|
|
Bilibili:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Bilibili.yaml'
|
|
path: ./Rules/Media/Bilibili
|
|
interval: 86400
|
|
IQ:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/IQ.yaml'
|
|
path: ./Rules/Media/IQI
|
|
interval: 86400
|
|
IQIYI:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/IQIYI.yaml'
|
|
path: ./Rules/Media/IQYI
|
|
interval: 86400
|
|
Letv:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Letv.yaml'
|
|
path: ./Rules/Media/Letv
|
|
interval: 86400
|
|
# MOO:
|
|
# type: http
|
|
# behavior: classical
|
|
# url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/MOO.yaml'
|
|
# path: ./Rules/Media/MOO
|
|
# interval: 86400
|
|
Netease Music:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Netease%20Music.yaml'
|
|
path: ./Rules/Media/Netease_Music
|
|
interval: 86400
|
|
Tencent Video:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Tencent%20Video.yaml'
|
|
path: ./Rules/Media/Tencent_Video
|
|
interval: 86400
|
|
Youku:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Youku.yaml'
|
|
path: ./Rules/Media/Youku
|
|
interval: 86400
|
|
WeTV:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/WeTV.yaml'
|
|
path: ./Rules/Media/WeTV
|
|
interval: 86400
|
|
ABC:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/ABC.yaml'
|
|
path: ./Rules/Media/ABC
|
|
interval: 86400
|
|
Abema TV:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Abema%20TV.yaml'
|
|
path: ./Rules/Media/Abema_TV
|
|
interval: 86400
|
|
Amazon:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Amazon.yaml'
|
|
path: ./Rules/Media/Amazon
|
|
interval: 86400
|
|
Apple News:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Apple%20News.yaml'
|
|
path: ./Rules/Media/Apple_News
|
|
interval: 86400
|
|
Apple TV:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Apple%20TV.yaml'
|
|
path: ./Rules/Media/Apple_TV
|
|
interval: 86400
|
|
Bahamut:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Bahamut.yaml'
|
|
path: ./Rules/Media/Bahamut
|
|
interval: 86400
|
|
BBC iPlayer:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/BBC%20iPlayer.yaml'
|
|
path: ./Rules/Media/BBC_iPlayer
|
|
interval: 86400
|
|
DAZN:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/DAZN.yaml'
|
|
path: ./Rules/Media/DAZN
|
|
interval: 86400
|
|
Discovery Plus:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Discovery%20Plus.yaml'
|
|
path: ./Rules/Media/Discovery_Plus
|
|
interval: 86400
|
|
Disney Plus:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Disney%20Plus.yaml'
|
|
path: ./Rules/Media/Disney_Plus
|
|
interval: 86400
|
|
encoreTVB:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/encoreTVB.yaml'
|
|
path: ./Rules/Media/encoreTVB
|
|
interval: 86400
|
|
Fox Now:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Fox%20Now.yaml'
|
|
path: ./Rules/Media/Fox_Now
|
|
interval: 86400
|
|
Fox+:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Fox%2B.yaml'
|
|
path: ./Rules/Media/Fox+
|
|
interval: 86400
|
|
HBO Go:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/HBO%20Go.yaml'
|
|
path: ./Rules/Media/HBO_Go
|
|
interval: 86400
|
|
HBO Max:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/HBO%20Max.yaml'
|
|
path: ./Rules/Media/HBO_Max
|
|
interval: 86400
|
|
Hulu Japan:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Hulu%20Japan.yaml'
|
|
path: ./Rules/Media/Hulu_Japan
|
|
interval: 86400
|
|
Hulu:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Hulu.yaml'
|
|
path: ./Rules/Media/Hulu
|
|
interval: 86400
|
|
Japonx:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Japonx.yaml'
|
|
path: ./Rules/Media/Japonx
|
|
interval: 86400
|
|
JOOX:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/JOOX.yaml'
|
|
path: ./Rules/Media/JOOX
|
|
interval: 86400
|
|
KKBOX:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/KKBOX.yaml'
|
|
path: ./Rules/Media/KKBOX
|
|
interval: 86400
|
|
KKTV:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/KKTV.yaml'
|
|
path: ./Rules/Media/KKTV
|
|
interval: 86400
|
|
Line TV:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Line%20TV.yaml'
|
|
path: ./Rules/Media/Line_TV
|
|
interval: 86400
|
|
myTV SUPER:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/myTV%20SUPER.yaml'
|
|
path: ./Rules/Media/myTV_SUPER
|
|
interval: 86400
|
|
Pandora:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Pandora.yaml'
|
|
path: ./Rules/Media/Pandora
|
|
interval: 86400
|
|
PBS:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/PBS.yaml'
|
|
path: ./Rules/Media/PBS
|
|
interval: 86400
|
|
Pornhub:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Pornhub.yaml'
|
|
path: ./Rules/Media/Pornhub
|
|
interval: 86400
|
|
Soundcloud:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Soundcloud.yaml'
|
|
path: ./Rules/Media/Soundcloud
|
|
interval: 86400
|
|
ViuTV:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/ViuTV.yaml'
|
|
path: ./Rules/Media/ViuTV
|
|
interval: 86400
|
|
Telegram:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Telegram.yaml'
|
|
path: ./Rules/Telegram
|
|
interval: 86400
|
|
Steam:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Steam.yaml'
|
|
path: ./Rules/Steam
|
|
interval: 86400
|
|
Speedtest:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Speedtest.yaml'
|
|
path: ./Rules/Speedtest
|
|
interval: 86400
|
|
PayPal:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/PayPal.yaml'
|
|
path: ./Rules/PayPal
|
|
interval: 86400
|
|
Microsoft:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Microsoft.yaml'
|
|
path: ./Rules/Microsoft
|
|
interval: 86400
|
|
PROXY:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Proxy.yaml'
|
|
path: ./Rules/Proxy
|
|
interval: 86400
|
|
Domestic:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Domestic.yaml'
|
|
path: ./Rules/Domestic
|
|
interval: 86400
|
|
Apple:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Apple.yaml'
|
|
path: ./Rules/Apple
|
|
interval: 86400
|
|
Google FCM:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Google%20FCM.yaml'
|
|
path: ./Rules/Google FCM
|
|
interval: 86400
|
|
Scholar:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Scholar.yaml'
|
|
path: ./Rules/Scholar
|
|
interval: 86400
|
|
Domestic IPs:
|
|
type: http
|
|
behavior: ipcidr
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Domestic%20IPs.yaml'
|
|
path: ./Rules/Domestic_IPs
|
|
interval: 86400
|
|
LAN:
|
|
type: http
|
|
behavior: classical
|
|
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/LAN.yaml'
|
|
path: ./Rules/LAN
|
|
interval: 86400
|