Initial commit of sub2proxy with visual dashboard

This commit is contained in:
jocayn
2026-06-13 15:46:30 +08:00
commit 0411f4672a
16 changed files with 5956 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
node_modules/
out/
package-lock.json
cache.db
.DS_Store
+744
View File
@@ -0,0 +1,744 @@
{
"log": {
"level": "info",
"timestamp": true
},
"experimental": {
"cache_file": {
"enabled": true,
"path": "cache.db",
"store_fakeip": true
},
"clash_api": {
"external_controller": "127.0.0.1:9090",
"default_mode": "rule"
}
},
"dns": {
"servers": [
{
"type": "udp",
"tag": "dns-local",
"server": "223.5.5.5",
"server_port": 53
},
{
"type": "udp",
"tag": "dns-local-backup",
"server": "119.29.29.29",
"server_port": 53
},
{
"type": "https",
"tag": "dns-remote",
"server": "1.1.1.1",
"path": "/dns-query",
"tls": {
"enabled": true,
"server_name": "cloudflare-dns.com"
},
"detour": "Proxy"
},
{
"type": "fakeip",
"tag": "dns-fakeip",
"inet4_range": "198.18.0.0/15",
"inet6_range": "fc00::/18"
}
],
"rules": [
{
"clash_mode": "Direct",
"action": "route",
"server": "dns-local"
},
{
"clash_mode": "Global",
"action": "route",
"server": "dns-remote"
},
{
"rule_set": [
"geosite-cn"
],
"action": "route",
"server": "dns-local"
},
{
"rule_set": [
"geosite-openai",
"geosite-google-gemini",
"geosite-anthropic",
"geosite-telegram",
"geosite-youtube",
"geosite-google",
"geosite-twitter",
"geosite-github",
"geosite-netflix",
"geosite-disney",
"geosite-tiktok",
"geosite-spotify",
"geosite-geolocation-!cn"
],
"action": "route",
"server": "dns-fakeip"
},
{
"query_type": [
"A",
"AAAA"
],
"action": "route",
"server": "dns-fakeip"
}
],
"final": "dns-remote"
},
"inbounds": [
{
"type": "tproxy",
"tag": "tproxy-in",
"listen": "::",
"listen_port": 7893
},
{
"type": "mixed",
"tag": "mixed-in",
"listen": "0.0.0.0",
"listen_port": 7890
}
],
"outbounds": [
{
"type": "hysteria2",
"tag": "美国1-hy2",
"server": "64.69.34.207",
"server_port": 4439,
"up_mbps": 200,
"down_mbps": 500,
"password": "Se7RAuFZ8Lzg",
"tls": {
"enabled": true,
"server_name": "hy2.jocayn.qzz.io",
"insecure": false,
"alpn": [
"h3"
]
}
},
{
"type": "vless",
"tag": "美国1-vless",
"server": "64.69.34.207",
"server_port": 19150,
"uuid": "b9136671-ef40-4b5c-a007-dcf996ec2466",
"flow": "xtls-rprx-vision",
"network": "tcp",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "aws.amazon.com",
"insecure": true,
"alpn": [
"h2",
"http/1.1"
],
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "-dTj4YHBzV5tpgVpD4mgXzlAESmxjOoyyn6waky1Dkw",
"short_id": ""
}
}
},
{
"type": "tuic",
"tag": "美国1-Tuic",
"server": "64.69.34.207",
"server_port": 4438,
"uuid": "ca4d81b1-f8d9-4533-8b61-c15e1da91697",
"password": "ca4d81b1-f8d9-4533-8b61-c15e1da91697",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"heartbeat": "10s",
"tls": {
"enabled": true,
"disable_sni": true,
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "vless",
"tag": "美国2-vless",
"server": "107.174.208.133",
"server_port": 34532,
"uuid": "1b8889b6-bb2f-4735-a401-4e53bdc81c51",
"flow": "xtls-rprx-vision",
"network": "tcp",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "www.cloudflare.com",
"insecure": true,
"alpn": [
"h2",
"http/1.1"
],
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "R31tFIfDoM8yjrCfQAQqQ8QhFt6KuGjhhtQ3oSnPbAI",
"short_id": ""
}
}
},
{
"type": "tuic",
"tag": "美国2-Tuic",
"server": "107.174.208.133",
"server_port": 4438,
"uuid": "161eaa3d-cf5b-4c07-ab36-f4f58536d081",
"password": "161eaa3d-cf5b-4c07-ab36-f4f58536d081",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"heartbeat": "10s",
"tls": {
"enabled": true,
"disable_sni": true,
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "tuic",
"tag": "HK-Tuic",
"server": "154.94.234.168",
"server_port": 63155,
"uuid": "ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef",
"password": "ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"heartbeat": "10s",
"tls": {
"enabled": true,
"disable_sni": true,
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "vless",
"tag": "HK-vless[最高2.5mb/s]",
"server": "154.94.234.168",
"server_port": 63159,
"uuid": "27485652-f88d-48e8-b4ee-3759ac63ce80",
"flow": "xtls-rprx-vision",
"network": "tcp",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "www.amazon.com",
"insecure": true,
"alpn": [
"h2",
"http/1.1"
],
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "Jq_MTHf-vZLqpvPaViXUSZfQJ3oLM7DYeqBrtH8qlgs",
"short_id": ""
}
}
},
{
"type": "hysteria2",
"tag": "HK-Hy2",
"server": "154.94.234.168",
"server_port": 4438,
"up_mbps": 15,
"down_mbps": 15,
"password": "09e70d0d-fb51-458a-a650-5922eaefcc24",
"tls": {
"enabled": true,
"server_name": "hy2.jocay.icu",
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "selector",
"tag": "Proxy",
"outbounds": [
"美国1-Tuic",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2",
"direct"
],
"default": "美国1-Tuic"
},
{
"type": "urltest",
"tag": "Auto",
"outbounds": [
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless"
],
"url": "https://www.gstatic.com/generate_204",
"interval": "10m",
"tolerance": 50
},
{
"type": "selector",
"tag": "GPT",
"outbounds": [
"美国1-Tuic",
"Proxy",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2"
],
"default": "美国1-Tuic"
},
{
"type": "selector",
"tag": "Streaming",
"outbounds": [
"Proxy",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2",
"direct"
],
"default": "Proxy"
},
{
"type": "selector",
"tag": "Steam",
"outbounds": [
"direct",
"Proxy",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2"
],
"default": "direct"
},
{
"type": "selector",
"tag": "Emby",
"outbounds": [
"direct",
"Proxy",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2"
],
"default": "direct"
},
{
"type": "selector",
"tag": "Domestic",
"outbounds": [
"direct",
"Proxy"
],
"default": "direct"
},
{
"type": "selector",
"tag": "Final",
"outbounds": [
"Proxy",
"direct",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2"
],
"default": "Proxy"
},
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
}
],
"route": {
"rules": [
{
"action": "sniff"
},
{
"protocol": "dns",
"action": "hijack-dns"
},
{
"ip_is_private": true,
"action": "route",
"outbound": "direct"
},
{
"clash_mode": "Direct",
"action": "route",
"outbound": "direct"
},
{
"clash_mode": "Global",
"action": "route",
"outbound": "Proxy"
},
{
"rule_set": [
"geosite-openai",
"geosite-google-gemini",
"geosite-anthropic"
],
"action": "route",
"outbound": "GPT"
},
{
"domain_suffix": [
"chatgpt.com",
"openai.com",
"oaistatic.com",
"oaiusercontent.com",
"anthropic.com",
"claude.ai",
"claudeusercontent.com",
"gemini.google.com",
"perplexity.ai",
"poe.com"
],
"action": "route",
"outbound": "GPT"
},
{
"rule_set": [
"geosite-telegram",
"geosite-youtube",
"geosite-google",
"geosite-twitter",
"geosite-github",
"geosite-geolocation-!cn"
],
"action": "route",
"outbound": "Proxy"
},
{
"rule_set": [
"geosite-netflix",
"geosite-disney",
"geosite-tiktok",
"geosite-spotify"
],
"action": "route",
"outbound": "Streaming"
},
{
"rule_set": [
"geosite-steam"
],
"action": "route",
"outbound": "Steam"
},
{
"domain_suffix": [
"mobaiemby.site",
"recmata.net",
"emby.media",
"jellyfin.org"
],
"action": "route",
"outbound": "Emby"
},
{
"rule_set": [
"geosite-apple",
"geosite-microsoft",
"geosite-onedrive"
],
"action": "route",
"outbound": "Domestic"
},
{
"rule_set": [
"geosite-bilibili",
"geosite-cn",
"geoip-cn"
],
"action": "route",
"outbound": "Domestic"
}
],
"rule_set": [
{
"type": "remote",
"tag": "geosite-openai",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-openai.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-google-gemini",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-google-gemini.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-anthropic",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-anthropic.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-telegram",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-telegram.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-youtube",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-youtube.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-google",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-google.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-twitter",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-twitter.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-github",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-github.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-netflix",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-netflix.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-disney",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-disney.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-tiktok",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-tiktok.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-spotify",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-spotify.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-apple",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-apple.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-microsoft",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-microsoft.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-onedrive",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-onedrive.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-bilibili",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-bilibili.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-steam",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-steam.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-geolocation-!cn",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-!cn.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-cn",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-cn.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geoip-cn",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
}
],
"final": "Final",
"auto_detect_interface": true,
"find_process": true,
"default_domain_resolver": "dns-local"
}
}
+750
View File
@@ -0,0 +1,750 @@
{
"log": {
"level": "info",
"timestamp": true
},
"experimental": {
"cache_file": {
"enabled": true,
"path": "cache.db",
"store_fakeip": true
},
"clash_api": {
"external_controller": "127.0.0.1:9090",
"default_mode": "rule"
}
},
"dns": {
"servers": [
{
"type": "udp",
"tag": "dns-local",
"server": "223.5.5.5",
"server_port": 53
},
{
"type": "udp",
"tag": "dns-local-backup",
"server": "119.29.29.29",
"server_port": 53
},
{
"type": "https",
"tag": "dns-remote",
"server": "1.1.1.1",
"path": "/dns-query",
"tls": {
"enabled": true,
"server_name": "cloudflare-dns.com"
},
"detour": "Proxy"
},
{
"type": "fakeip",
"tag": "dns-fakeip",
"inet4_range": "198.18.0.0/15",
"inet6_range": "fc00::/18"
}
],
"rules": [
{
"clash_mode": "Direct",
"action": "route",
"server": "dns-local"
},
{
"clash_mode": "Global",
"action": "route",
"server": "dns-remote"
},
{
"rule_set": [
"geosite-cn"
],
"action": "route",
"server": "dns-local"
},
{
"rule_set": [
"geosite-openai",
"geosite-google-gemini",
"geosite-anthropic",
"geosite-telegram",
"geosite-youtube",
"geosite-google",
"geosite-twitter",
"geosite-github",
"geosite-netflix",
"geosite-disney",
"geosite-tiktok",
"geosite-spotify",
"geosite-geolocation-!cn"
],
"action": "route",
"server": "dns-fakeip"
},
{
"query_type": [
"A",
"AAAA"
],
"action": "route",
"server": "dns-fakeip"
}
],
"final": "dns-remote"
},
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"address": [
"172.19.0.1/30",
"fd00::1/126"
],
"mtu": 9000,
"auto_route": true,
"strict_route": true,
"stack": "mixed"
},
{
"type": "mixed",
"tag": "mixed-in",
"listen": "127.0.0.1",
"listen_port": 7890
}
],
"outbounds": [
{
"type": "hysteria2",
"tag": "美国1-hy2",
"server": "64.69.34.207",
"server_port": 4439,
"up_mbps": 200,
"down_mbps": 500,
"password": "Se7RAuFZ8Lzg",
"tls": {
"enabled": true,
"server_name": "hy2.jocayn.qzz.io",
"insecure": false,
"alpn": [
"h3"
]
}
},
{
"type": "vless",
"tag": "美国1-vless",
"server": "64.69.34.207",
"server_port": 19150,
"uuid": "b9136671-ef40-4b5c-a007-dcf996ec2466",
"flow": "xtls-rprx-vision",
"network": "tcp",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "aws.amazon.com",
"insecure": true,
"alpn": [
"h2",
"http/1.1"
],
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "-dTj4YHBzV5tpgVpD4mgXzlAESmxjOoyyn6waky1Dkw",
"short_id": ""
}
}
},
{
"type": "tuic",
"tag": "美国1-Tuic",
"server": "64.69.34.207",
"server_port": 4438,
"uuid": "ca4d81b1-f8d9-4533-8b61-c15e1da91697",
"password": "ca4d81b1-f8d9-4533-8b61-c15e1da91697",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"heartbeat": "10s",
"tls": {
"enabled": true,
"disable_sni": true,
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "vless",
"tag": "美国2-vless",
"server": "107.174.208.133",
"server_port": 34532,
"uuid": "1b8889b6-bb2f-4735-a401-4e53bdc81c51",
"flow": "xtls-rprx-vision",
"network": "tcp",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "www.cloudflare.com",
"insecure": true,
"alpn": [
"h2",
"http/1.1"
],
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "R31tFIfDoM8yjrCfQAQqQ8QhFt6KuGjhhtQ3oSnPbAI",
"short_id": ""
}
}
},
{
"type": "tuic",
"tag": "美国2-Tuic",
"server": "107.174.208.133",
"server_port": 4438,
"uuid": "161eaa3d-cf5b-4c07-ab36-f4f58536d081",
"password": "161eaa3d-cf5b-4c07-ab36-f4f58536d081",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"heartbeat": "10s",
"tls": {
"enabled": true,
"disable_sni": true,
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "tuic",
"tag": "HK-Tuic",
"server": "154.94.234.168",
"server_port": 63155,
"uuid": "ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef",
"password": "ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"heartbeat": "10s",
"tls": {
"enabled": true,
"disable_sni": true,
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "vless",
"tag": "HK-vless[最高2.5mb/s]",
"server": "154.94.234.168",
"server_port": 63159,
"uuid": "27485652-f88d-48e8-b4ee-3759ac63ce80",
"flow": "xtls-rprx-vision",
"network": "tcp",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "www.amazon.com",
"insecure": true,
"alpn": [
"h2",
"http/1.1"
],
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "Jq_MTHf-vZLqpvPaViXUSZfQJ3oLM7DYeqBrtH8qlgs",
"short_id": ""
}
}
},
{
"type": "hysteria2",
"tag": "HK-Hy2",
"server": "154.94.234.168",
"server_port": 4438,
"up_mbps": 15,
"down_mbps": 15,
"password": "09e70d0d-fb51-458a-a650-5922eaefcc24",
"tls": {
"enabled": true,
"server_name": "hy2.jocay.icu",
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "selector",
"tag": "Proxy",
"outbounds": [
"美国1-Tuic",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2",
"direct"
],
"default": "美国1-Tuic"
},
{
"type": "urltest",
"tag": "Auto",
"outbounds": [
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless"
],
"url": "https://www.gstatic.com/generate_204",
"interval": "10m",
"tolerance": 50
},
{
"type": "selector",
"tag": "GPT",
"outbounds": [
"美国1-Tuic",
"Proxy",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2"
],
"default": "美国1-Tuic"
},
{
"type": "selector",
"tag": "Streaming",
"outbounds": [
"Proxy",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2",
"direct"
],
"default": "Proxy"
},
{
"type": "selector",
"tag": "Steam",
"outbounds": [
"direct",
"Proxy",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2"
],
"default": "direct"
},
{
"type": "selector",
"tag": "Emby",
"outbounds": [
"direct",
"Proxy",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2"
],
"default": "direct"
},
{
"type": "selector",
"tag": "Domestic",
"outbounds": [
"direct",
"Proxy"
],
"default": "direct"
},
{
"type": "selector",
"tag": "Final",
"outbounds": [
"Proxy",
"direct",
"Auto",
"美国1-Tuic",
"美国1-vless",
"美国1-hy2",
"美国2-Tuic",
"美国2-vless",
"HK-Tuic",
"HK-vless[最高2.5mb/s]",
"HK-Hy2"
],
"default": "Proxy"
},
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
}
],
"route": {
"rules": [
{
"action": "sniff"
},
{
"protocol": "dns",
"action": "hijack-dns"
},
{
"ip_is_private": true,
"action": "route",
"outbound": "direct"
},
{
"clash_mode": "Direct",
"action": "route",
"outbound": "direct"
},
{
"clash_mode": "Global",
"action": "route",
"outbound": "Proxy"
},
{
"rule_set": [
"geosite-openai",
"geosite-google-gemini",
"geosite-anthropic"
],
"action": "route",
"outbound": "GPT"
},
{
"domain_suffix": [
"chatgpt.com",
"openai.com",
"oaistatic.com",
"oaiusercontent.com",
"anthropic.com",
"claude.ai",
"claudeusercontent.com",
"gemini.google.com",
"perplexity.ai",
"poe.com"
],
"action": "route",
"outbound": "GPT"
},
{
"rule_set": [
"geosite-telegram",
"geosite-youtube",
"geosite-google",
"geosite-twitter",
"geosite-github",
"geosite-geolocation-!cn"
],
"action": "route",
"outbound": "Proxy"
},
{
"rule_set": [
"geosite-netflix",
"geosite-disney",
"geosite-tiktok",
"geosite-spotify"
],
"action": "route",
"outbound": "Streaming"
},
{
"rule_set": [
"geosite-steam"
],
"action": "route",
"outbound": "Steam"
},
{
"domain_suffix": [
"mobaiemby.site",
"recmata.net",
"emby.media",
"jellyfin.org"
],
"action": "route",
"outbound": "Emby"
},
{
"rule_set": [
"geosite-apple",
"geosite-microsoft",
"geosite-onedrive"
],
"action": "route",
"outbound": "Domestic"
},
{
"rule_set": [
"geosite-bilibili",
"geosite-cn",
"geoip-cn"
],
"action": "route",
"outbound": "Domestic"
}
],
"rule_set": [
{
"type": "remote",
"tag": "geosite-openai",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-openai.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-google-gemini",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-google-gemini.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-anthropic",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-anthropic.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-telegram",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-telegram.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-youtube",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-youtube.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-google",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-google.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-twitter",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-twitter.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-github",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-github.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-netflix",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-netflix.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-disney",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-disney.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-tiktok",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-tiktok.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-spotify",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-spotify.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-apple",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-apple.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-microsoft",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-microsoft.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-onedrive",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-onedrive.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-bilibili",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-bilibili.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-steam",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-steam.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-geolocation-!cn",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-!cn.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geosite-cn",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-cn.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
},
{
"type": "remote",
"tag": "geoip-cn",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs",
"update_interval": "24h",
"http_client": {
"detour": "Proxy"
}
}
],
"final": "Final",
"auto_detect_interface": true,
"find_process": true,
"default_domain_resolver": "dns-local"
}
}
+580
View File
@@ -0,0 +1,580 @@
{
"log": {
"level": "info",
"timestamp": true
},
"dns": {
"servers": [
{
"type": "udp",
"tag": "local-dns",
"server": "223.5.5.5"
},
{
"type": "udp",
"tag": "local-dns-backup",
"server": "119.29.29.29"
},
{
"type": "https",
"tag": "remote-dns",
"server": "cloudflare-dns.com",
"path": "/dns-query",
"domain_resolver": "local-dns"
}
],
"rules": [
{
"domain": [
"localhost"
],
"domain_suffix": [
"local",
"lan"
],
"action": "route",
"server": "local-dns"
},
{
"domain_suffix": [
".cn",
"12306.cn",
"360.cn",
"alicdn.com",
"alipay.com",
"aliyun.com",
"amap.com",
"baidu.com",
"bdstatic.com",
"bilibili.com",
"biliapi.net",
"bilivideo.com",
"ctrip.com",
"douban.com",
"douyin.com",
"edu.cn",
"gov.cn",
"iqiyi.com",
"jd.com",
"meituan.com",
"mi.com",
"netease.com",
"qq.com",
"sina.com.cn",
"snssdk.com",
"sohu.com",
"taobao.com",
"tencent.com",
"tmall.com",
"weibo.com",
"weixin.qq.com",
"xiaomi.com",
"youku.com",
"zhihu.com"
],
"action": "route",
"server": "local-dns"
},
{
"domain_suffix": [
"ai.com",
"ai.google.dev",
"aistudio.google.com",
"anthropic.com",
"chatgpt.com",
"claude.ai",
"claudeusercontent.com",
"gemini.google.com",
"generativelanguage.googleapis.com",
"makersuite.google.com",
"notebooklm.google.com",
"oaistatic.com",
"oaiusercontent.com",
"openai.com",
"openaiapi-site.azureedge.net",
"openaicom-api-bdcpf8c6d2e9atf6.z01.azurefd.net",
"perplexity.ai",
"poe.com"
],
"action": "route",
"server": "remote-dns"
}
],
"final": "remote-dns",
"strategy": "prefer_ipv4"
},
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"address": [
"172.19.0.1/30",
"fdfe:dcba:9876::1/126"
],
"mtu": 9000,
"auto_route": true,
"strict_route": true,
"stack": "mixed"
},
{
"type": "mixed",
"tag": "mixed-in",
"listen": "127.0.0.1",
"listen_port": 7890
}
],
"outbounds": [
{
"type": "selector",
"tag": "Proxy",
"outbounds": [
"Auto",
"US1-VLESS",
"US1-TUIC",
"US1-HY2",
"US2-VLESS",
"US2-TUIC",
"HK-VLESS",
"HK-HY2",
"HK-TUIC",
"direct"
],
"default": "Auto"
},
{
"type": "selector",
"tag": "GPT",
"outbounds": [
"Proxy",
"Auto",
"US1-VLESS",
"US1-TUIC",
"US1-HY2",
"US2-VLESS",
"US2-TUIC",
"HK-VLESS",
"HK-HY2",
"HK-TUIC",
"direct"
],
"default": "Proxy"
},
{
"type": "selector",
"tag": "Steam",
"outbounds": [
"direct",
"Proxy",
"Auto",
"US1-VLESS",
"US1-TUIC",
"US2-VLESS",
"US2-TUIC",
"HK-VLESS",
"HK-HY2",
"HK-TUIC"
],
"default": "direct"
},
{
"type": "selector",
"tag": "Emby",
"outbounds": [
"direct",
"Proxy",
"Auto",
"US1-VLESS",
"US1-TUIC",
"US1-HY2",
"US2-VLESS",
"US2-TUIC",
"HK-VLESS",
"HK-HY2",
"HK-TUIC"
],
"default": "direct"
},
{
"type": "selector",
"tag": "China",
"outbounds": [
"direct",
"Proxy",
"Auto",
"US1-VLESS",
"US2-VLESS",
"HK-VLESS"
],
"default": "direct"
},
{
"type": "selector",
"tag": "Final",
"outbounds": [
"Proxy",
"direct",
"Auto",
"US1-VLESS",
"US1-TUIC",
"US1-HY2",
"US2-VLESS",
"US2-TUIC",
"HK-VLESS",
"HK-HY2",
"HK-TUIC"
],
"default": "Proxy"
},
{
"type": "urltest",
"tag": "Auto",
"outbounds": [
"US1-VLESS",
"US1-TUIC",
"US1-HY2",
"US2-VLESS",
"US2-TUIC",
"HK-VLESS",
"HK-HY2",
"HK-TUIC"
],
"url": "https://www.gstatic.com/generate_204",
"interval": "10m",
"tolerance": 50
},
{
"type": "vless",
"tag": "US1-VLESS",
"server": "64.69.34.207",
"server_port": 19150,
"uuid": "b9136671-ef40-4b5c-a007-dcf996ec2466",
"flow": "xtls-rprx-vision",
"network": "tcp",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "aws.amazon.com",
"insecure": true,
"alpn": [
"h2",
"http/1.1"
],
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "-dTj4YHBzV5tpgVpD4mgXzlAESmxjOoyyn6waky1Dkw",
"short_id": ""
}
}
},
{
"type": "tuic",
"tag": "US1-TUIC",
"server": "64.69.34.207",
"server_port": 4438,
"uuid": "ca4d81b1-f8d9-4533-8b61-c15e1da91697",
"password": "ca4d81b1-f8d9-4533-8b61-c15e1da91697",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"tls": {
"enabled": true,
"disable_sni": true,
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "hysteria2",
"tag": "US1-HY2",
"server": "64.69.34.207",
"server_port": 4439,
"up_mbps": 200,
"down_mbps": 500,
"password": "Se7RAuFZ8Lzg",
"tls": {
"enabled": true,
"server_name": "hy2.jocayn.qzz.io",
"insecure": false,
"alpn": [
"h3"
]
}
},
{
"type": "vless",
"tag": "US2-VLESS",
"server": "107.174.208.133",
"server_port": 34532,
"uuid": "1b8889b6-bb2f-4735-a401-4e53bdc81c51",
"flow": "xtls-rprx-vision",
"network": "tcp",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "www.cloudflare.com",
"insecure": true,
"alpn": [
"h2",
"http/1.1"
],
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "R31tFIfDoM8yjrCfQAQqQ8QhFt6KuGjhhtQ3oSnPbAI",
"short_id": ""
}
}
},
{
"type": "tuic",
"tag": "US2-TUIC",
"server": "107.174.208.133",
"server_port": 4438,
"uuid": "161eaa3d-cf5b-4c07-ab36-f4f58536d081",
"password": "161eaa3d-cf5b-4c07-ab36-f4f58536d081",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"tls": {
"enabled": true,
"disable_sni": true,
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "vless",
"tag": "HK-VLESS",
"server": "154.94.234.168",
"server_port": 63159,
"uuid": "27485652-f88d-48e8-b4ee-3759ac63ce80",
"flow": "xtls-rprx-vision",
"network": "tcp",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "www.amazon.com",
"insecure": true,
"alpn": [
"h2",
"http/1.1"
],
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "Jq_MTHf-vZLqpvPaViXUSZfQJ3oLM7DYeqBrtH8qlgs",
"short_id": ""
}
}
},
{
"type": "hysteria2",
"tag": "HK-HY2",
"server": "154.94.234.168",
"server_port": 4438,
"up_mbps": 15,
"down_mbps": 15,
"password": "09e70d0d-fb51-458a-a650-5922eaefcc24",
"tls": {
"enabled": true,
"server_name": "hy2.jocay.icu",
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "tuic",
"tag": "HK-TUIC",
"server": "154.94.234.168",
"server_port": 63155,
"uuid": "ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef",
"password": "ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"tls": {
"enabled": true,
"disable_sni": true,
"insecure": true,
"alpn": [
"h3"
]
}
},
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
}
],
"route": {
"rules": [
{
"action": "sniff"
},
{
"protocol": "dns",
"action": "hijack-dns"
},
{
"ip_is_private": true,
"action": "route",
"outbound": "direct"
},
{
"domain": [
"localhost"
],
"domain_suffix": [
"local",
"lan"
],
"action": "route",
"outbound": "direct"
},
{
"domain_suffix": [
"adnxs.com",
"adsrvr.org",
"doubleclick.net",
"googleadservices.com",
"googlesyndication.com",
"scorecardresearch.com"
],
"action": "reject"
},
{
"domain_suffix": [
"ai.com",
"ai.google.dev",
"aistudio.google.com",
"anthropic.com",
"chatgpt.com",
"claude.ai",
"claudeusercontent.com",
"gemini.google.com",
"generativelanguage.googleapis.com",
"makersuite.google.com",
"notebooklm.google.com",
"oaistatic.com",
"oaiusercontent.com",
"openai.com",
"openaiapi-site.azureedge.net",
"openaicom-api-bdcpf8c6d2e9atf6.z01.azurefd.net",
"perplexity.ai",
"poe.com"
],
"action": "route",
"outbound": "GPT"
},
{
"domain_suffix": [
"emby.media",
"emby.wtf",
"jellyfin.org",
"makima.online",
"mobaiemby.site",
"recmata.net"
],
"action": "route",
"outbound": "Emby"
},
{
"process_name": [
"steam.exe",
"steamwebhelper.exe"
],
"action": "route",
"outbound": "Steam"
},
{
"domain_suffix": [
"steam-chat.com",
"steamcdn-a.akamaihd.net",
"steamcommunity.com",
"steamcontent.com",
"steamgames.com",
"steampowered.com",
"steamserver.net",
"underlords.com",
"valvesoftware.com"
],
"action": "route",
"outbound": "Steam"
},
{
"domain_suffix": [
".cn",
"12306.cn",
"360.cn",
"alicdn.com",
"alipay.com",
"aliyun.com",
"amap.com",
"baidu.com",
"bdstatic.com",
"bilibili.com",
"biliapi.net",
"bilivideo.com",
"ctrip.com",
"douban.com",
"douyin.com",
"edu.cn",
"gov.cn",
"iqiyi.com",
"jd.com",
"meituan.com",
"mi.com",
"netease.com",
"qq.com",
"sina.com.cn",
"snssdk.com",
"sohu.com",
"taobao.com",
"tencent.com",
"tmall.com",
"weibo.com",
"weixin.qq.com",
"xiaomi.com",
"youku.com",
"zhihu.com"
],
"action": "route",
"outbound": "China"
}
],
"final": "Final",
"auto_detect_interface": true,
"find_process": true,
"default_domain_resolver": "local-dns"
},
"experimental": {
"cache_file": {
"enabled": true,
"store_dns": true
},
"clash_api": {
"external_controller": "127.0.0.1:9090",
"default_mode": "Rule"
}
}
}
+226
View File
@@ -0,0 +1,226 @@
mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
ipv6: true
unified-delay: true
tcp-concurrent: true
external-controller: '127.0.0.1:9090'
profile:
store-selected: true
store-fake-ip: true
sniffer:
enable: true
force-dns-mapping: true
parse-pure-ip: true
override-destination: true
sniff:
TLS:
ports: [443, 8443]
HTTP:
ports: [80, 8080-8880]
override-destination: true
QUIC:
ports: [443, 8443]
skip-domain:
- '+.push.apple.com'
dns:
enable: true
listen: 0.0.0.0:1053
cache-algorithm: arc
prefer-h3: false
ipv6: true
default-nameserver: [223.5.5.5, 119.29.29.29]
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '*.local'
- 'localhost.ptlogin2.qq.com'
- '+.msftconnecttest.com'
- '+.msftncsi.com'
- 'time.*.com'
- 'time.*.gov'
- 'time.*.edu.cn'
- 'time.*.apple.com'
use-hosts: true
use-system-hosts: true
nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
proxy-server-nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
direct-nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
fallback: ['https://doh-pure.onedns.net/dns-query', 'https://ada.openbld.net/dns-query', 'https://223.5.5.5/dns-query', 'https://223.6.6.6/dns-query']
fallback-filter: { geoip: true, geoip-code: CN, ipcidr: [240.0.0.0/4, 0.0.0.0/32] }
respect-rules: true
proxies:
- { name: '美国1-hy2', type: hysteria2, server: 64.69.34.207, port: 4439, password: Se7RAuFZ8Lzg, up: '200 Mbps', down: '500 Mbps', sni: hy2.jocayn.qzz.io, skip-cert-verify: false, alpn: [h3] }
- { name: '美国1-vless', type: vless, server: 64.69.34.207, port: 19150, udp: true, uuid: b9136671-ef40-4b5c-a007-dcf996ec2466, tls: true, servername: aws.amazon.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: -dTj4YHBzV5tpgVpD4mgXzlAESmxjOoyyn6waky1Dkw, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: '美国1-Tuic', type: tuic, server: 64.69.34.207, port: 4438, version: 5, uuid: ca4d81b1-f8d9-4533-8b61-c15e1da91697, password: ca4d81b1-f8d9-4533-8b61-c15e1da91697, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: '美国2-vless', type: vless, server: 107.174.208.133, port: 34532, udp: true, uuid: 1b8889b6-bb2f-4735-a401-4e53bdc81c51, tls: true, servername: www.cloudflare.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: R31tFIfDoM8yjrCfQAQqQ8QhFt6KuGjhhtQ3oSnPbAI, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: '美国2-Tuic', type: tuic, server: 107.174.208.133, port: 4438, version: 5, uuid: 161eaa3d-cf5b-4c07-ab36-f4f58536d081, password: 161eaa3d-cf5b-4c07-ab36-f4f58536d081, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: 'HK-Tuic', type: tuic, server: 154.94.234.168, port: 63155, version: 5, uuid: ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef, password: ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: 'HK-vless[最高2.5mb/s]', type: vless, server: 154.94.234.168, port: 63159, udp: true, uuid: 27485652-f88d-48e8-b4ee-3759ac63ce80, tls: true, servername: www.amazon.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: Jq_MTHf-vZLqpvPaViXUSZfQJ3oLM7DYeqBrtH8qlgs, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: 'HK-Hy2', type: hysteria2, server: 154.94.234.168, port: 4438, password: 09e70d0d-fb51-458a-a650-5922eaefcc24, up: '15 Mbps', down: '15 Mbps', sni: hy2.jocay.icu, skip-cert-verify: true, alpn: [h3] }
proxy-groups:
- { name: CatMata, type: select, proxies: [DIRECT, '♻️ Auto', '美国1-hy2', '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '♻️ Auto', type: url-test, proxies: ['美国1-hy2', '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic'], url: 'http://connectivitycheck.gstatic.com/generate_204', interval: 600, timeout: 1500, tolerance: 50, lazy: true }
- { name: '🍎 Apple', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📲 Telegram', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 YouTube', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 BiliBili', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 OpenAI', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 Gemini', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 Claude', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎵 TikTok', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '💿 Spotify', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 Netflix', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 Disney', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🌐 Google', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '☁️ OneDrive', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🖥 Microsoft', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '👩‍💼 LinkedIn', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🖥 Learning', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📟 Twitter', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 GlobalMedia', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 Emby', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎮 Steam', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎮 OtherGames', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '💀 Hijacking', type: select, proxies: [DIRECT, REJECT, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🇨🇳 ChinaWebsites', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: Final, type: select, proxies: [CatMata, DIRECT, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
rule-providers:
Apple: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Apple/Apple_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Telegram: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Telegram/Telegram.yaml', interval: 86400, proxy: CatMata, behavior: classical }
YouTube: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/YouTube/YouTube.yaml', interval: 86400, proxy: CatMata, behavior: classical }
BiliBili: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/BiliBili/BiliBili.yaml', interval: 86400, proxy: CatMata, behavior: classical }
TikTok: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/TikTok/TikTok.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Spotify: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Spotify/Spotify.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Netflix: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Netflix/Netflix.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Disney: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Disney/Disney.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Google: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Google/Google.yaml', interval: 86400, proxy: CatMata, behavior: classical }
OpenAI: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/OpenAI/OpenAI.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Microsoft: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Microsoft/Microsoft.yaml', interval: 86400, proxy: CatMata, behavior: classical }
LinkedIn: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/LinkedIn/LinkedIn.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Twitter: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Twitter/Twitter.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GameDownload: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Game/GameDownload/GameDownload.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GameDownloadCN: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Game/GameDownloadCN/GameDownloadCN.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Steam: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Steam/Steam.yaml', interval: 86400, proxy: CatMata, behavior: classical }
SteamCN: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/SteamCN/SteamCN.yaml', interval: 86400, proxy: CatMata, behavior: classical }
OneDrive: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/OneDrive/OneDrive.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Emby: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Emby/Emby.yaml', interval: 86400, proxy: CatMata, behavior: classical }
HoYoverse: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/HoYoverse/HoYoverse.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GlobalMedia: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/GlobalMedia/GlobalMedia_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
ChinaMax: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/ChinaMax/ChinaMax_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Gemini: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Gemini/Gemini.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Claude: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Claude/Claude.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Hijacking: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Hijacking/Hijacking.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Lan: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Lan/Lan.yaml', interval: 86400, proxy: CatMata, behavior: classical }
rules:
- 'RULE-SET,Lan,DIRECT'
- 'RULE-SET,Hijacking,💀 Hijacking'
- 'RULE-SET,Telegram,📲 Telegram'
- 'RULE-SET,YouTube,🎬 YouTube'
- 'RULE-SET,OpenAI,🤖 OpenAI'
- 'RULE-SET,Gemini,🤖 Gemini'
- 'RULE-SET,Claude,🤖 Claude'
- 'RULE-SET,OneDrive,☁️ OneDrive'
- 'DOMAIN-SUFFIX,microsoftpersonalcontent.com,☁️ OneDrive'
- 'RULE-SET,Microsoft,🖥 Microsoft'
- 'RULE-SET,Google,🌐 Google'
- 'RULE-SET,Apple,🍎 Apple'
- 'RULE-SET,LinkedIn,👩‍💼 LinkedIn'
- 'DOMAIN-SUFFIX,acm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,acs.org,🖥 Learning'
- 'DOMAIN-SUFFIX,aip.org,🖥 Learning'
- 'DOMAIN-SUFFIX,ams.org,🖥 Learning'
- 'DOMAIN-SUFFIX,annualreviews.org,🖥 Learning'
- 'DOMAIN-SUFFIX,aps.org,🖥 Learning'
- 'DOMAIN-SUFFIX,ascelibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,asm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,asme.org,🖥 Learning'
- 'DOMAIN-SUFFIX,astm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,blackwell-synergy.com,🖥 Learning'
- 'DOMAIN-SUFFIX,bmj.com,🖥 Learning'
- 'DOMAIN-SUFFIX,cabdirect.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cambridge.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cas.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cell.com,🖥 Learning'
- 'DOMAIN-SUFFIX,clarivate.com,🖥 Learning'
- 'DOMAIN-SUFFIX,cnki.net,🖥 Learning'
- 'DOMAIN-SUFFIX,cqvip.com,🖥 Learning'
- 'DOMAIN-SUFFIX,csiro.au,🖥 Learning'
- 'DOMAIN-SUFFIX,deepdyve.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ebscohost.com,🖥 Learning'
- 'DOMAIN-SUFFIX,els-cdn.com,🖥 Learning'
- 'DOMAIN-SUFFIX,elsevier.com,🖥 Learning'
- 'DOMAIN-SUFFIX,emerald.com,🖥 Learning'
- 'DOMAIN-SUFFIX,endnote.com,🖥 Learning'
- 'DOMAIN-SUFFIX,engineeringvillage.com,🖥 Learning'
- 'DOMAIN-SUFFIX,icevirtuallibrary.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ieee.org,🖥 Learning'
- 'DOMAIN-SUFFIX,imf.org,🖥 Learning'
- 'DOMAIN-SUFFIX,iop.org,🖥 Learning'
- 'DOMAIN-SUFFIX,jamanetwork.com,🖥 Learning'
- 'DOMAIN-SUFFIX,jbc.org,🖥 Learning'
- 'DOMAIN-SUFFIX,jhu.edu,🖥 Learning'
- 'DOMAIN-SUFFIX,jstor.org,🖥 Learning'
- 'DOMAIN-SUFFIX,karger.com,🖥 Learning'
- 'DOMAIN-SUFFIX,libguides.com,🖥 Learning'
- 'DOMAIN-SUFFIX,madsrevolution.net,🖥 Learning'
- 'DOMAIN-SUFFIX,mdpi.com,🖥 Learning'
- 'DOMAIN-SUFFIX,mpg.de,🖥 Learning'
- 'DOMAIN-SUFFIX,myilibrary.com,🖥 Learning'
- 'DOMAIN-SUFFIX,nature.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ncbi.nlm.nih.gov,🖥 Learning'
- 'DOMAIN-SUFFIX,oecd-ilibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,osapublishing.org,🖥 Learning'
- 'DOMAIN-SUFFIX,oup.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ovid.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordartonline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordbibliographies.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordmusiconline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,pkulaw.com,🖥 Learning'
- 'DOMAIN-SUFFIX,pnas.org,🖥 Learning'
- 'DOMAIN-SUFFIX,proquest.com,🖥 Learning'
- 'DOMAIN-SUFFIX,readcube.com,🖥 Learning'
- 'DOMAIN-SUFFIX,researchgate.net,🖥 Learning'
- 'DOMAIN-SUFFIX,rsc.org,🖥 Learning'
- 'DOMAIN-SUFFIX,sagepub.com,🖥 Learning'
- 'DOMAIN-SUFFIX,sci-hub.tw,🖥 Learning'
- 'DOMAIN-SUFFIX,sciencedirect.com,🖥 Learning'
- 'DOMAIN-SUFFIX,sciencemag.org,🖥 Learning'
- 'DOMAIN-SUFFIX,scitation.org,🖥 Learning'
- 'DOMAIN-SUFFIX,scopus.com,🖥 Learning'
- 'DOMAIN-SUFFIX,siam.org,🖥 Learning'
- 'DOMAIN-SUFFIX,spiedigitallibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,springer.com,🖥 Learning'
- 'DOMAIN-SUFFIX,springerlink.com,🖥 Learning'
- 'DOMAIN-SUFFIX,tandfonline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,un.org,🖥 Learning'
- 'DOMAIN-SUFFIX,uni-bielefeld.de,🖥 Learning'
- 'DOMAIN-SUFFIX,wanfangdata.com,🖥 Learning'
- 'DOMAIN-SUFFIX,webofknowledge.com,🖥 Learning'
- 'DOMAIN-SUFFIX,westlaw.com,🖥 Learning'
- 'DOMAIN-SUFFIX,westlawchina.com,🖥 Learning'
- 'DOMAIN-SUFFIX,wiley.com,🖥 Learning'
- 'DOMAIN-SUFFIX,worldbank.org,🖥 Learning'
- 'DOMAIN-SUFFIX,worldscientific.com,🖥 Learning'
- 'RULE-SET,Twitter,📟 Twitter'
- 'RULE-SET,BiliBili,🎬 BiliBili'
- 'RULE-SET,TikTok,🎵 TikTok'
- 'RULE-SET,Spotify,💿 Spotify'
- 'RULE-SET,Netflix,📺 Netflix'
- 'RULE-SET,Disney,📺 Disney'
- 'RULE-SET,GameDownload,🎮 OtherGames'
- 'RULE-SET,GameDownloadCN,🎮 OtherGames'
- 'RULE-SET,HoYoverse,🎮 OtherGames'
- 'RULE-SET,Steam,🎮 Steam'
- 'RULE-SET,SteamCN,🎮 Steam'
- 'DOMAIN-SUFFIX,makima.online,DIRECT'
- 'DOMAIN-SUFFIX,mobaiemby.site,🎬 Emby'
- 'DOMAIN-SUFFIX,recmata.net,🎬 Emby'
- 'RULE-SET,Emby,🎬 Emby'
- 'RULE-SET,GlobalMedia,📺 GlobalMedia'
- 'RULE-SET,ChinaMax,🇨🇳 ChinaWebsites'
- 'GEOIP,CN,🇨🇳 ChinaWebsites'
- 'MATCH,Final'
+249
View File
@@ -0,0 +1,249 @@
mixed-port: 7890
redir-port: 7892
tproxy-port: 7893
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
ipv6: false
find-process-mode: off
keep-alive-interval: 15
keep-alive-idle: 15
unified-delay: true
tcp-concurrent: true
external-controller: '0.0.0.0:9999'
secret: ''
profile:
store-selected: true
store-fake-ip: true
geodata-mode: true
geodata-loader: memconservative
geo-auto-update: true
geo-update-interval: 72
sniffer:
enable: true
force-dns-mapping: true
parse-pure-ip: true
override-destination: true
sniff:
TLS:
ports: [443, 8443]
HTTP:
ports: [80, 8080-8880]
override-destination: true
QUIC:
ports: [443, 8443]
skip-domain:
- '+.push.apple.com'
dns:
enable: true
listen: 0.0.0.0:1053
cache-algorithm: arc
prefer-h3: false
ipv6: false
default-nameserver: [223.5.5.5, 119.29.29.29]
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '*.local'
- 'localhost.ptlogin2.qq.com'
- '+.msftconnecttest.com'
- '+.msftncsi.com'
- '+.router.asus.com'
- '+.miwifi.com'
- '+.tplogin.cn'
- '+.tendawifi.com'
- '+.home.arpa'
- '+.localdomain'
- '+.example'
- '+.invalid'
- '+.test'
- '+.stun.*.*'
- '+.stun.*.*.*'
- '+.stun.*.*.*.*'
- '+.stun.*.*.*.*.*'
- 'time.*.com'
- 'time.*.gov'
- 'time.*.edu.cn'
- 'time.*.apple.com'
use-hosts: true
use-system-hosts: true
nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
proxy-server-nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
direct-nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
fallback: ['https://doh-pure.onedns.net/dns-query', 'https://ada.openbld.net/dns-query', 'https://223.5.5.5/dns-query', 'https://223.6.6.6/dns-query']
fallback-filter: { geoip: true, geoip-code: CN, ipcidr: [240.0.0.0/4, 0.0.0.0/32] }
respect-rules: true
proxies:
- { name: '美国1-hy2', type: hysteria2, server: 64.69.34.207, port: 4439, password: Se7RAuFZ8Lzg, up: '200 Mbps', down: '500 Mbps', sni: hy2.jocayn.qzz.io, skip-cert-verify: false, alpn: [h3] }
- { name: '美国1-vless', type: vless, server: 64.69.34.207, port: 19150, udp: true, uuid: b9136671-ef40-4b5c-a007-dcf996ec2466, tls: true, servername: aws.amazon.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: -dTj4YHBzV5tpgVpD4mgXzlAESmxjOoyyn6waky1Dkw, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: '美国1-Tuic', type: tuic, server: 64.69.34.207, port: 4438, version: 5, uuid: ca4d81b1-f8d9-4533-8b61-c15e1da91697, password: ca4d81b1-f8d9-4533-8b61-c15e1da91697, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: '美国2-vless', type: vless, server: 107.174.208.133, port: 34532, udp: true, uuid: 1b8889b6-bb2f-4735-a401-4e53bdc81c51, tls: true, servername: www.cloudflare.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: R31tFIfDoM8yjrCfQAQqQ8QhFt6KuGjhhtQ3oSnPbAI, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: '美国2-Tuic', type: tuic, server: 107.174.208.133, port: 4438, version: 5, uuid: 161eaa3d-cf5b-4c07-ab36-f4f58536d081, password: 161eaa3d-cf5b-4c07-ab36-f4f58536d081, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: 'HK-Tuic', type: tuic, server: 154.94.234.168, port: 63155, version: 5, uuid: ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef, password: ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: 'HK-vless[最高2.5mb/s]', type: vless, server: 154.94.234.168, port: 63159, udp: true, uuid: 27485652-f88d-48e8-b4ee-3759ac63ce80, tls: true, servername: www.amazon.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: Jq_MTHf-vZLqpvPaViXUSZfQJ3oLM7DYeqBrtH8qlgs, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: 'HK-Hy2', type: hysteria2, server: 154.94.234.168, port: 4438, password: 09e70d0d-fb51-458a-a650-5922eaefcc24, up: '15 Mbps', down: '15 Mbps', sni: hy2.jocay.icu, skip-cert-verify: true, alpn: [h3] }
proxy-groups:
- { name: CatMata, type: select, proxies: [DIRECT, '♻️ Auto', '美国1-hy2', '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '♻️ Auto', type: url-test, proxies: ['美国1-hy2', '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic'], url: 'http://connectivitycheck.gstatic.com/generate_204', interval: 600, timeout: 1500, tolerance: 50, lazy: true }
- { name: '🍎 Apple', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📲 Telegram', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 YouTube', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 BiliBili', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 OpenAI', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 Gemini', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 Claude', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎵 TikTok', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '💿 Spotify', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 Netflix', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 Disney', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🌐 Google', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '☁️ OneDrive', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🖥 Microsoft', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '👩‍💼 LinkedIn', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🖥 Learning', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📟 Twitter', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 GlobalMedia', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 Emby', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎮 Steam', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎮 OtherGames', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '💀 Hijacking', type: select, proxies: [DIRECT, REJECT, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🇨🇳 ChinaWebsites', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: Final, type: select, proxies: [CatMata, DIRECT, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
rule-providers:
Apple: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Apple/Apple_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Telegram: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Telegram/Telegram.yaml', interval: 86400, proxy: CatMata, behavior: classical }
YouTube: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/YouTube/YouTube.yaml', interval: 86400, proxy: CatMata, behavior: classical }
BiliBili: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/BiliBili/BiliBili.yaml', interval: 86400, proxy: CatMata, behavior: classical }
TikTok: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/TikTok/TikTok.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Spotify: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Spotify/Spotify.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Netflix: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Netflix/Netflix.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Disney: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Disney/Disney.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Google: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Google/Google.yaml', interval: 86400, proxy: CatMata, behavior: classical }
OpenAI: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/OpenAI/OpenAI.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Microsoft: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Microsoft/Microsoft.yaml', interval: 86400, proxy: CatMata, behavior: classical }
LinkedIn: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/LinkedIn/LinkedIn.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Twitter: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Twitter/Twitter.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GameDownload: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Game/GameDownload/GameDownload.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GameDownloadCN: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Game/GameDownloadCN/GameDownloadCN.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Steam: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Steam/Steam.yaml', interval: 86400, proxy: CatMata, behavior: classical }
SteamCN: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/SteamCN/SteamCN.yaml', interval: 86400, proxy: CatMata, behavior: classical }
OneDrive: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/OneDrive/OneDrive.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Emby: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Emby/Emby.yaml', interval: 86400, proxy: CatMata, behavior: classical }
HoYoverse: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/HoYoverse/HoYoverse.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GlobalMedia: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/GlobalMedia/GlobalMedia_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
ChinaMax: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/ChinaMax/ChinaMax_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Gemini: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Gemini/Gemini.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Claude: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Claude/Claude.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Hijacking: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Hijacking/Hijacking.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Lan: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Lan/Lan.yaml', interval: 86400, proxy: CatMata, behavior: classical }
rules:
- 'RULE-SET,Lan,DIRECT'
- 'RULE-SET,Hijacking,💀 Hijacking'
- 'RULE-SET,Telegram,📲 Telegram'
- 'RULE-SET,YouTube,🎬 YouTube'
- 'RULE-SET,OpenAI,🤖 OpenAI'
- 'RULE-SET,Gemini,🤖 Gemini'
- 'RULE-SET,Claude,🤖 Claude'
- 'RULE-SET,OneDrive,☁️ OneDrive'
- 'DOMAIN-SUFFIX,microsoftpersonalcontent.com,☁️ OneDrive'
- 'RULE-SET,Microsoft,🖥 Microsoft'
- 'RULE-SET,Google,🌐 Google'
- 'RULE-SET,Apple,🍎 Apple'
- 'RULE-SET,LinkedIn,👩‍💼 LinkedIn'
- 'DOMAIN-SUFFIX,acm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,acs.org,🖥 Learning'
- 'DOMAIN-SUFFIX,aip.org,🖥 Learning'
- 'DOMAIN-SUFFIX,ams.org,🖥 Learning'
- 'DOMAIN-SUFFIX,annualreviews.org,🖥 Learning'
- 'DOMAIN-SUFFIX,aps.org,🖥 Learning'
- 'DOMAIN-SUFFIX,ascelibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,asm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,asme.org,🖥 Learning'
- 'DOMAIN-SUFFIX,astm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,blackwell-synergy.com,🖥 Learning'
- 'DOMAIN-SUFFIX,bmj.com,🖥 Learning'
- 'DOMAIN-SUFFIX,cabdirect.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cambridge.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cas.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cell.com,🖥 Learning'
- 'DOMAIN-SUFFIX,clarivate.com,🖥 Learning'
- 'DOMAIN-SUFFIX,cnki.net,🖥 Learning'
- 'DOMAIN-SUFFIX,cqvip.com,🖥 Learning'
- 'DOMAIN-SUFFIX,csiro.au,🖥 Learning'
- 'DOMAIN-SUFFIX,deepdyve.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ebscohost.com,🖥 Learning'
- 'DOMAIN-SUFFIX,els-cdn.com,🖥 Learning'
- 'DOMAIN-SUFFIX,elsevier.com,🖥 Learning'
- 'DOMAIN-SUFFIX,emerald.com,🖥 Learning'
- 'DOMAIN-SUFFIX,endnote.com,🖥 Learning'
- 'DOMAIN-SUFFIX,engineeringvillage.com,🖥 Learning'
- 'DOMAIN-SUFFIX,icevirtuallibrary.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ieee.org,🖥 Learning'
- 'DOMAIN-SUFFIX,imf.org,🖥 Learning'
- 'DOMAIN-SUFFIX,iop.org,🖥 Learning'
- 'DOMAIN-SUFFIX,jamanetwork.com,🖥 Learning'
- 'DOMAIN-SUFFIX,jbc.org,🖥 Learning'
- 'DOMAIN-SUFFIX,jhu.edu,🖥 Learning'
- 'DOMAIN-SUFFIX,jstor.org,🖥 Learning'
- 'DOMAIN-SUFFIX,karger.com,🖥 Learning'
- 'DOMAIN-SUFFIX,libguides.com,🖥 Learning'
- 'DOMAIN-SUFFIX,madsrevolution.net,🖥 Learning'
- 'DOMAIN-SUFFIX,mdpi.com,🖥 Learning'
- 'DOMAIN-SUFFIX,mpg.de,🖥 Learning'
- 'DOMAIN-SUFFIX,myilibrary.com,🖥 Learning'
- 'DOMAIN-SUFFIX,nature.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ncbi.nlm.nih.gov,🖥 Learning'
- 'DOMAIN-SUFFIX,oecd-ilibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,osapublishing.org,🖥 Learning'
- 'DOMAIN-SUFFIX,oup.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ovid.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordartonline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordbibliographies.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordmusiconline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,pkulaw.com,🖥 Learning'
- 'DOMAIN-SUFFIX,pnas.org,🖥 Learning'
- 'DOMAIN-SUFFIX,proquest.com,🖥 Learning'
- 'DOMAIN-SUFFIX,readcube.com,🖥 Learning'
- 'DOMAIN-SUFFIX,researchgate.net,🖥 Learning'
- 'DOMAIN-SUFFIX,rsc.org,🖥 Learning'
- 'DOMAIN-SUFFIX,sagepub.com,🖥 Learning'
- 'DOMAIN-SUFFIX,sci-hub.tw,🖥 Learning'
- 'DOMAIN-SUFFIX,sciencedirect.com,🖥 Learning'
- 'DOMAIN-SUFFIX,sciencemag.org,🖥 Learning'
- 'DOMAIN-SUFFIX,scitation.org,🖥 Learning'
- 'DOMAIN-SUFFIX,scopus.com,🖥 Learning'
- 'DOMAIN-SUFFIX,siam.org,🖥 Learning'
- 'DOMAIN-SUFFIX,spiedigitallibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,springer.com,🖥 Learning'
- 'DOMAIN-SUFFIX,springerlink.com,🖥 Learning'
- 'DOMAIN-SUFFIX,tandfonline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,un.org,🖥 Learning'
- 'DOMAIN-SUFFIX,uni-bielefeld.de,🖥 Learning'
- 'DOMAIN-SUFFIX,wanfangdata.com,🖥 Learning'
- 'DOMAIN-SUFFIX,webofknowledge.com,🖥 Learning'
- 'DOMAIN-SUFFIX,westlaw.com,🖥 Learning'
- 'DOMAIN-SUFFIX,westlawchina.com,🖥 Learning'
- 'DOMAIN-SUFFIX,wiley.com,🖥 Learning'
- 'DOMAIN-SUFFIX,worldbank.org,🖥 Learning'
- 'DOMAIN-SUFFIX,worldscientific.com,🖥 Learning'
- 'RULE-SET,Twitter,📟 Twitter'
- 'RULE-SET,BiliBili,🎬 BiliBili'
- 'RULE-SET,TikTok,🎵 TikTok'
- 'RULE-SET,Spotify,💿 Spotify'
- 'RULE-SET,Netflix,📺 Netflix'
- 'RULE-SET,Disney,📺 Disney'
- 'RULE-SET,GameDownload,🎮 OtherGames'
- 'RULE-SET,GameDownloadCN,🎮 OtherGames'
- 'RULE-SET,HoYoverse,🎮 OtherGames'
- 'RULE-SET,Steam,🎮 Steam'
- 'RULE-SET,SteamCN,🎮 Steam'
- 'DOMAIN-SUFFIX,makima.online,DIRECT'
- 'DOMAIN-SUFFIX,mobaiemby.site,🎬 Emby'
- 'DOMAIN-SUFFIX,recmata.net,🎬 Emby'
- 'RULE-SET,Emby,🎬 Emby'
- 'RULE-SET,GlobalMedia,📺 GlobalMedia'
- 'RULE-SET,ChinaMax,🇨🇳 ChinaWebsites'
- 'GEOIP,CN,🇨🇳 ChinaWebsites'
- 'MATCH,Final'
+248
View File
@@ -0,0 +1,248 @@
mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
ipv6: true
unified-delay: true
tcp-concurrent: true
external-controller: '127.0.0.1:9090'
profile:
store-selected: true
store-fake-ip: true
sniffer:
enable: true
force-dns-mapping: true
parse-pure-ip: true
override-destination: true
sniff:
TLS:
ports: [443, 8443]
HTTP:
ports: [80, 8080-8880]
override-destination: true
QUIC:
ports: [443, 8443]
skip-domain:
- '+.push.apple.com'
tun:
enable: true
stack: mixed
device: Mihomo
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
- tcp://any:53
strict-route: true
udp-timeout: 300
endpoint-independent-nat: false
route-exclude-address:
- 10.0.0.0/8
- 100.64.0.0/10
- 127.0.0.0/8
- 169.254.0.0/16
- 172.16.0.0/12
- 192.168.0.0/16
- 224.0.0.0/4
- 'fc00::/7'
- 'fe80::/10'
dns:
enable: true
listen: 0.0.0.0:1053
cache-algorithm: arc
prefer-h3: false
ipv6: true
default-nameserver: [223.5.5.5, 119.29.29.29]
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- '*.lan'
- '*.local'
- 'localhost.ptlogin2.qq.com'
- '+.msftconnecttest.com'
- '+.msftncsi.com'
- 'time.*.com'
- 'time.*.gov'
- 'time.*.edu.cn'
- 'time.*.apple.com'
use-hosts: true
use-system-hosts: true
nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
proxy-server-nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
direct-nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
fallback: ['https://doh-pure.onedns.net/dns-query', 'https://ada.openbld.net/dns-query', 'https://223.5.5.5/dns-query', 'https://223.6.6.6/dns-query']
fallback-filter: { geoip: true, geoip-code: CN, ipcidr: [240.0.0.0/4, 0.0.0.0/32] }
respect-rules: true
proxies:
- { name: '美国1-hy2', type: hysteria2, server: 64.69.34.207, port: 4439, password: Se7RAuFZ8Lzg, up: '200 Mbps', down: '500 Mbps', sni: hy2.jocayn.qzz.io, skip-cert-verify: false, alpn: [h3] }
- { name: '美国1-vless', type: vless, server: 64.69.34.207, port: 19150, udp: true, uuid: b9136671-ef40-4b5c-a007-dcf996ec2466, tls: true, servername: aws.amazon.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: -dTj4YHBzV5tpgVpD4mgXzlAESmxjOoyyn6waky1Dkw, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: '美国1-Tuic', type: tuic, server: 64.69.34.207, port: 4438, version: 5, uuid: ca4d81b1-f8d9-4533-8b61-c15e1da91697, password: ca4d81b1-f8d9-4533-8b61-c15e1da91697, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: '美国2-vless', type: vless, server: 107.174.208.133, port: 34532, udp: true, uuid: 1b8889b6-bb2f-4735-a401-4e53bdc81c51, tls: true, servername: www.cloudflare.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: R31tFIfDoM8yjrCfQAQqQ8QhFt6KuGjhhtQ3oSnPbAI, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: '美国2-Tuic', type: tuic, server: 107.174.208.133, port: 4438, version: 5, uuid: 161eaa3d-cf5b-4c07-ab36-f4f58536d081, password: 161eaa3d-cf5b-4c07-ab36-f4f58536d081, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: 'HK-Tuic', type: tuic, server: 154.94.234.168, port: 63155, version: 5, uuid: ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef, password: ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: 'HK-vless[最高2.5mb/s]', type: vless, server: 154.94.234.168, port: 63159, udp: true, uuid: 27485652-f88d-48e8-b4ee-3759ac63ce80, tls: true, servername: www.amazon.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: Jq_MTHf-vZLqpvPaViXUSZfQJ3oLM7DYeqBrtH8qlgs, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: 'HK-Hy2', type: hysteria2, server: 154.94.234.168, port: 4438, password: 09e70d0d-fb51-458a-a650-5922eaefcc24, up: '15 Mbps', down: '15 Mbps', sni: hy2.jocay.icu, skip-cert-verify: true, alpn: [h3] }
proxy-groups:
- { name: CatMata, type: select, proxies: [DIRECT, '♻️ Auto', '美国1-hy2', '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '♻️ Auto', type: url-test, proxies: ['美国1-hy2', '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic'], url: 'http://connectivitycheck.gstatic.com/generate_204', interval: 600, timeout: 1500, tolerance: 50, lazy: true }
- { name: '🍎 Apple', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📲 Telegram', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 YouTube', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 BiliBili', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 OpenAI', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 Gemini', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 Claude', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎵 TikTok', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '💿 Spotify', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 Netflix', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 Disney', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🌐 Google', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '☁️ OneDrive', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🖥 Microsoft', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '👩‍💼 LinkedIn', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🖥 Learning', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📟 Twitter', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 GlobalMedia', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 Emby', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎮 Steam', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎮 OtherGames', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '💀 Hijacking', type: select, proxies: [DIRECT, REJECT, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🇨🇳 ChinaWebsites', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: Final, type: select, proxies: [CatMata, DIRECT, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
rule-providers:
Apple: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Apple/Apple_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Telegram: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Telegram/Telegram.yaml', interval: 86400, proxy: CatMata, behavior: classical }
YouTube: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/YouTube/YouTube.yaml', interval: 86400, proxy: CatMata, behavior: classical }
BiliBili: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/BiliBili/BiliBili.yaml', interval: 86400, proxy: CatMata, behavior: classical }
TikTok: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/TikTok/TikTok.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Spotify: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Spotify/Spotify.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Netflix: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Netflix/Netflix.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Disney: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Disney/Disney.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Google: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Google/Google.yaml', interval: 86400, proxy: CatMata, behavior: classical }
OpenAI: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/OpenAI/OpenAI.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Microsoft: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Microsoft/Microsoft.yaml', interval: 86400, proxy: CatMata, behavior: classical }
LinkedIn: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/LinkedIn/LinkedIn.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Twitter: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Twitter/Twitter.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GameDownload: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Game/GameDownload/GameDownload.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GameDownloadCN: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Game/GameDownloadCN/GameDownloadCN.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Steam: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Steam/Steam.yaml', interval: 86400, proxy: CatMata, behavior: classical }
SteamCN: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/SteamCN/SteamCN.yaml', interval: 86400, proxy: CatMata, behavior: classical }
OneDrive: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/OneDrive/OneDrive.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Emby: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Emby/Emby.yaml', interval: 86400, proxy: CatMata, behavior: classical }
HoYoverse: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/HoYoverse/HoYoverse.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GlobalMedia: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/GlobalMedia/GlobalMedia_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
ChinaMax: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/ChinaMax/ChinaMax_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Gemini: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Gemini/Gemini.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Claude: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Claude/Claude.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Hijacking: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Hijacking/Hijacking.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Lan: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Lan/Lan.yaml', interval: 86400, proxy: CatMata, behavior: classical }
rules:
- 'RULE-SET,Lan,DIRECT'
- 'RULE-SET,Hijacking,💀 Hijacking'
- 'RULE-SET,Telegram,📲 Telegram'
- 'RULE-SET,YouTube,🎬 YouTube'
- 'RULE-SET,OpenAI,🤖 OpenAI'
- 'RULE-SET,Gemini,🤖 Gemini'
- 'RULE-SET,Claude,🤖 Claude'
- 'RULE-SET,OneDrive,☁️ OneDrive'
- 'DOMAIN-SUFFIX,microsoftpersonalcontent.com,☁️ OneDrive'
- 'RULE-SET,Microsoft,🖥 Microsoft'
- 'RULE-SET,Google,🌐 Google'
- 'RULE-SET,Apple,🍎 Apple'
- 'RULE-SET,LinkedIn,👩‍💼 LinkedIn'
- 'DOMAIN-SUFFIX,acm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,acs.org,🖥 Learning'
- 'DOMAIN-SUFFIX,aip.org,🖥 Learning'
- 'DOMAIN-SUFFIX,ams.org,🖥 Learning'
- 'DOMAIN-SUFFIX,annualreviews.org,🖥 Learning'
- 'DOMAIN-SUFFIX,aps.org,🖥 Learning'
- 'DOMAIN-SUFFIX,ascelibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,asm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,asme.org,🖥 Learning'
- 'DOMAIN-SUFFIX,astm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,blackwell-synergy.com,🖥 Learning'
- 'DOMAIN-SUFFIX,bmj.com,🖥 Learning'
- 'DOMAIN-SUFFIX,cabdirect.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cambridge.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cas.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cell.com,🖥 Learning'
- 'DOMAIN-SUFFIX,clarivate.com,🖥 Learning'
- 'DOMAIN-SUFFIX,cnki.net,🖥 Learning'
- 'DOMAIN-SUFFIX,cqvip.com,🖥 Learning'
- 'DOMAIN-SUFFIX,csiro.au,🖥 Learning'
- 'DOMAIN-SUFFIX,deepdyve.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ebscohost.com,🖥 Learning'
- 'DOMAIN-SUFFIX,els-cdn.com,🖥 Learning'
- 'DOMAIN-SUFFIX,elsevier.com,🖥 Learning'
- 'DOMAIN-SUFFIX,emerald.com,🖥 Learning'
- 'DOMAIN-SUFFIX,endnote.com,🖥 Learning'
- 'DOMAIN-SUFFIX,engineeringvillage.com,🖥 Learning'
- 'DOMAIN-SUFFIX,icevirtuallibrary.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ieee.org,🖥 Learning'
- 'DOMAIN-SUFFIX,imf.org,🖥 Learning'
- 'DOMAIN-SUFFIX,iop.org,🖥 Learning'
- 'DOMAIN-SUFFIX,jamanetwork.com,🖥 Learning'
- 'DOMAIN-SUFFIX,jbc.org,🖥 Learning'
- 'DOMAIN-SUFFIX,jhu.edu,🖥 Learning'
- 'DOMAIN-SUFFIX,jstor.org,🖥 Learning'
- 'DOMAIN-SUFFIX,karger.com,🖥 Learning'
- 'DOMAIN-SUFFIX,libguides.com,🖥 Learning'
- 'DOMAIN-SUFFIX,madsrevolution.net,🖥 Learning'
- 'DOMAIN-SUFFIX,mdpi.com,🖥 Learning'
- 'DOMAIN-SUFFIX,mpg.de,🖥 Learning'
- 'DOMAIN-SUFFIX,myilibrary.com,🖥 Learning'
- 'DOMAIN-SUFFIX,nature.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ncbi.nlm.nih.gov,🖥 Learning'
- 'DOMAIN-SUFFIX,oecd-ilibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,osapublishing.org,🖥 Learning'
- 'DOMAIN-SUFFIX,oup.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ovid.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordartonline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordbibliographies.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordmusiconline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,pkulaw.com,🖥 Learning'
- 'DOMAIN-SUFFIX,pnas.org,🖥 Learning'
- 'DOMAIN-SUFFIX,proquest.com,🖥 Learning'
- 'DOMAIN-SUFFIX,readcube.com,🖥 Learning'
- 'DOMAIN-SUFFIX,researchgate.net,🖥 Learning'
- 'DOMAIN-SUFFIX,rsc.org,🖥 Learning'
- 'DOMAIN-SUFFIX,sagepub.com,🖥 Learning'
- 'DOMAIN-SUFFIX,sci-hub.tw,🖥 Learning'
- 'DOMAIN-SUFFIX,sciencedirect.com,🖥 Learning'
- 'DOMAIN-SUFFIX,sciencemag.org,🖥 Learning'
- 'DOMAIN-SUFFIX,scitation.org,🖥 Learning'
- 'DOMAIN-SUFFIX,scopus.com,🖥 Learning'
- 'DOMAIN-SUFFIX,siam.org,🖥 Learning'
- 'DOMAIN-SUFFIX,spiedigitallibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,springer.com,🖥 Learning'
- 'DOMAIN-SUFFIX,springerlink.com,🖥 Learning'
- 'DOMAIN-SUFFIX,tandfonline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,un.org,🖥 Learning'
- 'DOMAIN-SUFFIX,uni-bielefeld.de,🖥 Learning'
- 'DOMAIN-SUFFIX,wanfangdata.com,🖥 Learning'
- 'DOMAIN-SUFFIX,webofknowledge.com,🖥 Learning'
- 'DOMAIN-SUFFIX,westlaw.com,🖥 Learning'
- 'DOMAIN-SUFFIX,westlawchina.com,🖥 Learning'
- 'DOMAIN-SUFFIX,wiley.com,🖥 Learning'
- 'DOMAIN-SUFFIX,worldbank.org,🖥 Learning'
- 'DOMAIN-SUFFIX,worldscientific.com,🖥 Learning'
- 'RULE-SET,Twitter,📟 Twitter'
- 'RULE-SET,BiliBili,🎬 BiliBili'
- 'RULE-SET,TikTok,🎵 TikTok'
- 'RULE-SET,Spotify,💿 Spotify'
- 'RULE-SET,Netflix,📺 Netflix'
- 'RULE-SET,Disney,📺 Disney'
- 'RULE-SET,GameDownload,🎮 OtherGames'
- 'RULE-SET,GameDownloadCN,🎮 OtherGames'
- 'RULE-SET,HoYoverse,🎮 OtherGames'
- 'RULE-SET,Steam,🎮 Steam'
- 'RULE-SET,SteamCN,🎮 Steam'
- 'DOMAIN-SUFFIX,makima.online,DIRECT'
- 'DOMAIN-SUFFIX,mobaiemby.site,🎬 Emby'
- 'DOMAIN-SUFFIX,recmata.net,🎬 Emby'
- 'RULE-SET,Emby,🎬 Emby'
- 'RULE-SET,GlobalMedia,📺 GlobalMedia'
- 'RULE-SET,ChinaMax,🇨🇳 ChinaWebsites'
- 'GEOIP,CN,🇨🇳 ChinaWebsites'
- 'MATCH,Final'
+189
View File
@@ -0,0 +1,189 @@
mixed-port: 7890
allow-lan: true
bind-address: 127.0.0.1
mode: rule
log-level: info
external-controller: '127.0.0.1:9090'
dns:
enable: true
ipv6: true
default-nameserver: [223.5.5.5, 119.29.29.29]
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
use-hosts: true
nameserver: ['https://doh.pub/dns-query', 'https://dns.alidns.com/dns-query']
fallback: ['https://doh-pure.onedns.net/dns-query', 'https://ada.openbld.net/dns-query', 'https://223.5.5.5/dns-query', 'https://223.6.6.6/dns-query']
fallback-filter: { geoip: true, ipcidr: [240.0.0.0/4, 0.0.0.0/32] }
respect-rules: false
proxies:
- { name: '美国1-hy2', type: hysteria2, server: 64.69.34.207, port: 4439, password: Se7RAuFZ8Lzg, up: '200 Mbps', down: '500 Mbps', sni: hy2.jocayn.qzz.io, skip-cert-verify: false, alpn: [h3] }
- { name: '美国1-vless', type: vless, server: 64.69.34.207, port: 19150, udp: true, uuid: b9136671-ef40-4b5c-a007-dcf996ec2466, tls: true, servername: aws.amazon.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: -dTj4YHBzV5tpgVpD4mgXzlAESmxjOoyyn6waky1Dkw, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: '美国1-Tuic', type: tuic, server: 64.69.34.207, port: 4438, version: 5, uuid: ca4d81b1-f8d9-4533-8b61-c15e1da91697, password: ca4d81b1-f8d9-4533-8b61-c15e1da91697, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: '美国2-vless', type: vless, server: 107.174.208.133, port: 34532, udp: true, uuid: 1b8889b6-bb2f-4735-a401-4e53bdc81c51, tls: true, servername: www.cloudflare.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: R31tFIfDoM8yjrCfQAQqQ8QhFt6KuGjhhtQ3oSnPbAI, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: '美国2-Tuic', type: tuic, server: 107.174.208.133, port: 4438, version: 5, uuid: 161eaa3d-cf5b-4c07-ab36-f4f58536d081, password: 161eaa3d-cf5b-4c07-ab36-f4f58536d081, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: 'HK-Tuic', type: tuic, server: 154.94.234.168, port: 63155, version: 5, uuid: ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef, password: ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef, alpn: [h3], disable-sni: true, reduce-rtt: true, request-timeout: 8000, udp-relay-mode: native, congestion-controller: bbr, skip-cert-verify: true }
- { name: 'HK-vless[最高2.5mb/s]', type: vless, server: 154.94.234.168, port: 63159, udp: true, uuid: 27485652-f88d-48e8-b4ee-3759ac63ce80, tls: true, servername: www.amazon.com, flow: xtls-rprx-vision, network: tcp, reality-opts: { public-key: Jq_MTHf-vZLqpvPaViXUSZfQJ3oLM7DYeqBrtH8qlgs, short-id: '' }, client-fingerprint: chrome, alpn: [h2, 'http/1.1'], packet-encoding: xudp, encryption: '', skip-cert-verify: true, smux: { enabled: false } }
- { name: 'HK-Hy2', type: hysteria2, server: 154.94.234.168, port: 4438, password: 09e70d0d-fb51-458a-a650-5922eaefcc24, up: '15 Mbps', down: '15 Mbps', sni: hy2.jocay.icu, skip-cert-verify: true, alpn: [h3] }
proxy-groups:
- { name: CatMata, type: select, proxies: [DIRECT, '♻️ Auto', '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '♻️ Auto', type: url-test, proxies: ['美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic'], url: 'http://connectivitycheck.gstatic.com/generate_204', interval: 600, timeout: 1500, tolerance: 50 }
- { name: '🍎 Apple', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📲 Telegram', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 YouTube', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 BiliBili', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 OpenAI', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 Gemini', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🤖 Claude', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎵 TikTok', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '💿 Spotify', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 Netflix', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 Disney', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🌐 Google', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '☁️ OneDrive', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🖥 Microsoft', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '👩‍💼 LinkedIn', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🖥 Learning', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📟 Twitter', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '📺 GlobalMedia', type: select, proxies: [CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎬 Emby', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎮 Steam', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🎮 OtherGames', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '💀 Hijacking', type: select, proxies: [DIRECT, REJECT, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: '🇨🇳 ChinaWebsites', type: select, proxies: [DIRECT, CatMata, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
- { name: Final, type: select, proxies: [CatMata, DIRECT, '美国1-vless', '美国1-Tuic', '美国2-vless','美国2-Tuic', 'HK-vless[最高2.5mb/s]', 'HK-Hy2', 'HK-Tuic'] }
rule-providers:
Apple: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Apple/Apple_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Telegram: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Telegram/Telegram.yaml', interval: 86400, proxy: CatMata, behavior: classical }
YouTube: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/YouTube/YouTube.yaml', interval: 86400, proxy: CatMata, behavior: classical }
BiliBili: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/BiliBili/BiliBili.yaml', interval: 86400, proxy: CatMata, behavior: classical }
TikTok: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/TikTok/TikTok.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Spotify: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Spotify/Spotify.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Netflix: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Netflix/Netflix.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Disney: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Disney/Disney.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Google: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Google/Google.yaml', interval: 86400, proxy: CatMata, behavior: classical }
OpenAI: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/OpenAI/OpenAI.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Microsoft: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Microsoft/Microsoft.yaml', interval: 86400, proxy: CatMata, behavior: classical }
LinkedIn: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/LinkedIn/LinkedIn.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Twitter: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Twitter/Twitter.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GameDownload: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Game/GameDownload/GameDownload.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GameDownloadCN: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Game/GameDownloadCN/GameDownloadCN.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Steam: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Steam/Steam.yaml', interval: 86400, proxy: CatMata, behavior: classical }
SteamCN: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/SteamCN/SteamCN.yaml', interval: 86400, proxy: CatMata, behavior: classical }
OneDrive: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/OneDrive/OneDrive.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Emby: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Emby/Emby.yaml', interval: 86400, proxy: CatMata, behavior: classical }
HoYoverse: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/HoYoverse/HoYoverse.yaml', interval: 86400, proxy: CatMata, behavior: classical }
GlobalMedia: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/GlobalMedia/GlobalMedia_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
ChinaMax: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/ChinaMax/ChinaMax_Classical.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Gemini: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Gemini/Gemini.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Claude: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Claude/Claude.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Hijacking: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Hijacking/Hijacking.yaml', interval: 86400, proxy: CatMata, behavior: classical }
Lan: { type: http, url: 'https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Lan/Lan.yaml', interval: 86400, proxy: CatMata, behavior: classical }
rules:
- 'RULE-SET,Telegram,📲 Telegram'
- 'RULE-SET,YouTube,🎬 YouTube'
- 'RULE-SET,OpenAI,🤖 OpenAI'
- 'RULE-SET,Gemini,🤖 Gemini'
- 'RULE-SET,Claude,🤖 Claude'
- 'RULE-SET,OneDrive,☁️ OneDrive'
- 'DOMAIN-SUFFIX,microsoftpersonalcontent.com,☁️ OneDrive'
- 'RULE-SET,Microsoft,🖥 Microsoft'
- 'RULE-SET,Google,🌐 Google'
- 'RULE-SET,Apple,🍎 Apple'
- 'RULE-SET,LinkedIn,👩‍💼 LinkedIn'
- 'DOMAIN-SUFFIX,acm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,acs.org,🖥 Learning'
- 'DOMAIN-SUFFIX,aip.org,🖥 Learning'
- 'DOMAIN-SUFFIX,ams.org,🖥 Learning'
- 'DOMAIN-SUFFIX,annualreviews.org,🖥 Learning'
- 'DOMAIN-SUFFIX,aps.org,🖥 Learning'
- 'DOMAIN-SUFFIX,ascelibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,asm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,asme.org,🖥 Learning'
- 'DOMAIN-SUFFIX,astm.org,🖥 Learning'
- 'DOMAIN-SUFFIX,blackwell-synergy.com,🖥 Learning'
- 'DOMAIN-SUFFIX,bmj.com,🖥 Learning'
- 'DOMAIN-SUFFIX,cabdirect.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cambridge.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cas.org,🖥 Learning'
- 'DOMAIN-SUFFIX,cell.com,🖥 Learning'
- 'DOMAIN-SUFFIX,clarivate.com,🖥 Learning'
- 'DOMAIN-SUFFIX,cnki.net,🖥 Learning'
- 'DOMAIN-SUFFIX,cqvip.com,🖥 Learning'
- 'DOMAIN-SUFFIX,csiro.au,🖥 Learning'
- 'DOMAIN-SUFFIX,deepdyve.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ebscohost.com,🖥 Learning'
- 'DOMAIN-SUFFIX,els-cdn.com,🖥 Learning'
- 'DOMAIN-SUFFIX,elsevier.com,🖥 Learning'
- 'DOMAIN-SUFFIX,emerald.com,🖥 Learning'
- 'DOMAIN-SUFFIX,endnote.com,🖥 Learning'
- 'DOMAIN-SUFFIX,engineeringvillage.com,🖥 Learning'
- 'DOMAIN-SUFFIX,icevirtuallibrary.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ieee.org,🖥 Learning'
- 'DOMAIN-SUFFIX,imf.org,🖥 Learning'
- 'DOMAIN-SUFFIX,iop.org,🖥 Learning'
- 'DOMAIN-SUFFIX,jamanetwork.com,🖥 Learning'
- 'DOMAIN-SUFFIX,jbc.org,🖥 Learning'
- 'DOMAIN-SUFFIX,jhu.edu,🖥 Learning'
- 'DOMAIN-SUFFIX,jstor.org,🖥 Learning'
- 'DOMAIN-SUFFIX,karger.com,🖥 Learning'
- 'DOMAIN-SUFFIX,libguides.com,🖥 Learning'
- 'DOMAIN-SUFFIX,madsrevolution.net,🖥 Learning'
- 'DOMAIN-SUFFIX,mdpi.com,🖥 Learning'
- 'DOMAIN-SUFFIX,mpg.de,🖥 Learning'
- 'DOMAIN-SUFFIX,myilibrary.com,🖥 Learning'
- 'DOMAIN-SUFFIX,nature.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ncbi.nlm.nih.gov,🖥 Learning'
- 'DOMAIN-SUFFIX,oecd-ilibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,osapublishing.org,🖥 Learning'
- 'DOMAIN-SUFFIX,oup.com,🖥 Learning'
- 'DOMAIN-SUFFIX,ovid.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordartonline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordbibliographies.com,🖥 Learning'
- 'DOMAIN-SUFFIX,oxfordmusiconline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,pkulaw.com,🖥 Learning'
- 'DOMAIN-SUFFIX,pnas.org,🖥 Learning'
- 'DOMAIN-SUFFIX,proquest.com,🖥 Learning'
- 'DOMAIN-SUFFIX,readcube.com,🖥 Learning'
- 'DOMAIN-SUFFIX,researchgate.net,🖥 Learning'
- 'DOMAIN-SUFFIX,rsc.org,🖥 Learning'
- 'DOMAIN-SUFFIX,sagepub.com,🖥 Learning'
- 'DOMAIN-SUFFIX,sci-hub.tw,🖥 Learning'
- 'DOMAIN-SUFFIX,sciencedirect.com,🖥 Learning'
- 'DOMAIN-SUFFIX,sciencemag.org,🖥 Learning'
- 'DOMAIN-SUFFIX,scitation.org,🖥 Learning'
- 'DOMAIN-SUFFIX,scopus.com,🖥 Learning'
- 'DOMAIN-SUFFIX,siam.org,🖥 Learning'
- 'DOMAIN-SUFFIX,spiedigitallibrary.org,🖥 Learning'
- 'DOMAIN-SUFFIX,springer.com,🖥 Learning'
- 'DOMAIN-SUFFIX,springerlink.com,🖥 Learning'
- 'DOMAIN-SUFFIX,tandfonline.com,🖥 Learning'
- 'DOMAIN-SUFFIX,un.org,🖥 Learning'
- 'DOMAIN-SUFFIX,uni-bielefeld.de,🖥 Learning'
- 'DOMAIN-SUFFIX,wanfangdata.com,🖥 Learning'
- 'DOMAIN-SUFFIX,webofknowledge.com,🖥 Learning'
- 'DOMAIN-SUFFIX,westlaw.com,🖥 Learning'
- 'DOMAIN-SUFFIX,westlawchina.com,🖥 Learning'
- 'DOMAIN-SUFFIX,wiley.com,🖥 Learning'
- 'DOMAIN-SUFFIX,worldbank.org,🖥 Learning'
- 'DOMAIN-SUFFIX,worldscientific.com,🖥 Learning'
- 'RULE-SET,Twitter,📟 Twitter'
- 'RULE-SET,BiliBili,🎬 BiliBili'
- 'RULE-SET,TikTok,🎵 TikTok'
- 'RULE-SET,Spotify,💿 Spotify'
- 'RULE-SET,Netflix,📺 Netflix'
- 'RULE-SET,Disney,📺 Disney'
- 'RULE-SET,GameDownload,🎮 OtherGames'
- 'RULE-SET,GameDownloadCN,🎮 OtherGames'
- 'RULE-SET,HoYoverse,🎮 OtherGames'
- 'RULE-SET,Steam,🎮 Steam'
- 'RULE-SET,SteamCN,🎮 Steam'
- 'DOMAIN-SUFFIX,makima.online,DIRECT'
- 'DOMAIN-SUFFIX,mobaiemby.site,🎬 Emby'
- 'DOMAIN-SUFFIX,recmata.net,🎬 Emby'
- 'RULE-SET,Emby,🎬 Emby'
- 'RULE-SET,GlobalMedia,📺 GlobalMedia'
- 'RULE-SET,ChinaMax,🇨🇳 ChinaWebsites'
- 'RULE-SET,Lan,DIRECT'
- 'RULE-SET,Hijacking,💀 Hijacking'
- 'GEOIP,CN,🇨🇳 ChinaWebsites'
- 'MATCH,Final'
+693
View File
@@ -0,0 +1,693 @@
{
"log": {
"level": "info",
"timestamp": true
},
"experimental": {
"cache_file": {
"enabled": true,
"path": "cache.db",
"store_fakeip": true
},
"clash_api": {
"external_controller": "127.0.0.1:9090",
"default_mode": "rule"
}
},
"dns": {
"servers": [
{
"type": "udp",
"tag": "dns-remote",
"server": "223.5.5.5",
"server_port": 53
},
{
"type": "udp",
"tag": "dns-direct",
"server": "119.29.29.29",
"server_port": 53
},
{
"type": "fakeip",
"tag": "dns-fakeip",
"inet4_range": "198.18.0.0/15",
"inet6_range": "fc00::/18"
}
],
"rules": [
{
"clash_mode": "Direct",
"server": "dns-direct"
},
{
"clash_mode": "Global",
"server": "dns-remote"
},
{
"rule_set": ["geosite-cn"],
"server": "dns-direct"
},
{
"query_type": ["A", "AAAA"],
"server": "dns-fakeip"
}
],
"final": "dns-remote"
},
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"address": [
"172.19.0.1/30",
"fd00::1/126"
],
"auto_route": true,
"strict_route": true,
"stack": "mixed"
},
{
"type": "mixed",
"tag": "mixed-in",
"listen": "127.0.0.1",
"listen_port": 7890
}
],
"outbounds": [
{
"type": "hysteria2",
"tag": "美国1-hy2",
"server": "64.69.34.207",
"server_port": 4439,
"password": "Se7RAuFZ8Lzg",
"up_mbps": 200,
"down_mbps": 500,
"tls": {
"enabled": true,
"server_name": "hy2.jocayn.qzz.io",
"alpn": ["h3"]
}
},
{
"type": "vless",
"tag": "美国1-vless",
"server": "64.69.34.207",
"server_port": 19150,
"uuid": "b9136671-ef40-4b5c-a007-dcf996ec2466",
"flow": "xtls-rprx-vision",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "aws.amazon.com",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "-dTj4YHBzV5tpgVpD4mgXzlAESmxjOoyyn6waky1Dkw",
"short_id": ""
},
"alpn": ["h2", "http/1.1"]
}
},
{
"type": "tuic",
"tag": "美国1-Tuic",
"server": "64.69.34.207",
"server_port": 4438,
"uuid": "ca4d81b1-f8d9-4533-8b61-c15e1da91697",
"password": "ca4d81b1-f8d9-4533-8b61-c15e1da91697",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"tls": {
"enabled": true,
"insecure": true,
"alpn": ["h3"]
}
},
{
"type": "vless",
"tag": "美国2-vless",
"server": "107.174.208.133",
"server_port": 34532,
"uuid": "1b8889b6-bb2f-4735-a401-4e53bdc81c51",
"flow": "xtls-rprx-vision",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "www.cloudflare.com",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "R31tFIfDoM8yjrCfQAQqQ8QhFt6KuGjhhtQ3oSnPbAI",
"short_id": ""
},
"alpn": ["h2", "http/1.1"]
}
},
{
"type": "tuic",
"tag": "美国2-Tuic",
"server": "107.174.208.133",
"server_port": 4438,
"uuid": "161eaa3d-cf5b-4c07-ab36-f4f58536d081",
"password": "161eaa3d-cf5b-4c07-ab36-f4f58536d081",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"tls": {
"enabled": true,
"insecure": true,
"alpn": ["h3"]
}
},
{
"type": "tuic",
"tag": "HK-Tuic",
"server": "154.94.234.168",
"server_port": 63155,
"uuid": "ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef",
"password": "ef24b7cf-ec2f-48b4-b2eb-c1314f8787ef",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": true,
"tls": {
"enabled": true,
"insecure": true,
"alpn": ["h3"]
}
},
{
"type": "vless",
"tag": "HK-vless[最高2.5mb/s]",
"server": "154.94.234.168",
"server_port": 63159,
"uuid": "27485652-f88d-48e8-b4ee-3759ac63ce80",
"flow": "xtls-rprx-vision",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "www.amazon.com",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "Jq_MTHf-vZLqpvPaViXUSZfQJ3oLM7DYeqBrtH8qlgs",
"short_id": ""
},
"alpn": ["h2", "http/1.1"]
}
},
{
"type": "hysteria2",
"tag": "HK-Hy2",
"server": "154.94.234.168",
"server_port": 4438,
"password": "09e70d0d-fb51-458a-a650-5922eaefcc24",
"up_mbps": 15,
"down_mbps": 15,
"tls": {
"enabled": true,
"server_name": "hy2.jocay.icu",
"insecure": true,
"alpn": ["h3"]
}
},
{
"type": "selector",
"tag": "CatMata",
"outbounds": ["direct", "♻️ Auto", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "urltest",
"tag": "♻️ Auto",
"outbounds": ["美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic"],
"url": "http://connectivitycheck.gstatic.com/generate_204",
"interval": "10m",
"tolerance": 50
},
{
"type": "selector",
"tag": "🍎 Apple",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "📲 Telegram",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "🎬 YouTube",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "🎬 BiliBili",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "🤖 OpenAI",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "🤖 Gemini",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "🤖 Claude",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "🎵 TikTok",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "💿 Spotify",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "📺 Netflix",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "📺 Disney",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "🌐 Google",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "☁️ OneDrive",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "🖥 Microsoft",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "👩‍💼 LinkedIn",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "🖥 Learning",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "📟 Twitter",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "📺 GlobalMedia",
"outbounds": ["CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "selector",
"tag": "🎬 Emby",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "🎮 Steam",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "🎮 OtherGames",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "💀 Hijacking",
"outbounds": ["direct", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "🇨🇳 ChinaWebsites",
"outbounds": ["direct", "CatMata", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"],
"default": "direct"
},
{
"type": "selector",
"tag": "Final",
"outbounds": ["CatMata", "direct", "美国1-vless", "美国1-Tuic", "美国2-vless", "美国2-Tuic", "HK-vless[最高2.5mb/s]", "HK-Hy2", "HK-Tuic"]
},
{
"type": "direct",
"tag": "direct"
}
],
"route": {
"rules": [
{
"action": "sniff"
},
{
"protocol": "dns",
"action": "hijack-dns"
},
{
"ip_is_private": true,
"outbound": "direct"
},
{
"clash_mode": "Direct",
"outbound": "direct"
},
{
"clash_mode": "Global",
"outbound": "CatMata"
},
{
"rule_set": ["geosite-telegram"],
"outbound": "📲 Telegram"
},
{
"rule_set": ["geosite-youtube"],
"outbound": "🎬 YouTube"
},
{
"rule_set": ["geosite-openai"],
"outbound": "🤖 OpenAI"
},
{
"rule_set": ["geosite-google-gemini"],
"outbound": "🤖 Gemini"
},
{
"rule_set": ["geosite-anthropic"],
"outbound": "🤖 Claude"
},
{
"rule_set": ["geosite-onedrive"],
"outbound": "☁️ OneDrive"
},
{
"domain_suffix": ["microsoftpersonalcontent.com"],
"outbound": "☁️ OneDrive"
},
{
"rule_set": ["geosite-microsoft"],
"outbound": "🖥 Microsoft"
},
{
"rule_set": ["geosite-google"],
"outbound": "🌐 Google"
},
{
"rule_set": ["geosite-apple"],
"outbound": "🍎 Apple"
},
{
"rule_set": ["geosite-linkedin"],
"outbound": "👩‍💼 LinkedIn"
},
{
"domain_suffix": [
"acm.org", "acs.org", "aip.org", "ams.org", "annualreviews.org",
"aps.org", "ascelibrary.org", "asm.org", "asme.org", "astm.org",
"blackwell-synergy.com", "bmj.com", "cabdirect.org", "cambridge.org",
"cas.org", "cell.com", "clarivate.com", "cnki.net", "cqvip.com",
"csiro.au", "deepdyve.com", "ebscohost.com", "els-cdn.com",
"elsevier.com", "emerald.com", "endnote.com", "engineeringvillage.com",
"icevirtuallibrary.com", "ieee.org", "imf.org", "iop.org",
"jamanetwork.com", "jbc.org", "jhu.edu", "jstor.org", "karger.com",
"libguides.com", "madsrevolution.net", "mdpi.com", "mpg.de",
"myilibrary.com", "nature.com", "ncbi.nlm.nih.gov", "oecd-ilibrary.org",
"osapublishing.org", "oup.com", "ovid.com", "oxfordartonline.com",
"oxfordbibliographies.com", "oxfordmusiconline.com", "pkulaw.com",
"pnas.org", "proquest.com", "readcube.com", "researchgate.net",
"rsc.org", "sagepub.com", "sci-hub.tw", "sciencedirect.com",
"sciencemag.org", "scitation.org", "scopus.com", "siam.org",
"spiedigitallibrary.org", "springer.com", "springerlink.com",
"tandfonline.com", "un.org", "uni-bielefeld.de", "wanfangdata.com",
"webofknowledge.com", "westlaw.com", "westlawchina.com", "wiley.com",
"worldbank.org", "worldscientific.com"
],
"outbound": "🖥 Learning"
},
{
"rule_set": ["geosite-twitter"],
"outbound": "📟 Twitter"
},
{
"rule_set": ["geosite-bilibili"],
"outbound": "🎬 BiliBili"
},
{
"rule_set": ["geosite-tiktok"],
"outbound": "🎵 TikTok"
},
{
"rule_set": ["geosite-spotify"],
"outbound": "💿 Spotify"
},
{
"rule_set": ["geosite-netflix"],
"outbound": "📺 Netflix"
},
{
"rule_set": ["geosite-disney"],
"outbound": "📺 Disney"
},
{
"rule_set": ["geosite-category-games"],
"outbound": "🎮 OtherGames"
},
{
"rule_set": ["geosite-steam"],
"outbound": "🎮 Steam"
},
{
"domain_suffix": ["makima.online"],
"outbound": "direct"
},
{
"domain_suffix": ["mobaiemby.site", "recmata.net"],
"outbound": "🎬 Emby"
},
{
"rule_set": ["geosite-geolocation-!cn"],
"outbound": "📺 GlobalMedia"
},
{
"rule_set": ["geosite-cn"],
"outbound": "🇨🇳 ChinaWebsites"
},
{
"rule_set": ["geoip-cn"],
"outbound": "🇨🇳 ChinaWebsites"
}
],
"rule_set": [
{
"tag": "geosite-telegram",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-telegram.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-youtube",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-youtube.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-openai",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-openai.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-google-gemini",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-google-gemini.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-anthropic",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-anthropic.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-onedrive",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-onedrive.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-microsoft",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-microsoft.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-google",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-google.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-apple",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-apple.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-linkedin",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-linkedin.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-twitter",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-twitter.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-bilibili",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-bilibili.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-tiktok",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-tiktok.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-spotify",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-spotify.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-netflix",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-netflix.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-disney",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-disney.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-category-games",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-category-games.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-steam",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-steam.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-geolocation-!cn",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-!cn.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geosite-cn",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-cn.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
},
{
"tag": "geoip-cn",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs",
"download_detour": "美国1-vless",
"update_interval": "24h"
}
],
"final": "Final",
"auto_detect_interface": true,
"default_domain_resolver": "dns-direct"
}
}
+36
View File
@@ -0,0 +1,36 @@
# CatMata Sub2Proxy
这是一个用于获取 Clash / Sing-box 订阅节点并自动进行跨平台格式转换、重命名及整合的轻量控制面板与工具。
## 功能特性
* **一键拉取转换**:支持 Clash (YAML) 与 Sing-box (JSON) 订阅的获取,并进行双向转换。
* **节点智能重命名**:自动重命名节点为 `[订阅源]-[协议]`,如有同协议重名节点,自动附带递增数字。
* **规则整合替换**:根据预置的 `CatMata.optimized.yaml``CatMata.json` / `CatMata-tun.json` 模板,动态替换策略组/出站节点,保留原分流和 DNS 规则。
* **可视化控制面板**:基于本地 Node.js 精美单网页 (Glassmorphism),可方便管理订阅、修改节点字段、配置 DNS。
* **客户端一键唤醒导入**:历史记录面板支持一键唤醒本地 Clash / Sing-box 客户端,直接将配置导入客户端。
* **CLI 静默模式**:支持 `--cli` 无界面静默转换,方便接入自动化定时脚本。
## 目录结构
* `public/index.html` - 控制面板前端网页
* `sub2proxy.js` - 后端及 CLI 转换引擎
* `subs.json` - 订阅源配置
* `CatMata.*` - Clash 与 Sing-box 的配置模板
## 快速开始
### 运行环境
* [Node.js](https://nodejs.org/) (建议 v18+)
### 启动可视化面板 (GUI)
双击运行 `sub2proxy.bat`,或者在终端运行:
```bash
node sub2proxy.js
```
启动后会在默认浏览器中打开控制面板:`http://localhost:3000`
### 命令行编译 (CLI)
在终端运行:
```bash
node sub2proxy.js --cli
```
配置会自动输出到 `out/CatMata-sub.yaml``out/CatMata-sub.json`,并归档于 `out/history`
+13
View File
@@ -0,0 +1,13 @@
{
"name": "sub2proxy",
"version": "1.0.0",
"description": "Clash & Sing-box subscription converter with a modern web control panel.",
"main": "sub2proxy.js",
"scripts": {
"start": "node sub2proxy.js",
"cli": "node sub2proxy.js --cli"
},
"dependencies": {
"js-yaml": "^4.1.0"
}
}
+1421
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
python "$(dirname "$0")/sub2proxy.py" "$@"
+2
View File
@@ -0,0 +1,2 @@
@echo off
python "%~dp0sub2proxy.py" %*
+791
View File
@@ -0,0 +1,791 @@
#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const http = require('http');
const { execSync, exec } = require('child_process');
// Auto-install js-yaml if missing
try {
require('js-yaml');
} catch (e) {
console.log('js-yaml module not found. Installing it via npm...');
try {
execSync('npm install js-yaml', { stdio: 'inherit' });
} catch (err) {
console.error('Failed to install js-yaml:', err.message);
process.exit(1);
}
}
const yaml = require('js-yaml');
function getProtoName(typeStr) {
const t = typeStr.toLowerCase();
if (t === 'hysteria2') return 'hy2';
if (t === 'ss' || t === 'shadowsocks') return 'ss';
return t;
}
function parseSpeed(speedStr) {
if (!speedStr) return null;
const m = String(speedStr).match(/(\d+)/);
return m ? parseInt(m[1], 10) : null;
}
function clashToSingbox(node) {
const sb = {};
const t = (node.type || '').toLowerCase();
sb.tag = node.name;
sb.server = node.server;
sb.server_port = parseInt(node.port || 0, 10);
if (t === 'hysteria2') {
sb.type = 'hysteria2';
sb.password = node.password;
const up = parseSpeed(node.up);
if (up !== null) sb.up_mbps = up;
const down = parseSpeed(node.down);
if (down !== null) sb.down_mbps = down;
const tls = { enabled: true };
if (node.sni) tls.server_name = node.sni;
if (node.hasOwnProperty('skip-cert-verify')) tls.insecure = !!node['skip-cert-verify'];
if (node.alpn) tls.alpn = node.alpn;
sb.tls = tls;
} else if (t === 'vless') {
sb.type = 'vless';
sb.uuid = node.uuid;
sb.flow = node.flow || '';
sb.network = node.network || 'tcp';
if (node['packet-encoding']) sb.packet_encoding = node['packet-encoding'];
const tls = { enabled: false };
if (node.tls) {
tls.enabled = true;
if (node.servername) tls.server_name = node.servername;
if (node.hasOwnProperty('skip-cert-verify')) tls.insecure = !!node['skip-cert-verify'];
if (node.alpn) tls.alpn = node.alpn;
if (node['reality-opts'] || (node.opts && node.opts.reality)) {
const ropts = node['reality-opts'] || {};
tls.reality = {
enabled: true,
public_key: ropts['public-key'] || '',
short_id: ropts['short-id'] || ''
};
}
if (node['client-fingerprint']) {
tls.utls = {
enabled: true,
fingerprint: node['client-fingerprint']
};
}
}
sb.tls = tls;
} else if (t === 'tuic') {
sb.type = 'tuic';
sb.uuid = node.uuid;
sb.password = node.password;
if (node['congestion-controller']) sb.congestion_control = node['congestion-controller'];
if (node['udp-relay-mode']) sb.udp_relay_mode = node['udp-relay-mode'];
if (node['reduce-rtt']) sb.zero_rtt_handshake = !!node['reduce-rtt'];
const tls = { enabled: true };
if (node.hasOwnProperty('disable-sni')) tls.disable_sni = !!node['disable-sni'];
if (node.hasOwnProperty('skip-cert-verify')) tls.insecure = !!node['skip-cert-verify'];
if (node.alpn) tls.alpn = node.alpn;
sb.tls = tls;
} else if (t === 'ss' || t === 'shadowsocks') {
sb.type = 'shadowsocks';
sb.method = node.cipher;
sb.password = node.password;
} else if (t === 'trojan') {
sb.type = 'trojan';
sb.password = node.password;
const tls = { enabled: true };
if (node.sni) tls.server_name = node.sni;
if (node.hasOwnProperty('skip-cert-verify')) tls.insecure = !!node['skip-cert-verify'];
if (node.alpn) tls.alpn = node.alpn;
sb.tls = tls;
} else if (t === 'vmess') {
sb.type = 'vmess';
sb.uuid = node.uuid;
sb.security = node.cipher || 'auto';
sb.alter_id = parseInt(node.alterId || 0, 10);
const tls = { enabled: false };
if (node.tls) {
tls.enabled = true;
if (node.servername) tls.server_name = node.servername;
if (node.hasOwnProperty('skip-cert-verify')) tls.insecure = !!node['skip-cert-verify'];
}
sb.tls = tls;
if (node.network === 'ws') {
const ws_opts = node['ws-opts'] || {};
sb.transport = {
type: 'ws',
path: ws_opts.path || '/',
headers: ws_opts.headers || {}
};
}
} else {
sb.type = t;
for (const k in node) {
if (!['name', 'port', 'type', 'server'].includes(k)) {
sb[k] = node[k];
}
}
}
return sb;
}
function singboxToClash(node) {
const c = {};
const t = (node.type || '').toLowerCase();
c.name = node.tag;
c.server = node.server;
c.port = parseInt(node.server_port || 0, 10);
c.udp = true;
if (t === 'hysteria2') {
c.type = 'hysteria2';
c.password = node.password;
if (node.up_mbps) c.up = `${node.up_mbps} Mbps`;
if (node.down_mbps) c.down = `${node.down_mbps} Mbps`;
const tls = node.tls || {};
if (tls.enabled) {
if (tls.server_name) c.sni = tls.server_name;
if (tls.hasOwnProperty('insecure')) c['skip-cert-verify'] = !!tls.insecure;
if (tls.alpn) c.alpn = tls.alpn;
}
} else if (t === 'vless') {
c.type = 'vless';
c.uuid = node.uuid;
c.flow = node.flow || '';
c.network = node.network || 'tcp';
if (node.packet_encoding) c['packet-encoding'] = node.packet_encoding;
const tls = node.tls || {};
if (tls.enabled) {
c.tls = true;
if (tls.server_name) c.servername = tls.server_name;
if (tls.hasOwnProperty('insecure')) c['skip-cert-verify'] = !!tls.insecure;
if (tls.alpn) c.alpn = tls.alpn;
const reality = tls.reality || {};
if (reality.enabled) {
c['reality-opts'] = {
'public-key': reality.public_key || '',
'short-id': reality.short_id || ''
};
}
const utls = tls.utls || {};
if (utls.enabled && utls.fingerprint) {
c['client-fingerprint'] = utls.fingerprint;
}
} else {
c.tls = false;
}
} else if (t === 'tuic') {
c.type = 'tuic';
c.version = 5;
c.uuid = node.uuid;
c.password = node.password;
if (node.congestion_control) c['congestion-controller'] = node.congestion_control;
if (node.udp_relay_mode) c['udp-relay-mode'] = node.udp_relay_mode;
if (node.hasOwnProperty('zero_rtt_handshake')) c['reduce-rtt'] = !!node.zero_rtt_handshake;
const tls = node.tls || {};
if (tls.enabled) {
if (tls.hasOwnProperty('disable_sni')) c['disable-sni'] = !!tls.disable_sni;
if (tls.hasOwnProperty('insecure')) c['skip-cert-verify'] = !!tls.insecure;
if (tls.alpn) c.alpn = tls.alpn;
}
} else if (t === 'shadowsocks') {
c.type = 'ss';
c.cipher = node.method;
c.password = node.password;
} else if (t === 'trojan') {
c.type = 'trojan';
c.password = node.password;
const tls = node.tls || {};
if (tls.enabled) {
if (tls.server_name) c.sni = tls.server_name;
if (tls.hasOwnProperty('insecure')) c['skip-cert-verify'] = !!tls.insecure;
if (tls.alpn) c.alpn = tls.alpn;
}
} else if (t === 'vmess') {
c.type = 'vmess';
c.uuid = node.uuid;
c.cipher = node.security || 'auto';
c.alterId = parseInt(node.alter_id || 0, 10);
const tls = node.tls || {};
if (tls.enabled) {
c.tls = true;
if (tls.server_name) c.servername = tls.server_name;
if (tls.hasOwnProperty('insecure')) c['skip-cert-verify'] = !!tls.insecure;
} else {
c.tls = false;
}
const trans = node.transport || {};
if (trans.type === 'ws') {
c.network = 'ws';
c['ws-opts'] = {
path: trans.path || '/',
headers: trans.headers || {}
};
}
} else {
c.type = t;
for (const k in node) {
if (!['tag', 'server_port', 'type', 'server'].includes(k)) {
c[k] = node[k];
}
}
}
return c;
}
async function loadSubscriptionContent(link) {
if (link.startsWith('http://') || link.startsWith('https://')) {
try {
const controller = new AbortController();
const id = setTimeout(() => controller.abort(), 15000);
const res = await fetch(link, {
headers: {
'User-Agent': 'clash-meta; sing-box; Mozilla/5.0'
},
signal: controller.signal
});
clearTimeout(id);
if (!res.ok) {
throw new Error(`HTTP error! status: ${res.status}`);
}
return await res.text();
} catch (e) {
console.error(`Error fetching ${link}:`, e.message);
return null;
}
} else {
try {
return fs.readFileSync(link, 'utf-8');
} catch (e) {
console.error(`Error reading local file ${link}:`, e.message);
return null;
}
}
}
function parseClashNodes(content) {
try {
const data = yaml.load(content);
if (data && typeof data === 'object' && Array.isArray(data.proxies)) {
return data.proxies;
}
} catch (e) {
console.error(`Error parsing Clash YAML:`, e.message);
}
return [];
}
function parseSingboxNodes(content) {
try {
const data = JSON.parse(content);
if (data && typeof data === 'object') {
const outbounds = data.outbounds || [];
return outbounds.filter(o =>
o && o.type && !['selector', 'urltest', 'direct', 'block', 'dns'].includes(o.type)
);
}
} catch (e) {
console.error(`Error parsing Sing-box JSON:`, e.message);
}
return [];
}
const usedNames = new Set();
function renameNode(node, subName, isClash = true) {
const typeStr = (node.type || '').toLowerCase();
const protoClean = getProtoName(typeStr);
const baseName = `${subName}-${protoClean}`;
let newName = baseName;
let counter = 1;
while (usedNames.has(newName.toLowerCase())) {
newName = `${baseName}-${counter}`;
counter++;
}
usedNames.add(newName.toLowerCase());
if (isClash) {
node.name = newName;
} else {
node.tag = newName;
}
return newName;
}
function detectTemplates() {
let yamlTpl = 'CatMata.optimized.yaml';
if (!fs.existsSync(yamlTpl)) {
const yamls = fs.readdirSync('.').filter(f => f.endsWith('.yaml') || f.endsWith('.yml'));
const matched = yamls.find(f => f.includes('CatMata'));
if (matched) yamlTpl = matched;
}
let jsonTpl = 'CatMata.json';
if (!fs.existsSync(jsonTpl)) {
if (fs.existsSync('CatMata-tun.json')) {
jsonTpl = 'CatMata-tun.json';
} else {
const jsons = fs.readdirSync('.').filter(f => f.endsWith('.json') && f !== 'subs.json');
const matched = jsons.find(f => f.includes('CatMata'));
if (matched) jsonTpl = matched;
}
}
return { yamlTpl, jsonTpl };
}
function replaceNodeRefs(data, oldNodesSet, fallbackNode) {
if (data && typeof data === 'object') {
if (Array.isArray(data)) {
for (const item of data) {
replaceNodeRefs(item, oldNodesSet, fallbackNode);
}
} else {
for (const k in data) {
if ((k === 'detour' || k === 'download_detour') && typeof data[k] === 'string') {
if (oldNodesSet.has(data[k])) {
data[k] = fallbackNode;
}
} else {
replaceNodeRefs(data[k], oldNodesSet, fallbackNode);
}
}
}
}
}
// Configuration paths
const subsFile = 'subs.json';
const outDir = 'out';
const PORT = 3000;
// Central configuration generation function
function generateConfigs(rawClashNodes, dns = null) {
const { yamlTpl, jsonTpl } = detectTemplates();
if (!fs.existsSync(outDir)) {
fs.mkdirSync(outDir, { recursive: true });
}
// 1. Process Clash Config
const clashConfig = yaml.load(fs.readFileSync(yamlTpl, 'utf-8')) || {};
clashConfig.proxies = rawClashNodes;
if (dns && dns.clash) {
clashConfig.dns = yaml.load(dns.clash);
}
const groupNames = new Set((clashConfig['proxy-groups'] || []).map(g => g.name));
const specialNames = new Set(['DIRECT', 'REJECT', 'PASS', 'COMPATIBLE']);
const newNodeNames = rawClashNodes.map(n => n.name);
for (const group of (clashConfig['proxy-groups'] || [])) {
const oldProxies = group.proxies || [];
const nonNodeItems = oldProxies.filter(p => groupNames.has(p) || specialNames.has(p));
const hasNodes = oldProxies.some(p => !groupNames.has(p) && !specialNames.has(p));
if (hasNodes || nonNodeItems.length === 0) {
group.proxies = [...nonNodeItems, ...newNodeNames];
}
}
const outYamlPath = path.join(outDir, 'CatMata-sub.yaml');
fs.writeFileSync(outYamlPath, yaml.dump(clashConfig, { noRefs: true, sortKeys: false }), 'utf-8');
// 2. Process Sing-box Config
const sbConfig = JSON.parse(fs.readFileSync(jsonTpl, 'utf-8')) || {};
const allSingboxNodes = rawClashNodes.map(n => {
const nodeCopy = JSON.parse(JSON.stringify(n));
return clashToSingbox(nodeCopy);
});
if (dns && dns.singbox) {
sbConfig.dns = JSON.parse(dns.singbox);
}
const oldNodesSet = new Set();
const preservedOutbounds = [];
for (const o of (sbConfig.outbounds || [])) {
if (['selector', 'urltest', 'direct', 'block', 'dns'].includes(o.type)) {
preservedOutbounds.push(o);
} else {
oldNodesSet.add(o.tag);
}
}
const groupTags = new Set(preservedOutbounds.filter(o => ['selector', 'urltest'].includes(o.type)).map(o => o.tag));
const specialTags = new Set(['direct', 'block', 'dns']);
const newNodeTags = allSingboxNodes.map(n => n.tag);
for (const o of preservedOutbounds) {
if (['selector', 'urltest'].includes(o.type)) {
const oldList = o.outbounds || [];
const nonNodeTags = oldList.filter(t => groupTags.has(t) || specialTags.has(t));
const hasNodes = oldList.some(t => !groupTags.has(t) && !specialTags.has(t));
if (hasNodes || nonNodeTags.length === 0) {
o.outbounds = [...nonNodeTags, ...newNodeTags];
}
if (o.default && oldNodesSet.has(o.default)) {
o.default = newNodeTags[0];
}
}
}
replaceNodeRefs(sbConfig, oldNodesSet, newNodeTags[0]);
sbConfig.outbounds = [...preservedOutbounds, ...allSingboxNodes];
const outJsonPath = path.join(outDir, 'CatMata-sub.json');
fs.writeFileSync(outJsonPath, JSON.stringify(sbConfig, null, 2), 'utf-8');
// Archive in history
const historyDir = path.join(outDir, 'history');
if (!fs.existsSync(historyDir)) {
fs.mkdirSync(historyDir, { recursive: true });
}
const now = new Date();
const pad = n => String(n).padStart(2, '0');
const timestampFile = `${now.getFullYear()}${pad(now.getMonth()+1)}${pad(now.getDate())}-${pad(now.getHours())}${pad(now.getMinutes())}${pad(now.getSeconds())}`;
const timeStr = `${now.getFullYear()}-${pad(now.getMonth()+1)}-${pad(now.getDate())} ${pad(now.getHours())}:${pad(now.getMinutes())}:${pad(now.getSeconds())}`;
const histYamlName = `CatMata-sub-${timestampFile}.yaml`;
const histJsonName = `CatMata-sub-${timestampFile}.json`;
fs.writeFileSync(path.join(historyDir, histYamlName), fs.readFileSync(outYamlPath));
fs.writeFileSync(path.join(historyDir, histJsonName), fs.readFileSync(outJsonPath));
const historyJsonPath = path.join(historyDir, 'history.json');
let historyList = [];
if (fs.existsSync(historyJsonPath)) {
try {
historyList = JSON.parse(fs.readFileSync(historyJsonPath, 'utf-8'));
} catch (e) {
console.error("Failed to parse history.json, resetting:", e.message);
}
}
historyList.unshift({
timestamp: now.toISOString(),
timeStr: timeStr,
yamlFile: histYamlName,
jsonFile: histJsonName,
nodesCount: rawClashNodes.length
});
fs.writeFileSync(historyJsonPath, JSON.stringify(historyList, null, 2), 'utf-8');
return { yamlPath: outYamlPath, jsonPath: outJsonPath };
}
function openBrowser(url) {
let cmd;
if (process.platform === 'win32') {
cmd = `start "" "${url}"`;
} else if (process.platform === 'darwin') {
cmd = `open "${url}"`;
} else {
cmd = `xdg-open "${url}"`;
}
exec(cmd, err => {
if (err) console.error('Failed to open browser:', err);
});
}
function readJsonBody(req) {
return new Promise((resolve, reject) => {
let body = '';
req.on('data', chunk => { body += chunk; });
req.on('end', () => {
try {
resolve(JSON.parse(body || '{}'));
} catch (e) {
reject(e);
}
});
req.on('error', err => reject(err));
});
}
// HTTP Server setup
function startServer() {
const server = http.createServer(async (req, res) => {
const parsedUrl = new URL(req.url, `http://${req.headers.host}`);
const pathname = parsedUrl.pathname;
// Static Index file
if (pathname === '/' || pathname === '/index.html') {
const htmlPath = path.join(__dirname, 'public', 'index.html');
if (fs.existsSync(htmlPath)) {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
res.end(fs.readFileSync(htmlPath));
} else {
res.writeHead(404);
res.end('index.html not found');
}
return;
}
// API: GET /api/subs
if (pathname === '/api/subs' && req.method === 'GET') {
if (fs.existsSync(subsFile)) {
res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
res.end(fs.readFileSync(subsFile));
} else {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify([]));
}
return;
}
// API: POST /api/subs
if (pathname === '/api/subs' && req.method === 'POST') {
try {
const payload = await readJsonBody(req);
fs.writeFileSync(subsFile, JSON.stringify(payload, null, 2), 'utf-8');
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ success: true }));
} catch (e) {
res.writeHead(500);
res.end(e.message);
}
return;
}
// API: GET /api/dns
if (pathname === '/api/dns' && req.method === 'GET') {
try {
const { yamlTpl, jsonTpl } = detectTemplates();
const clashConfig = yaml.load(fs.readFileSync(yamlTpl, 'utf-8')) || {};
const sbConfig = JSON.parse(fs.readFileSync(jsonTpl, 'utf-8')) || {};
const clashDnsStr = yaml.dump(clashConfig.dns || {}, { noRefs: true, sortKeys: false });
const sbDnsStr = JSON.stringify(sbConfig.dns || {}, null, 2);
res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
res.end(JSON.stringify({ clash: clashDnsStr, singbox: sbDnsStr }));
} catch (e) {
res.writeHead(500);
res.end(e.message);
}
return;
}
// API: POST /api/fetch (Fetches and converts in-memory)
if (pathname === '/api/fetch' && req.method === 'POST') {
try {
if (!fs.existsSync(subsFile)) {
res.writeHead(400);
res.end('Subscription config subs.json is missing');
return;
}
const subs = JSON.parse(fs.readFileSync(subsFile, 'utf-8'));
const allClashNodes = [];
usedNames.clear();
for (const sub of subs) {
const subName = sub.name || 'Sub';
const subLink = sub.link;
const subType = (sub.type || 'clash').toLowerCase();
if (!subLink) continue;
const content = await loadSubscriptionContent(subLink);
if (!content) continue;
if (subType === 'clash') {
const nodes = parseClashNodes(content);
for (const node of nodes) {
const cNode = JSON.parse(JSON.stringify(node));
renameNode(cNode, subName, true);
allClashNodes.push(cNode);
}
} else if (subType === 'singbox') {
const nodes = parseSingboxNodes(content);
for (const node of nodes) {
const sbNode = JSON.parse(JSON.stringify(node));
renameNode(sbNode, subName, false);
const cNode = singboxToClash(sbNode);
allClashNodes.push(cNode);
}
}
}
res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
res.end(JSON.stringify({ proxies: allClashNodes }));
} catch (e) {
res.writeHead(500);
res.end(e.message);
}
return;
}
// API: POST /api/generate (Generates and writes configurations)
if (pathname === '/api/generate' && req.method === 'POST') {
try {
const { proxies: rawClashNodes, dns } = await readJsonBody(req);
if (!rawClashNodes || !Array.isArray(rawClashNodes) || rawClashNodes.length === 0) {
res.writeHead(400);
res.end('No proxies supplied');
return;
}
generateConfigs(rawClashNodes, dns);
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ success: true }));
} catch (e) {
res.writeHead(500);
res.end(e.message);
}
return;
}
// API: GET /api/history
if (pathname === '/api/history' && req.method === 'GET') {
const historyJsonPath = path.join(outDir, 'history', 'history.json');
if (fs.existsSync(historyJsonPath)) {
res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
res.end(fs.readFileSync(historyJsonPath));
} else {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify([]));
}
return;
}
// API: GET /api/download
if (pathname === '/api/download' && req.method === 'GET') {
const fileName = parsedUrl.searchParams.get('file');
if (!fileName) {
res.writeHead(400);
res.end('Missing file parameter');
return;
}
// Security check: prevent directory traversal
const safeRegex = /^CatMata-sub-\d{8}-\d{6}\.(yaml|json)$/;
if (!safeRegex.test(fileName)) {
res.writeHead(400);
res.end('Invalid file name');
return;
}
const filePath = path.join(outDir, 'history', fileName);
if (fs.existsSync(filePath)) {
const isYaml = fileName.endsWith('.yaml');
res.writeHead(200, {
'Content-Type': isYaml ? 'application/x-yaml' : 'application/json; charset=utf-8',
'Content-Disposition': `attachment; filename="${fileName}"`
});
res.end(fs.readFileSync(filePath));
} else {
res.writeHead(404);
res.end('File not found');
}
return;
}
res.writeHead(404);
res.end('Not Found');
});
server.listen(PORT, () => {
console.log(`CatMata Sub2Proxy 控制面板已启动!`);
console.log(`本地访问地址: http://localhost:${PORT}`);
console.log(`正在自动打开默认浏览器...`);
openBrowser(`http://localhost:${PORT}`);
});
}
// Legacy CLI Mode fallback
async function runCli() {
const detected = detectTemplates();
const yamlTpl = detected.yamlTpl;
const jsonTpl = detected.jsonTpl;
console.log(`CLI 编译模式:`);
console.log(`Clash 模板: ${yamlTpl}`);
console.log(`Sing-box 模板: ${jsonTpl}`);
if (!fs.existsSync(subsFile)) {
console.error(`Error: subs.json not found.`);
process.exit(1);
}
const subs = JSON.parse(fs.readFileSync(subsFile, 'utf-8'));
const allClashNodes = [];
usedNames.clear();
for (const sub of subs) {
const subName = sub.name || 'Sub';
const subLink = sub.link;
const subType = (sub.type || 'clash').toLowerCase();
if (!subLink) continue;
const content = await loadSubscriptionContent(subLink);
if (!content) continue;
if (subType === 'clash') {
const nodes = parseClashNodes(content);
for (const node of nodes) {
const cNode = JSON.parse(JSON.stringify(node));
const newName = renameNode(cNode, subName, true);
allClashNodes.push(cNode);
}
} else if (subType === 'singbox') {
const nodes = parseSingboxNodes(content);
for (const node of nodes) {
const sbNode = JSON.parse(JSON.stringify(node));
const newName = renameNode(sbNode, subName, false);
const cNode = singboxToClash(sbNode);
allClashNodes.push(cNode);
}
}
}
if (allClashNodes.length === 0) {
console.error("未拉取到任何代理节点。");
process.exit(1);
}
try {
const result = generateConfigs(allClashNodes);
console.log(`生成 Clash 配置成功: ${result.yamlPath}`);
console.log(`生成 Sing-box 配置成功: ${result.jsonPath}`);
} catch (e) {
console.error("生成配置失败:", e.message);
}
}
// Start Main Routine
const args = process.argv.slice(2);
if (args.includes('--cli') || args.includes('-c')) {
runCli();
} else {
startServer();
}
+7
View File
@@ -0,0 +1,7 @@
[
{
"name": "美国1",
"link": "http://107.174.208.133:48936/jocay/clmi.yaml",
"type": "clash"
}
]