SP-Proxy-Pages 是一个专为 Cloudflare Pages 高级模式 (Advanced Mode) 打造的无端代理(Web Proxy)。
- 全栈集成:利用 Cloudflare Pages
_worker.js处理边缘逻辑,同时托管静态sw.js。 - 动态屏蔽系统:支持
BLOCK_RULES环境变量,兼容纯文本与 Regex 正则匹配。 - 可私有访问:零信任入口密语和支持目录型密语
const SECRET_PREFIX = "";。 - 零门槛部署:无需复杂服务器配置,全球边缘节点秒级生效。
sp-proxy-pages/
├── dist/
│ ├── _worker.js # 边缘网关、渲染与代理核心逻辑
│ ├── sw.js # Service Worker 流媒体缓存与拦截核心
│ └── _routes.json # Pages 路由优化配置文件
└── wrangler.toml # 部署配置
-
安装 Wrangler:
npm install -g wrangler
-
登录账号:
wrangler login
-
一键发布: 在根目录下运行以下命令(将项目名设为
sp-proxy):wrangler pages deploy dist --project-name sp-proxy
- 将本项目代码推送至您的 GitHub 仓库。
- 在 Cloudflare 控制台选择 Workers & Pages -> Create application -> Pages -> Connect to Git。
- 在构建设置中进行如下配置:
- Framework preset:
None - Build command: (留空)
- Build output directory:
dist
- Framework preset:
- 点击 Save and Deploy 即可。以后每次
git push都会自动触发更新部署。
您可以随时在 Cloudflare 控制面板中动态调整访问控制策略。 配置路径:设置 (Settings) -> 环境变量 (Environment variables) -> 添加变量
| 变量名 | 必填 | 示例值 | 说明 |
|---|---|---|---|
AUTH_SECRET |
否 | MySecretPass123 |
(推荐) 零信任入口密语。配置后,未携带密语的访问将被拦截。 |
CRYPTO_SALT |
否 | default |
加密盐值。网关在生成 RSA 公私钥(用于保护 POST 数据和防重放)时使用的缓存键后缀。建议每次修改 AUTH_SECRET 时同步更改此值以强制轮换全局密钥。 |
如果您在环境变量中配置了 AUTH_SECRET,您的代理现已处于私有化锁定状态。
- 首次授权访问:
在浏览器中访问您的代理域名,并在 URL 结尾附带
?auth=您的密语。示例:
https://你的域名.com/?auth=MySecretPass123 - 自动下发凭证:
系统验证通过后,会自动下发一个有效期为 30 天的加密 Cookie(
__UP_AUTH__),并重定向至代理系统主页。 - 日常使用:
在接下来的 30 天内,只要您的浏览器未清除 Cookie,您可以随时打开
https://你的域名.com/直接使用网关功能,无需再次输入密语。
| 变量名 | 匹配示例 | 说明 |
|---|---|---|
BLOCK_RULES |
youtube.com |
自动匹配主域及其所有子域(如 www.youtube.com) |
BLOCK_RULES |
/google\.[a-z]{2,3}/i |
使用原生正则匹配,可精准锁定多国后缀域名 |
💡 提示:多个规则之间请使用 逗号 或 换行 分隔。
youtube.com, /google\.[a-z]{2,3}(?:\.[a-z]{2})?$/i, twitter.com若不配置,系统将默认采用内置的基础屏蔽规则。
| 变量名 | 说明 | 默认值 | 示例 |
|---|---|---|---|
BLOCK_RULES |
拒绝代理的域名黑名单(支持正则/关键字) BLOCK 优先于 ALLOW | duck.ai, chatgpt.com, openai.com, claude.ai, gemini.google.com, grok.com, copilot.microsoft.com, perplexity.ai, poe.com, |
91porn.com, \.xxx$ |
ALLOW_RULES |
仅允许代理的域名白名单。配置此项后,不在名单内的域名将一律拦截。 | (空,允许所有) | github.com, duckduckgo.com |
所有变量设置后需重新部署方可生效!
关于缓存更新:由于前端注册了 Service Worker,如果在后续升级了后端代码遇到渲染异常,请在浏览器中按 Ctrl + F5 强制刷新,或在 DevTools -> Application -> Service Workers 中点击 Unregister 清理旧缓存。
关于YouTube:已对 m.youtube.com 进行框架替换,电脑端可用https://blog.kooker.jp/youtube.php 转换为框架再代理 如 https://你的域名.com/https://blog.kooker.jp/GnfBkCIHi9E 但取决于Cloudflare IP 的纯净度,大概率是不可播放的。
| 场景 | 风险等级 | 说明 |
|---|---|---|
| 个人私有自用(仅自己/可信小圈子使用) | 低-中 | 可接受 |
| 公开部署 / 多人使用 | 高 | 不推荐 |
| 作为高安全站点(如网银、OA、企业邮箱)的跳板 | 致命 | 绝对禁止 |
✅ 上线的情况:
- 仅限你自己或极小可信圈子使用
- 只访问低敏感站点(技术文档、论坛、GitHub 等)
- 绝不输入任何金融/企业账号密码
❌ 绝对不要做的事:
- 公开分享域名(即使加了密码)
- 访问任何包含核心资产的系统(网银、企业邮箱、OA、GitHub 企业版等)
- 本项目仅供边缘计算与网络技术研究学习使用。请在遵守当地法律法规的前提下使用,开发者不对任何不当使用导致的后果承担责任。
- 请勿将本项目用于任何违反当地法律法规的用途。
- 由于网页结构的复杂性和跨域安全策略(CORS)的限制,代理并不能保证 100% 完美呈现所有站点(尤其是重度依赖 WebRTC 或非标准视频流的网站)。
- 安全警告:若非部署在你本人完全控制的域名或受信任的服务器上,请勿通过代理站点登录任何包含个人核心隐私的账号(如网银、重要邮箱等)。