添加 server_config:jp 服务器端配置(nginx/sing-box/流量监控/脚本/存档),已脱敏
This commit is contained in:
@@ -0,0 +1,647 @@
|
||||
function FindProxyForURL(url, host) {
|
||||
// RRPP 规则代理列表 — 仅以下域名走加密隧道
|
||||
var proxy = "PROXY 127.0.0.1:1080";
|
||||
// Google 全系 + Gemini + CDN
|
||||
if (shExpMatch(host, "google.com") ||
|
||||
shExpMatch(host, "*.google.com") ||
|
||||
shExpMatch(host, "google.com.hk") ||
|
||||
shExpMatch(host, "*.google.com.hk") ||
|
||||
shExpMatch(host, "google.co.jp") ||
|
||||
shExpMatch(host, "*.google.co.jp") ||
|
||||
shExpMatch(host, "googleapis.com") ||
|
||||
shExpMatch(host, "*.googleapis.com") ||
|
||||
shExpMatch(host, "googleusercontent.com") ||
|
||||
shExpMatch(host, "*.googleusercontent.com") ||
|
||||
shExpMatch(host, "googletagmanager.com") ||
|
||||
shExpMatch(host, "*.googletagmanager.com") ||
|
||||
shExpMatch(host, "google-analytics.com") ||
|
||||
shExpMatch(host, "*.google-analytics.com") ||
|
||||
shExpMatch(host, "gstatic.com") ||
|
||||
shExpMatch(host, "*.gstatic.com") ||
|
||||
shExpMatch(host, "ggpht.com") ||
|
||||
shExpMatch(host, "*.ggpht.com") ||
|
||||
shExpMatch(host, "googlehosted.com") ||
|
||||
shExpMatch(host, "*.googlehosted.com") ||
|
||||
shExpMatch(host, "1e100.net") ||
|
||||
shExpMatch(host, "*.1e100.net") ||
|
||||
shExpMatch(host, "youtube.com") ||
|
||||
shExpMatch(host, "*.youtube.com") ||
|
||||
shExpMatch(host, "ytimg.com") ||
|
||||
shExpMatch(host, "*.ytimg.com") ||
|
||||
shExpMatch(host, "googlevideo.com") ||
|
||||
shExpMatch(host, "*.googlevideo.com") ||
|
||||
shExpMatch(host, "gemini.google.com") ||
|
||||
shExpMatch(host, "*.gemini.google.com") ||
|
||||
shExpMatch(host, "generativeai.googleapis.com") ||
|
||||
shExpMatch(host, "*.generativeai.googleapis.com") ||
|
||||
shExpMatch(host, "aistudio.google.com") ||
|
||||
shExpMatch(host, "*.aistudio.google.com") ||
|
||||
shExpMatch(host, "deepmind.google.com") ||
|
||||
shExpMatch(host, "*.deepmind.google.com") ||
|
||||
shExpMatch(host, "deepmind.com") ||
|
||||
shExpMatch(host, "*.deepmind.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// OpenAI / ChatGPT 全系 + CDN
|
||||
if (shExpMatch(host, "openai.com") ||
|
||||
shExpMatch(host, "*.openai.com") ||
|
||||
shExpMatch(host, "chatgpt.com") ||
|
||||
shExpMatch(host, "*.chatgpt.com") ||
|
||||
shExpMatch(host, "oaistatic.com") ||
|
||||
shExpMatch(host, "*.oaistatic.com") ||
|
||||
shExpMatch(host, "oaiusercontent.com") ||
|
||||
shExpMatch(host, "*.oaiusercontent.com") ||
|
||||
shExpMatch(host, "openaiusercontent.com") ||
|
||||
shExpMatch(host, "*.openaiusercontent.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Grok / xAI 全系 + CDN
|
||||
if (shExpMatch(host, "grok.com") ||
|
||||
shExpMatch(host, "*.grok.com") ||
|
||||
shExpMatch(host, "x.com") ||
|
||||
shExpMatch(host, "*.x.com") ||
|
||||
shExpMatch(host, "twitter.com") ||
|
||||
shExpMatch(host, "*.twitter.com") ||
|
||||
shExpMatch(host, "twimg.com") ||
|
||||
shExpMatch(host, "*.twimg.com") ||
|
||||
shExpMatch(host, "x.ai") ||
|
||||
shExpMatch(host, "*.x.ai") ||
|
||||
shExpMatch(host, "xai.com") ||
|
||||
shExpMatch(host, "*.xai.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Meta 全系 + CDN
|
||||
if (shExpMatch(host, "meta.com") ||
|
||||
shExpMatch(host, "*.meta.com") ||
|
||||
shExpMatch(host, "meta.ai") ||
|
||||
shExpMatch(host, "*.meta.ai") ||
|
||||
shExpMatch(host, "facebook.com") ||
|
||||
shExpMatch(host, "*.facebook.com") ||
|
||||
shExpMatch(host, "fb.com") ||
|
||||
shExpMatch(host, "*.fb.com") ||
|
||||
shExpMatch(host, "fbcdn.net") ||
|
||||
shExpMatch(host, "*.fbcdn.net") ||
|
||||
shExpMatch(host, "fbsbx.com") ||
|
||||
shExpMatch(host, "*.fbsbx.com") ||
|
||||
shExpMatch(host, "instagram.com") ||
|
||||
shExpMatch(host, "*.instagram.com") ||
|
||||
shExpMatch(host, "cdninstagram.com") ||
|
||||
shExpMatch(host, "*.cdninstagram.com") ||
|
||||
shExpMatch(host, "threads.net") ||
|
||||
shExpMatch(host, "*.threads.net") ||
|
||||
shExpMatch(host, "whatsapp.com") ||
|
||||
shExpMatch(host, "*.whatsapp.com") ||
|
||||
shExpMatch(host, "whatsapp.net") ||
|
||||
shExpMatch(host, "*.whatsapp.net") ||
|
||||
shExpMatch(host, "messenger.com") ||
|
||||
shExpMatch(host, "*.messenger.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Claude / Anthropic 全系 + CDN
|
||||
if (shExpMatch(host, "anthropic.com") ||
|
||||
shExpMatch(host, "*.anthropic.com") ||
|
||||
shExpMatch(host, "claude.ai") ||
|
||||
shExpMatch(host, "*.claude.ai") ||
|
||||
shExpMatch(host, "claudeusercontent.com") ||
|
||||
shExpMatch(host, "*.claudeusercontent.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Dify 全系
|
||||
if (shExpMatch(host, "dify.ai") ||
|
||||
shExpMatch(host, "*.dify.ai") ||
|
||||
shExpMatch(host, "udify.app") ||
|
||||
shExpMatch(host, "*.udify.app")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Cloudflare 全系
|
||||
if (shExpMatch(host, "cloudflare.com") ||
|
||||
shExpMatch(host, "*.cloudflare.com") ||
|
||||
shExpMatch(host, "cloudflare.net") ||
|
||||
shExpMatch(host, "*.cloudflare.net") ||
|
||||
shExpMatch(host, "cloudflareinsights.com") ||
|
||||
shExpMatch(host, "*.cloudflareinsights.com") ||
|
||||
shExpMatch(host, "cloudflarestatus.com") ||
|
||||
shExpMatch(host, "*.cloudflarestatus.com") ||
|
||||
shExpMatch(host, "cloudflarecdn.com") ||
|
||||
shExpMatch(host, "*.cloudflarecdn.com") ||
|
||||
shExpMatch(host, "cf-cdn.com") ||
|
||||
shExpMatch(host, "*.cf-cdn.com") ||
|
||||
shExpMatch(host, "workers.dev") ||
|
||||
shExpMatch(host, "*.workers.dev") ||
|
||||
shExpMatch(host, "pages.dev") ||
|
||||
shExpMatch(host, "*.pages.dev")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// GitHub 全系
|
||||
if (shExpMatch(host, "github.com") ||
|
||||
shExpMatch(host, "*.github.com") ||
|
||||
shExpMatch(host, "githubusercontent.com") ||
|
||||
shExpMatch(host, "*.githubusercontent.com") ||
|
||||
shExpMatch(host, "githubassets.com") ||
|
||||
shExpMatch(host, "*.githubassets.com") ||
|
||||
shExpMatch(host, "github.io") ||
|
||||
shExpMatch(host, "*.github.io") ||
|
||||
shExpMatch(host, "githubcopilot.com") ||
|
||||
shExpMatch(host, "*.githubcopilot.com") ||
|
||||
shExpMatch(host, "ghcr.io") ||
|
||||
shExpMatch(host, "*.ghcr.io")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Hugging Face 全系 + CDN
|
||||
if (shExpMatch(host, "huggingface.co") ||
|
||||
shExpMatch(host, "*.huggingface.co") ||
|
||||
shExpMatch(host, "hf.co") ||
|
||||
shExpMatch(host, "*.hf.co") ||
|
||||
shExpMatch(host, "huggingfacecdn.com") ||
|
||||
shExpMatch(host, "*.huggingfacecdn.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Microsoft Copilot 全系 + Bing + Azure CDN
|
||||
if (shExpMatch(host, "microsoft.com") ||
|
||||
shExpMatch(host, "*.microsoft.com") ||
|
||||
shExpMatch(host, "bing.com") ||
|
||||
shExpMatch(host, "*.bing.com") ||
|
||||
shExpMatch(host, "bingapis.com") ||
|
||||
shExpMatch(host, "*.bingapis.com") ||
|
||||
shExpMatch(host, "bing.net") ||
|
||||
shExpMatch(host, "*.bing.net") ||
|
||||
shExpMatch(host, "live.com") ||
|
||||
shExpMatch(host, "*.live.com") ||
|
||||
shExpMatch(host, "microsoftonline.com") ||
|
||||
shExpMatch(host, "*.microsoftonline.com") ||
|
||||
shExpMatch(host, "microsoft365.com") ||
|
||||
shExpMatch(host, "*.microsoft365.com") ||
|
||||
shExpMatch(host, "office.com") ||
|
||||
shExpMatch(host, "*.office.com") ||
|
||||
shExpMatch(host, "office.net") ||
|
||||
shExpMatch(host, "*.office.net") ||
|
||||
shExpMatch(host, "azure.com") ||
|
||||
shExpMatch(host, "*.azure.com") ||
|
||||
shExpMatch(host, "azureedge.net") ||
|
||||
shExpMatch(host, "*.azureedge.net") ||
|
||||
shExpMatch(host, "azurefd.net") ||
|
||||
shExpMatch(host, "*.azurefd.net") ||
|
||||
shExpMatch(host, "msn.com") ||
|
||||
shExpMatch(host, "*.msn.com") ||
|
||||
shExpMatch(host, "msecnd.net") ||
|
||||
shExpMatch(host, "*.msecnd.net") ||
|
||||
shExpMatch(host, "msftncsi.com") ||
|
||||
shExpMatch(host, "*.msftncsi.com") ||
|
||||
shExpMatch(host, "s-microsoft.com") ||
|
||||
shExpMatch(host, "*.s-microsoft.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Steam 全系 + CDN / 社区 / 下载
|
||||
if (shExpMatch(host, "steampowered.com") ||
|
||||
shExpMatch(host, "*.steampowered.com") ||
|
||||
shExpMatch(host, "steamcommunity.com") ||
|
||||
shExpMatch(host, "*.steamcommunity.com") ||
|
||||
shExpMatch(host, "steam.com") ||
|
||||
shExpMatch(host, "*.steam.com") ||
|
||||
shExpMatch(host, "steamgames.com") ||
|
||||
shExpMatch(host, "*.steamgames.com") ||
|
||||
shExpMatch(host, "steamusercontent.com") ||
|
||||
shExpMatch(host, "*.steamusercontent.com") ||
|
||||
shExpMatch(host, "steamcontent.com") ||
|
||||
shExpMatch(host, "*.steamcontent.com") ||
|
||||
shExpMatch(host, "steamstatic.com") ||
|
||||
shExpMatch(host, "*.steamstatic.com") ||
|
||||
shExpMatch(host, "steam-chat.com") ||
|
||||
shExpMatch(host, "*.steam-chat.com") ||
|
||||
shExpMatch(host, "steam-api.com") ||
|
||||
shExpMatch(host, "*.steam-api.com") ||
|
||||
shExpMatch(host, "steamserver.net") ||
|
||||
shExpMatch(host, "*.steamserver.net") ||
|
||||
shExpMatch(host, "steamcdn-a.akamaihd.net") ||
|
||||
shExpMatch(host, "*.steamcdn-a.akamaihd.net") ||
|
||||
shExpMatch(host, "steamcommunity-a.akamaihd.net") ||
|
||||
shExpMatch(host, "*.steamcommunity-a.akamaihd.net") ||
|
||||
shExpMatch(host, "steamstore-a.akamaihd.net") ||
|
||||
shExpMatch(host, "*.steamstore-a.akamaihd.net") ||
|
||||
shExpMatch(host, "steamuserimages-a.akamaihd.net") ||
|
||||
shExpMatch(host, "*.steamuserimages-a.akamaihd.net") ||
|
||||
shExpMatch(host, "akamaihd.net") ||
|
||||
shExpMatch(host, "*.akamaihd.net") ||
|
||||
shExpMatch(host, "valvesoftware.com") ||
|
||||
shExpMatch(host, "*.valvesoftware.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Discord 全系
|
||||
if (shExpMatch(host, "discord.com") ||
|
||||
shExpMatch(host, "*.discord.com") ||
|
||||
shExpMatch(host, "discordapp.com") ||
|
||||
shExpMatch(host, "*.discordapp.com") ||
|
||||
shExpMatch(host, "discord.gg") ||
|
||||
shExpMatch(host, "*.discord.gg") ||
|
||||
shExpMatch(host, "discord.media") ||
|
||||
shExpMatch(host, "*.discord.media") ||
|
||||
shExpMatch(host, "discordapp.net") ||
|
||||
shExpMatch(host, "*.discordapp.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Telegram 全系
|
||||
if (shExpMatch(host, "telegram.org") ||
|
||||
shExpMatch(host, "*.telegram.org") ||
|
||||
shExpMatch(host, "t.me") ||
|
||||
shExpMatch(host, "*.t.me") ||
|
||||
shExpMatch(host, "telega.one") ||
|
||||
shExpMatch(host, "*.telega.one") ||
|
||||
shExpMatch(host, "telegram-cdn.org") ||
|
||||
shExpMatch(host, "*.telegram-cdn.org")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Reddit 全系
|
||||
if (shExpMatch(host, "reddit.com") ||
|
||||
shExpMatch(host, "*.reddit.com") ||
|
||||
shExpMatch(host, "redd.it") ||
|
||||
shExpMatch(host, "*.redd.it") ||
|
||||
shExpMatch(host, "redditmedia.com") ||
|
||||
shExpMatch(host, "*.redditmedia.com") ||
|
||||
shExpMatch(host, "redditstatic.com") ||
|
||||
shExpMatch(host, "*.redditstatic.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// LINE 全系
|
||||
if (shExpMatch(host, "line.me") ||
|
||||
shExpMatch(host, "*.line.me") ||
|
||||
shExpMatch(host, "line-apps.com") ||
|
||||
shExpMatch(host, "*.line-apps.com") ||
|
||||
shExpMatch(host, "line-scdn.net") ||
|
||||
shExpMatch(host, "*.line-scdn.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Spotify 全系
|
||||
if (shExpMatch(host, "spotify.com") ||
|
||||
shExpMatch(host, "*.spotify.com") ||
|
||||
shExpMatch(host, "spotifycdn.com") ||
|
||||
shExpMatch(host, "*.spotifycdn.com") ||
|
||||
shExpMatch(host, "scdn.co") ||
|
||||
shExpMatch(host, "*.scdn.co")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Netflix 全系
|
||||
if (shExpMatch(host, "netflix.com") ||
|
||||
shExpMatch(host, "*.netflix.com") ||
|
||||
shExpMatch(host, "nflxvideo.net") ||
|
||||
shExpMatch(host, "*.nflxvideo.net") ||
|
||||
shExpMatch(host, "nflximg.net") ||
|
||||
shExpMatch(host, "*.nflximg.net") ||
|
||||
shExpMatch(host, "nflxext.com") ||
|
||||
shExpMatch(host, "*.nflxext.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Disney+ 全系
|
||||
if (shExpMatch(host, "disneyplus.com") ||
|
||||
shExpMatch(host, "*.disneyplus.com") ||
|
||||
shExpMatch(host, "disney-plus.net") ||
|
||||
shExpMatch(host, "*.disney-plus.net") ||
|
||||
shExpMatch(host, "dssott.com") ||
|
||||
shExpMatch(host, "*.dssott.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// TikTok 全系
|
||||
if (shExpMatch(host, "tiktok.com") ||
|
||||
shExpMatch(host, "*.tiktok.com") ||
|
||||
shExpMatch(host, "tiktokcdn.com") ||
|
||||
shExpMatch(host, "*.tiktokcdn.com") ||
|
||||
shExpMatch(host, "tiktokv.com") ||
|
||||
shExpMatch(host, "*.tiktokv.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// PlayStation 全系
|
||||
if (shExpMatch(host, "playstation.com") ||
|
||||
shExpMatch(host, "*.playstation.com") ||
|
||||
shExpMatch(host, "sonyentertainmentnetwork.com") ||
|
||||
shExpMatch(host, "*.sonyentertainmentnetwork.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Nintendo 全系
|
||||
if (shExpMatch(host, "nintendo.com") ||
|
||||
shExpMatch(host, "*.nintendo.com") ||
|
||||
shExpMatch(host, "nintendowifi.net") ||
|
||||
shExpMatch(host, "*.nintendowifi.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Epic Games 全系
|
||||
if (shExpMatch(host, "epicgames.com") ||
|
||||
shExpMatch(host, "*.epicgames.com") ||
|
||||
shExpMatch(host, "unrealengine.com") ||
|
||||
shExpMatch(host, "*.unrealengine.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// DuckDuckGo / Brave Search
|
||||
if (shExpMatch(host, "duckduckgo.com") ||
|
||||
shExpMatch(host, "*.duckduckgo.com") ||
|
||||
shExpMatch(host, "search.brave.com") ||
|
||||
shExpMatch(host, "*.search.brave.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Proton 全系
|
||||
if (shExpMatch(host, "proton.me") ||
|
||||
shExpMatch(host, "*.proton.me") ||
|
||||
shExpMatch(host, "protonmail.com") ||
|
||||
shExpMatch(host, "*.protonmail.com") ||
|
||||
shExpMatch(host, "protonvpn.com") ||
|
||||
shExpMatch(host, "*.protonvpn.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Stack Overflow / Stack Exchange 全系
|
||||
if (shExpMatch(host, "stackoverflow.com") ||
|
||||
shExpMatch(host, "*.stackoverflow.com") ||
|
||||
shExpMatch(host, "stackexchange.com") ||
|
||||
shExpMatch(host, "*.stackexchange.com") ||
|
||||
shExpMatch(host, "superuser.com") ||
|
||||
shExpMatch(host, "*.superuser.com") ||
|
||||
shExpMatch(host, "serverfault.com") ||
|
||||
shExpMatch(host, "*.serverfault.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Quora / Medium
|
||||
if (shExpMatch(host, "quora.com") ||
|
||||
shExpMatch(host, "*.quora.com") ||
|
||||
shExpMatch(host, "medium.com") ||
|
||||
shExpMatch(host, "*.medium.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Pixiv 全系
|
||||
if (shExpMatch(host, "pixiv.net") ||
|
||||
shExpMatch(host, "*.pixiv.net") ||
|
||||
shExpMatch(host, "pximg.net") ||
|
||||
shExpMatch(host, "*.pximg.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// ニコニコ 全系
|
||||
if (shExpMatch(host, "nicovideo.jp") ||
|
||||
shExpMatch(host, "*.nicovideo.jp") ||
|
||||
shExpMatch(host, "nico.ms") ||
|
||||
shExpMatch(host, "*.nico.ms")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// EA / Origin / Apex 全系
|
||||
if (shExpMatch(host, "ea.com") ||
|
||||
shExpMatch(host, "*.ea.com") ||
|
||||
shExpMatch(host, "origin.com") ||
|
||||
shExpMatch(host, "*.origin.com") ||
|
||||
shExpMatch(host, "eaassets.com") ||
|
||||
shExpMatch(host, "*.eaassets.com") ||
|
||||
shExpMatch(host, "apexlegends.com") ||
|
||||
shExpMatch(host, "*.apexlegends.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Battle.net / Blizzard 全系
|
||||
if (shExpMatch(host, "battle.net") ||
|
||||
shExpMatch(host, "*.battle.net") ||
|
||||
shExpMatch(host, "blizzard.com") ||
|
||||
shExpMatch(host, "*.blizzard.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Ubisoft 全系
|
||||
if (shExpMatch(host, "ubisoft.com") ||
|
||||
shExpMatch(host, "*.ubisoft.com") ||
|
||||
shExpMatch(host, "ubi.com") ||
|
||||
shExpMatch(host, "*.ubi.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Riot Games / 英雄联盟 / Valorant 全系
|
||||
if (shExpMatch(host, "riotgames.com") ||
|
||||
shExpMatch(host, "*.riotgames.com") ||
|
||||
shExpMatch(host, "leagueoflegends.com") ||
|
||||
shExpMatch(host, "*.leagueoflegends.com") ||
|
||||
shExpMatch(host, "valorant.com") ||
|
||||
shExpMatch(host, "*.valorant.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// GOG / itch.io 全系
|
||||
if (shExpMatch(host, "gog.com") ||
|
||||
shExpMatch(host, "*.gog.com") ||
|
||||
shExpMatch(host, "itch.io") ||
|
||||
shExpMatch(host, "*.itch.io")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Twitch 全系
|
||||
if (shExpMatch(host, "twitch.tv") ||
|
||||
shExpMatch(host, "*.twitch.tv") ||
|
||||
shExpMatch(host, "ttvnw.net") ||
|
||||
shExpMatch(host, "*.ttvnw.net") ||
|
||||
shExpMatch(host, "twitchcdn.net") ||
|
||||
shExpMatch(host, "*.twitchcdn.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Crunchyroll 全系
|
||||
if (shExpMatch(host, "crunchyroll.com") ||
|
||||
shExpMatch(host, "*.crunchyroll.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Amazon Prime Video 全系
|
||||
if (shExpMatch(host, "primevideo.com") ||
|
||||
shExpMatch(host, "*.primevideo.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Apple TV+ 全系
|
||||
if (shExpMatch(host, "tv.apple.com") ||
|
||||
shExpMatch(host, "tvplus.apple.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// HBO Max / Hulu / Paramount+ 全系
|
||||
if (shExpMatch(host, "max.com") ||
|
||||
shExpMatch(host, "*.max.com") ||
|
||||
shExpMatch(host, "hulu.com") ||
|
||||
shExpMatch(host, "*.hulu.com") ||
|
||||
shExpMatch(host, "paramountplus.com") ||
|
||||
shExpMatch(host, "*.paramountplus.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Slack 全系
|
||||
if (shExpMatch(host, "slack.com") ||
|
||||
shExpMatch(host, "*.slack.com") ||
|
||||
shExpMatch(host, "slack-edge.com") ||
|
||||
shExpMatch(host, "*.slack-edge.com") ||
|
||||
shExpMatch(host, "slack-imgs.com") ||
|
||||
shExpMatch(host, "*.slack-imgs.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Zoom 全系
|
||||
if (shExpMatch(host, "zoom.us") ||
|
||||
shExpMatch(host, "*.zoom.us") ||
|
||||
shExpMatch(host, "zoom.com") ||
|
||||
shExpMatch(host, "*.zoom.com") ||
|
||||
shExpMatch(host, "zoomgov.com") ||
|
||||
shExpMatch(host, "*.zoomgov.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Signal 全系
|
||||
if (shExpMatch(host, "signal.org") ||
|
||||
shExpMatch(host, "*.signal.org")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Docker 全系
|
||||
if (shExpMatch(host, "docker.com") ||
|
||||
shExpMatch(host, "*.docker.com") ||
|
||||
shExpMatch(host, "docker.io") ||
|
||||
shExpMatch(host, "*.docker.io")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// GitLab 全系
|
||||
if (shExpMatch(host, "gitlab.com") ||
|
||||
shExpMatch(host, "*.gitlab.com") ||
|
||||
shExpMatch(host, "gitlab.io") ||
|
||||
shExpMatch(host, "*.gitlab.io")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Vercel 全系
|
||||
if (shExpMatch(host, "vercel.com") ||
|
||||
shExpMatch(host, "*.vercel.com") ||
|
||||
shExpMatch(host, "vercel.app") ||
|
||||
shExpMatch(host, "*.vercel.app")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Netlify 全系
|
||||
if (shExpMatch(host, "netlify.com") ||
|
||||
shExpMatch(host, "*.netlify.com") ||
|
||||
shExpMatch(host, "netlify.app") ||
|
||||
shExpMatch(host, "*.netlify.app")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Perplexity / Poe / Midjourney 全系
|
||||
if (shExpMatch(host, "perplexity.ai") ||
|
||||
shExpMatch(host, "*.perplexity.ai") ||
|
||||
shExpMatch(host, "poe.com") ||
|
||||
shExpMatch(host, "*.poe.com") ||
|
||||
shExpMatch(host, "midjourney.com") ||
|
||||
shExpMatch(host, "*.midjourney.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Figma / Canva 全系
|
||||
if (shExpMatch(host, "figma.com") ||
|
||||
shExpMatch(host, "*.figma.com") ||
|
||||
shExpMatch(host, "canva.com") ||
|
||||
shExpMatch(host, "*.canva.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// LinkedIn 全系
|
||||
if (shExpMatch(host, "linkedin.com") ||
|
||||
shExpMatch(host, "*.linkedin.com") ||
|
||||
shExpMatch(host, "licdn.com") ||
|
||||
shExpMatch(host, "*.licdn.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Pinterest 全系
|
||||
if (shExpMatch(host, "pinterest.com") ||
|
||||
shExpMatch(host, "*.pinterest.com") ||
|
||||
shExpMatch(host, "pinimg.com") ||
|
||||
shExpMatch(host, "*.pinimg.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Tumblr 全系
|
||||
if (shExpMatch(host, "tumblr.com") ||
|
||||
shExpMatch(host, "*.tumblr.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Snapchat 全系
|
||||
if (shExpMatch(host, "snapchat.com") ||
|
||||
shExpMatch(host, "*.snapchat.com") ||
|
||||
shExpMatch(host, "sc-cdn.net") ||
|
||||
shExpMatch(host, "*.sc-cdn.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Wikipedia / Wikimedia 全系
|
||||
if (shExpMatch(host, "wikipedia.org") ||
|
||||
shExpMatch(host, "*.wikipedia.org") ||
|
||||
shExpMatch(host, "wikimedia.org") ||
|
||||
shExpMatch(host, "*.wikimedia.org")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// PayPal 全系
|
||||
if (shExpMatch(host, "paypal.com") ||
|
||||
shExpMatch(host, "*.paypal.com") ||
|
||||
shExpMatch(host, "paypalobjects.com") ||
|
||||
shExpMatch(host, "*.paypalobjects.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Patreon 全系
|
||||
if (shExpMatch(host, "patreon.com") ||
|
||||
shExpMatch(host, "*.patreon.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// 通用 CDN
|
||||
if (shExpMatch(host, "cloudfront.net") ||
|
||||
shExpMatch(host, "*.cloudfront.net") ||
|
||||
shExpMatch(host, "fastly.net") ||
|
||||
shExpMatch(host, "*.fastly.net") ||
|
||||
shExpMatch(host, "fastlylb.net") ||
|
||||
shExpMatch(host, "*.fastlylb.net") ||
|
||||
shExpMatch(host, "jsdelivr.net") ||
|
||||
shExpMatch(host, "*.jsdelivr.net") ||
|
||||
shExpMatch(host, "unpkg.com") ||
|
||||
shExpMatch(host, "*.unpkg.com") ||
|
||||
shExpMatch(host, "statically.io") ||
|
||||
shExpMatch(host, "*.statically.io") ||
|
||||
shExpMatch(host, "cloudinary.com") ||
|
||||
shExpMatch(host, "*.cloudinary.com") ||
|
||||
shExpMatch(host, "imgur.com") ||
|
||||
shExpMatch(host, "*.imgur.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// linux.do
|
||||
if (shExpMatch(host, "linux.do") ||
|
||||
shExpMatch(host, "*.linux.do")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
return "DIRECT";
|
||||
}
|
||||
@@ -0,0 +1,648 @@
|
||||
function FindProxyForURL(url, host) {
|
||||
// RRPP 规则代理列表 — 仅以下域名走加密隧道
|
||||
var proxy = "PROXY 127.0.0.1:1080";
|
||||
// Google 全系 + Gemini + CDN
|
||||
if (shExpMatch(host, "google.com") ||
|
||||
shExpMatch(host, "*.google.com") ||
|
||||
shExpMatch(host, "google.com.hk") ||
|
||||
shExpMatch(host, "*.google.com.hk") ||
|
||||
shExpMatch(host, "google.co.jp") ||
|
||||
shExpMatch(host, "*.google.co.jp") ||
|
||||
shExpMatch(host, "googleapis.com") ||
|
||||
shExpMatch(host, "*.googleapis.com") ||
|
||||
shExpMatch(host, "googleusercontent.com") ||
|
||||
shExpMatch(host, "*.googleusercontent.com") ||
|
||||
shExpMatch(host, "googletagmanager.com") ||
|
||||
shExpMatch(host, "*.googletagmanager.com") ||
|
||||
shExpMatch(host, "google-analytics.com") ||
|
||||
shExpMatch(host, "*.google-analytics.com") ||
|
||||
shExpMatch(host, "gstatic.com") ||
|
||||
shExpMatch(host, "*.gstatic.com") ||
|
||||
shExpMatch(host, "ggpht.com") ||
|
||||
shExpMatch(host, "*.ggpht.com") ||
|
||||
shExpMatch(host, "googlehosted.com") ||
|
||||
shExpMatch(host, "*.googlehosted.com") ||
|
||||
shExpMatch(host, "1e100.net") ||
|
||||
shExpMatch(host, "*.1e100.net") ||
|
||||
shExpMatch(host, "youtube.com") ||
|
||||
shExpMatch(host, "*.youtube.com") ||
|
||||
shExpMatch(host, "ytimg.com") ||
|
||||
shExpMatch(host, "*.ytimg.com") ||
|
||||
shExpMatch(host, "googlevideo.com") ||
|
||||
shExpMatch(host, "*.googlevideo.com") ||
|
||||
shExpMatch(host, "gemini.google.com") ||
|
||||
shExpMatch(host, "*.gemini.google.com") ||
|
||||
shExpMatch(host, "generativeai.googleapis.com") ||
|
||||
shExpMatch(host, "*.generativeai.googleapis.com") ||
|
||||
shExpMatch(host, "aistudio.google.com") ||
|
||||
shExpMatch(host, "*.aistudio.google.com") ||
|
||||
shExpMatch(host, "deepmind.google.com") ||
|
||||
shExpMatch(host, "*.deepmind.google.com") ||
|
||||
shExpMatch(host, "deepmind.com") ||
|
||||
shExpMatch(host, "*.deepmind.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// OpenAI / ChatGPT 全系 + CDN
|
||||
if (shExpMatch(host, "openai.com") ||
|
||||
shExpMatch(host, "*.openai.com") ||
|
||||
shExpMatch(host, "chatgpt.com") ||
|
||||
shExpMatch(host, "*.chatgpt.com") ||
|
||||
shExpMatch(host, "oaistatic.com") ||
|
||||
shExpMatch(host, "*.oaistatic.com") ||
|
||||
shExpMatch(host, "oaiusercontent.com") ||
|
||||
shExpMatch(host, "*.oaiusercontent.com") ||
|
||||
shExpMatch(host, "openaiusercontent.com") ||
|
||||
shExpMatch(host, "*.openaiusercontent.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Grok / xAI 全系 + CDN
|
||||
if (shExpMatch(host, "grok.com") ||
|
||||
shExpMatch(host, "*.grok.com") ||
|
||||
shExpMatch(host, "x.com") ||
|
||||
shExpMatch(host, "*.x.com") ||
|
||||
shExpMatch(host, "twitter.com") ||
|
||||
shExpMatch(host, "*.twitter.com") ||
|
||||
shExpMatch(host, "twimg.com") ||
|
||||
shExpMatch(host, "*.twimg.com") ||
|
||||
shExpMatch(host, "x.ai") ||
|
||||
shExpMatch(host, "*.x.ai") ||
|
||||
shExpMatch(host, "xai.com") ||
|
||||
shExpMatch(host, "*.xai.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Meta 全系 + CDN
|
||||
if (shExpMatch(host, "meta.com") ||
|
||||
shExpMatch(host, "*.meta.com") ||
|
||||
shExpMatch(host, "meta.ai") ||
|
||||
shExpMatch(host, "*.meta.ai") ||
|
||||
shExpMatch(host, "facebook.com") ||
|
||||
shExpMatch(host, "*.facebook.com") ||
|
||||
shExpMatch(host, "fb.com") ||
|
||||
shExpMatch(host, "*.fb.com") ||
|
||||
shExpMatch(host, "fbcdn.net") ||
|
||||
shExpMatch(host, "*.fbcdn.net") ||
|
||||
shExpMatch(host, "fbsbx.com") ||
|
||||
shExpMatch(host, "*.fbsbx.com") ||
|
||||
shExpMatch(host, "instagram.com") ||
|
||||
shExpMatch(host, "*.instagram.com") ||
|
||||
shExpMatch(host, "cdninstagram.com") ||
|
||||
shExpMatch(host, "*.cdninstagram.com") ||
|
||||
shExpMatch(host, "threads.net") ||
|
||||
shExpMatch(host, "*.threads.net") ||
|
||||
shExpMatch(host, "whatsapp.com") ||
|
||||
shExpMatch(host, "*.whatsapp.com") ||
|
||||
shExpMatch(host, "whatsapp.net") ||
|
||||
shExpMatch(host, "*.whatsapp.net") ||
|
||||
shExpMatch(host, "messenger.com") ||
|
||||
shExpMatch(host, "*.messenger.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Claude / Anthropic 全系 + CDN
|
||||
if (shExpMatch(host, "anthropic.com") ||
|
||||
shExpMatch(host, "*.anthropic.com") ||
|
||||
shExpMatch(host, "claude.ai") ||
|
||||
shExpMatch(host, "*.claude.ai") ||
|
||||
shExpMatch(host, "claudeusercontent.com") ||
|
||||
shExpMatch(host, "*.claudeusercontent.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Dify 全系
|
||||
if (shExpMatch(host, "dify.ai") ||
|
||||
shExpMatch(host, "*.dify.ai") ||
|
||||
shExpMatch(host, "udify.app") ||
|
||||
shExpMatch(host, "*.udify.app")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Cloudflare 全系
|
||||
if (shExpMatch(host, "cloudflare.com") ||
|
||||
shExpMatch(host, "*.cloudflare.com") ||
|
||||
shExpMatch(host, "cloudflare.net") ||
|
||||
shExpMatch(host, "*.cloudflare.net") ||
|
||||
shExpMatch(host, "cloudflareinsights.com") ||
|
||||
shExpMatch(host, "*.cloudflareinsights.com") ||
|
||||
shExpMatch(host, "cloudflarestatus.com") ||
|
||||
shExpMatch(host, "*.cloudflarestatus.com") ||
|
||||
shExpMatch(host, "cloudflarecdn.com") ||
|
||||
shExpMatch(host, "*.cloudflarecdn.com") ||
|
||||
shExpMatch(host, "cf-cdn.com") ||
|
||||
shExpMatch(host, "*.cf-cdn.com") ||
|
||||
shExpMatch(host, "workers.dev") ||
|
||||
shExpMatch(host, "*.workers.dev") ||
|
||||
shExpMatch(host, "pages.dev") ||
|
||||
shExpMatch(host, "*.pages.dev")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// GitHub 全系
|
||||
if (shExpMatch(host, "github.com") ||
|
||||
shExpMatch(host, "*.github.com") ||
|
||||
shExpMatch(host, "githubusercontent.com") ||
|
||||
shExpMatch(host, "*.githubusercontent.com") ||
|
||||
shExpMatch(host, "githubassets.com") ||
|
||||
shExpMatch(host, "*.githubassets.com") ||
|
||||
shExpMatch(host, "github.io") ||
|
||||
shExpMatch(host, "*.github.io") ||
|
||||
shExpMatch(host, "githubcopilot.com") ||
|
||||
shExpMatch(host, "*.githubcopilot.com") ||
|
||||
shExpMatch(host, "ghcr.io") ||
|
||||
shExpMatch(host, "*.ghcr.io")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Hugging Face 全系 + CDN
|
||||
if (shExpMatch(host, "huggingface.co") ||
|
||||
shExpMatch(host, "*.huggingface.co") ||
|
||||
shExpMatch(host, "hf.co") ||
|
||||
shExpMatch(host, "*.hf.co") ||
|
||||
shExpMatch(host, "huggingfacecdn.com") ||
|
||||
shExpMatch(host, "*.huggingfacecdn.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Microsoft Copilot 全系 + Bing + Azure CDN
|
||||
if (shExpMatch(host, "microsoft.com") ||
|
||||
shExpMatch(host, "*.microsoft.com") ||
|
||||
shExpMatch(host, "bing.com") ||
|
||||
shExpMatch(host, "*.bing.com") ||
|
||||
shExpMatch(host, "bingapis.com") ||
|
||||
shExpMatch(host, "*.bingapis.com") ||
|
||||
shExpMatch(host, "bing.net") ||
|
||||
shExpMatch(host, "*.bing.net") ||
|
||||
shExpMatch(host, "live.com") ||
|
||||
shExpMatch(host, "*.live.com") ||
|
||||
shExpMatch(host, "microsoftonline.com") ||
|
||||
shExpMatch(host, "*.microsoftonline.com") ||
|
||||
shExpMatch(host, "microsoft365.com") ||
|
||||
shExpMatch(host, "*.microsoft365.com") ||
|
||||
shExpMatch(host, "office.com") ||
|
||||
shExpMatch(host, "*.office.com") ||
|
||||
shExpMatch(host, "office.net") ||
|
||||
shExpMatch(host, "*.office.net") ||
|
||||
shExpMatch(host, "azure.com") ||
|
||||
shExpMatch(host, "*.azure.com") ||
|
||||
shExpMatch(host, "azureedge.net") ||
|
||||
shExpMatch(host, "*.azureedge.net") ||
|
||||
shExpMatch(host, "azurefd.net") ||
|
||||
shExpMatch(host, "*.azurefd.net") ||
|
||||
shExpMatch(host, "msn.com") ||
|
||||
shExpMatch(host, "*.msn.com") ||
|
||||
shExpMatch(host, "msecnd.net") ||
|
||||
shExpMatch(host, "*.msecnd.net") ||
|
||||
shExpMatch(host, "msftncsi.com") ||
|
||||
shExpMatch(host, "*.msftncsi.com") ||
|
||||
shExpMatch(host, "s-microsoft.com") ||
|
||||
shExpMatch(host, "*.s-microsoft.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Steam 全系 + CDN / 社区 / 下载
|
||||
if (shExpMatch(host, "steampowered.com") ||
|
||||
shExpMatch(host, "*.steampowered.com") ||
|
||||
shExpMatch(host, "steamcommunity.com") ||
|
||||
shExpMatch(host, "*.steamcommunity.com") ||
|
||||
shExpMatch(host, "steam.com") ||
|
||||
shExpMatch(host, "*.steam.com") ||
|
||||
shExpMatch(host, "steamgames.com") ||
|
||||
shExpMatch(host, "*.steamgames.com") ||
|
||||
shExpMatch(host, "steamusercontent.com") ||
|
||||
shExpMatch(host, "*.steamusercontent.com") ||
|
||||
shExpMatch(host, "steamcontent.com") ||
|
||||
shExpMatch(host, "*.steamcontent.com") ||
|
||||
shExpMatch(host, "steamstatic.com") ||
|
||||
shExpMatch(host, "*.steamstatic.com") ||
|
||||
shExpMatch(host, "steam-chat.com") ||
|
||||
shExpMatch(host, "*.steam-chat.com") ||
|
||||
shExpMatch(host, "steam-api.com") ||
|
||||
shExpMatch(host, "*.steam-api.com") ||
|
||||
shExpMatch(host, "steamserver.net") ||
|
||||
shExpMatch(host, "*.steamserver.net") ||
|
||||
shExpMatch(host, "steamcdn-a.akamaihd.net") ||
|
||||
shExpMatch(host, "*.steamcdn-a.akamaihd.net") ||
|
||||
shExpMatch(host, "steamcommunity-a.akamaihd.net") ||
|
||||
shExpMatch(host, "*.steamcommunity-a.akamaihd.net") ||
|
||||
shExpMatch(host, "steamstore-a.akamaihd.net") ||
|
||||
shExpMatch(host, "*.steamstore-a.akamaihd.net") ||
|
||||
shExpMatch(host, "steamuserimages-a.akamaihd.net") ||
|
||||
shExpMatch(host, "*.steamuserimages-a.akamaihd.net") ||
|
||||
shExpMatch(host, "akamaihd.net") ||
|
||||
shExpMatch(host, "*.akamaihd.net") ||
|
||||
shExpMatch(host, "valvesoftware.com") ||
|
||||
shExpMatch(host, "*.valvesoftware.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Discord 全系
|
||||
if (shExpMatch(host, "discord.com") ||
|
||||
shExpMatch(host, "*.discord.com") ||
|
||||
shExpMatch(host, "discordapp.com") ||
|
||||
shExpMatch(host, "*.discordapp.com") ||
|
||||
shExpMatch(host, "discord.gg") ||
|
||||
shExpMatch(host, "*.discord.gg") ||
|
||||
shExpMatch(host, "discord.media") ||
|
||||
shExpMatch(host, "*.discord.media") ||
|
||||
shExpMatch(host, "discordapp.net") ||
|
||||
shExpMatch(host, "*.discordapp.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Telegram 全系
|
||||
if (shExpMatch(host, "telegram.org") ||
|
||||
shExpMatch(host, "*.telegram.org") ||
|
||||
shExpMatch(host, "t.me") ||
|
||||
shExpMatch(host, "*.t.me") ||
|
||||
shExpMatch(host, "telega.one") ||
|
||||
shExpMatch(host, "*.telega.one") ||
|
||||
shExpMatch(host, "telegram-cdn.org") ||
|
||||
shExpMatch(host, "*.telegram-cdn.org")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Reddit 全系
|
||||
if (shExpMatch(host, "reddit.com") ||
|
||||
shExpMatch(host, "*.reddit.com") ||
|
||||
shExpMatch(host, "redd.it") ||
|
||||
shExpMatch(host, "*.redd.it") ||
|
||||
shExpMatch(host, "redditmedia.com") ||
|
||||
shExpMatch(host, "*.redditmedia.com") ||
|
||||
shExpMatch(host, "redditstatic.com") ||
|
||||
shExpMatch(host, "*.redditstatic.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// LINE 全系
|
||||
if (shExpMatch(host, "line.me") ||
|
||||
shExpMatch(host, "*.line.me") ||
|
||||
shExpMatch(host, "line-apps.com") ||
|
||||
shExpMatch(host, "*.line-apps.com") ||
|
||||
shExpMatch(host, "line-scdn.net") ||
|
||||
shExpMatch(host, "*.line-scdn.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Spotify 全系
|
||||
if (shExpMatch(host, "spotify.com") ||
|
||||
shExpMatch(host, "*.spotify.com") ||
|
||||
shExpMatch(host, "spotifycdn.com") ||
|
||||
shExpMatch(host, "*.spotifycdn.com") ||
|
||||
shExpMatch(host, "scdn.co") ||
|
||||
shExpMatch(host, "*.scdn.co")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Netflix 全系
|
||||
if (shExpMatch(host, "netflix.com") ||
|
||||
shExpMatch(host, "*.netflix.com") ||
|
||||
shExpMatch(host, "nflxvideo.net") ||
|
||||
shExpMatch(host, "*.nflxvideo.net") ||
|
||||
shExpMatch(host, "nflximg.net") ||
|
||||
shExpMatch(host, "*.nflximg.net") ||
|
||||
shExpMatch(host, "nflxext.com") ||
|
||||
shExpMatch(host, "*.nflxext.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Disney+ 全系
|
||||
if (shExpMatch(host, "disneyplus.com") ||
|
||||
shExpMatch(host, "*.disneyplus.com") ||
|
||||
shExpMatch(host, "disney-plus.net") ||
|
||||
shExpMatch(host, "*.disney-plus.net") ||
|
||||
shExpMatch(host, "dssott.com") ||
|
||||
shExpMatch(host, "*.dssott.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// TikTok 全系
|
||||
if (shExpMatch(host, "tiktok.com") ||
|
||||
shExpMatch(host, "*.tiktok.com") ||
|
||||
shExpMatch(host, "tiktokcdn.com") ||
|
||||
shExpMatch(host, "*.tiktokcdn.com") ||
|
||||
shExpMatch(host, "tiktokv.com") ||
|
||||
shExpMatch(host, "*.tiktokv.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// PlayStation 全系
|
||||
if (shExpMatch(host, "playstation.com") ||
|
||||
shExpMatch(host, "*.playstation.com") ||
|
||||
shExpMatch(host, "sonyentertainmentnetwork.com") ||
|
||||
shExpMatch(host, "*.sonyentertainmentnetwork.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Nintendo 全系
|
||||
if (shExpMatch(host, "nintendo.com") ||
|
||||
shExpMatch(host, "*.nintendo.com") ||
|
||||
shExpMatch(host, "nintendowifi.net") ||
|
||||
shExpMatch(host, "*.nintendowifi.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Epic Games 全系
|
||||
if (shExpMatch(host, "epicgames.com") ||
|
||||
shExpMatch(host, "*.epicgames.com") ||
|
||||
shExpMatch(host, "unrealengine.com") ||
|
||||
shExpMatch(host, "*.unrealengine.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// DuckDuckGo / Brave Search
|
||||
if (shExpMatch(host, "duckduckgo.com") ||
|
||||
shExpMatch(host, "*.duckduckgo.com") ||
|
||||
shExpMatch(host, "search.brave.com") ||
|
||||
shExpMatch(host, "*.search.brave.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Proton 全系
|
||||
if (shExpMatch(host, "proton.me") ||
|
||||
shExpMatch(host, "*.proton.me") ||
|
||||
shExpMatch(host, "protonmail.com") ||
|
||||
shExpMatch(host, "*.protonmail.com") ||
|
||||
shExpMatch(host, "protonvpn.com") ||
|
||||
shExpMatch(host, "*.protonvpn.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Stack Overflow / Stack Exchange 全系
|
||||
if (shExpMatch(host, "stackoverflow.com") ||
|
||||
shExpMatch(host, "*.stackoverflow.com") ||
|
||||
shExpMatch(host, "stackexchange.com") ||
|
||||
shExpMatch(host, "*.stackexchange.com") ||
|
||||
shExpMatch(host, "superuser.com") ||
|
||||
shExpMatch(host, "*.superuser.com") ||
|
||||
shExpMatch(host, "serverfault.com") ||
|
||||
shExpMatch(host, "*.serverfault.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Quora / Medium
|
||||
if (shExpMatch(host, "quora.com") ||
|
||||
shExpMatch(host, "*.quora.com") ||
|
||||
shExpMatch(host, "medium.com") ||
|
||||
shExpMatch(host, "*.medium.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Pixiv 全系
|
||||
if (shExpMatch(host, "pixiv.net") ||
|
||||
shExpMatch(host, "*.pixiv.net") ||
|
||||
shExpMatch(host, "pximg.net") ||
|
||||
shExpMatch(host, "*.pximg.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// ニコニコ 全系
|
||||
if (shExpMatch(host, "nicovideo.jp") ||
|
||||
shExpMatch(host, "*.nicovideo.jp") ||
|
||||
shExpMatch(host, "nico.ms") ||
|
||||
shExpMatch(host, "*.nico.ms")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// EA / Origin / Apex 全系
|
||||
if (shExpMatch(host, "ea.com") ||
|
||||
shExpMatch(host, "*.ea.com") ||
|
||||
shExpMatch(host, "origin.com") ||
|
||||
shExpMatch(host, "*.origin.com") ||
|
||||
shExpMatch(host, "eaassets.com") ||
|
||||
shExpMatch(host, "*.eaassets.com") ||
|
||||
shExpMatch(host, "apexlegends.com") ||
|
||||
shExpMatch(host, "*.apexlegends.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Battle.net / Blizzard 全系
|
||||
if (shExpMatch(host, "battle.net") ||
|
||||
shExpMatch(host, "*.battle.net") ||
|
||||
shExpMatch(host, "blizzard.com") ||
|
||||
shExpMatch(host, "*.blizzard.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Ubisoft 全系
|
||||
if (shExpMatch(host, "ubisoft.com") ||
|
||||
shExpMatch(host, "*.ubisoft.com") ||
|
||||
shExpMatch(host, "ubi.com") ||
|
||||
shExpMatch(host, "*.ubi.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Riot Games / 英雄联盟 / Valorant 全系
|
||||
if (shExpMatch(host, "riotgames.com") ||
|
||||
shExpMatch(host, "*.riotgames.com") ||
|
||||
shExpMatch(host, "leagueoflegends.com") ||
|
||||
shExpMatch(host, "*.leagueoflegends.com") ||
|
||||
shExpMatch(host, "valorant.com") ||
|
||||
shExpMatch(host, "*.valorant.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// GOG / itch.io 全系
|
||||
if (shExpMatch(host, "gog.com") ||
|
||||
shExpMatch(host, "*.gog.com") ||
|
||||
shExpMatch(host, "itch.io") ||
|
||||
shExpMatch(host, "*.itch.io")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Twitch 全系
|
||||
if (shExpMatch(host, "twitch.tv") ||
|
||||
shExpMatch(host, "*.twitch.tv") ||
|
||||
shExpMatch(host, "ttvnw.net") ||
|
||||
shExpMatch(host, "*.ttvnw.net") ||
|
||||
shExpMatch(host, "twitchcdn.net") ||
|
||||
shExpMatch(host, "*.twitchcdn.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Crunchyroll 全系
|
||||
if (shExpMatch(host, "crunchyroll.com") ||
|
||||
shExpMatch(host, "*.crunchyroll.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Amazon Prime Video 全系
|
||||
if (shExpMatch(host, "primevideo.com") ||
|
||||
shExpMatch(host, "*.primevideo.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Apple TV+ 全系
|
||||
if (shExpMatch(host, "tv.apple.com") ||
|
||||
shExpMatch(host, "tvplus.apple.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// HBO Max / Hulu / Paramount+ 全系
|
||||
if (shExpMatch(host, "max.com") ||
|
||||
shExpMatch(host, "*.max.com") ||
|
||||
shExpMatch(host, "hulu.com") ||
|
||||
shExpMatch(host, "*.hulu.com") ||
|
||||
shExpMatch(host, "paramountplus.com") ||
|
||||
shExpMatch(host, "*.paramountplus.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Slack 全系
|
||||
if (shExpMatch(host, "slack.com") ||
|
||||
shExpMatch(host, "*.slack.com") ||
|
||||
shExpMatch(host, "slack-edge.com") ||
|
||||
shExpMatch(host, "*.slack-edge.com") ||
|
||||
shExpMatch(host, "slack-imgs.com") ||
|
||||
shExpMatch(host, "*.slack-imgs.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Zoom 全系
|
||||
if (shExpMatch(host, "zoom.us") ||
|
||||
shExpMatch(host, "*.zoom.us") ||
|
||||
shExpMatch(host, "zoom.com") ||
|
||||
shExpMatch(host, "*.zoom.com") ||
|
||||
shExpMatch(host, "zoomgov.com") ||
|
||||
shExpMatch(host, "*.zoomgov.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Signal 全系
|
||||
if (shExpMatch(host, "signal.org") ||
|
||||
shExpMatch(host, "*.signal.org")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Docker 全系
|
||||
if (shExpMatch(host, "docker.com") ||
|
||||
shExpMatch(host, "*.docker.com") ||
|
||||
shExpMatch(host, "docker.io") ||
|
||||
shExpMatch(host, "*.docker.io")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// GitLab 全系
|
||||
if (shExpMatch(host, "gitlab.com") ||
|
||||
shExpMatch(host, "*.gitlab.com") ||
|
||||
shExpMatch(host, "gitlab.io") ||
|
||||
shExpMatch(host, "*.gitlab.io")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Vercel 全系
|
||||
if (shExpMatch(host, "vercel.com") ||
|
||||
shExpMatch(host, "*.vercel.com") ||
|
||||
shExpMatch(host, "vercel.app") ||
|
||||
shExpMatch(host, "*.vercel.app")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Netlify 全系
|
||||
if (shExpMatch(host, "netlify.com") ||
|
||||
shExpMatch(host, "*.netlify.com") ||
|
||||
shExpMatch(host, "netlify.app") ||
|
||||
shExpMatch(host, "*.netlify.app")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Perplexity / Poe / Midjourney 全系
|
||||
if (shExpMatch(host, "perplexity.ai") ||
|
||||
shExpMatch(host, "*.perplexity.ai") ||
|
||||
shExpMatch(host, "poe.com") ||
|
||||
shExpMatch(host, "*.poe.com") ||
|
||||
shExpMatch(host, "midjourney.com") ||
|
||||
shExpMatch(host, "*.midjourney.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Figma / Canva 全系
|
||||
if (shExpMatch(host, "figma.com") ||
|
||||
shExpMatch(host, "*.figma.com") ||
|
||||
shExpMatch(host, "canva.com") ||
|
||||
shExpMatch(host, "*.canva.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// LinkedIn 全系
|
||||
if (shExpMatch(host, "linkedin.com") ||
|
||||
shExpMatch(host, "*.linkedin.com") ||
|
||||
shExpMatch(host, "licdn.com") ||
|
||||
shExpMatch(host, "*.licdn.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Pinterest 全系
|
||||
if (shExpMatch(host, "pinterest.com") ||
|
||||
shExpMatch(host, "*.pinterest.com") ||
|
||||
shExpMatch(host, "pinimg.com") ||
|
||||
shExpMatch(host, "*.pinimg.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Tumblr 全系
|
||||
if (shExpMatch(host, "tumblr.com") ||
|
||||
shExpMatch(host, "*.tumblr.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Snapchat 全系
|
||||
if (shExpMatch(host, "snapchat.com") ||
|
||||
shExpMatch(host, "*.snapchat.com") ||
|
||||
shExpMatch(host, "sc-cdn.net") ||
|
||||
shExpMatch(host, "*.sc-cdn.net")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Wikipedia / Wikimedia 全系
|
||||
if (shExpMatch(host, "wikipedia.org") ||
|
||||
shExpMatch(host, "*.wikipedia.org") ||
|
||||
shExpMatch(host, "wikimedia.org") ||
|
||||
shExpMatch(host, "*.wikimedia.org")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// PayPal 全系
|
||||
if (shExpMatch(host, "paypal.com") ||
|
||||
shExpMatch(host, "*.paypal.com") ||
|
||||
shExpMatch(host, "paypalobjects.com") ||
|
||||
shExpMatch(host, "*.paypalobjects.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// Patreon 全系
|
||||
if (shExpMatch(host, "patreon.com") ||
|
||||
shExpMatch(host, "*.patreon.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// 通用 CDN
|
||||
if (shExpMatch(host, "cloudfront.net") ||
|
||||
shExpMatch(host, "*.cloudfront.net") ||
|
||||
shExpMatch(host, "fastly.net") ||
|
||||
shExpMatch(host, "*.fastly.net") ||
|
||||
shExpMatch(host, "fastlylb.net") ||
|
||||
shExpMatch(host, "*.fastlylb.net") ||
|
||||
shExpMatch(host, "jsdelivr.net") ||
|
||||
shExpMatch(host, "*.jsdelivr.net") ||
|
||||
shExpMatch(host, "unpkg.com") ||
|
||||
shExpMatch(host, "*.unpkg.com") ||
|
||||
shExpMatch(host, "statically.io") ||
|
||||
shExpMatch(host, "*.statically.io") ||
|
||||
shExpMatch(host, "cloudinary.com") ||
|
||||
shExpMatch(host, "*.cloudinary.com") ||
|
||||
shExpMatch(host, "imgur.com") ||
|
||||
shExpMatch(host, "*.imgur.com")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
// linux.do
|
||||
if (shExpMatch(host, "linux.do") ||
|
||||
shExpMatch(host, "*.linux.do")) {
|
||||
return proxy;
|
||||
}
|
||||
|
||||
return "DIRECT";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user