作者:杖雍皓
联系方式:wikipedia@zyhorg.ac.cn
公开服务地址(无需梯子/科学上网,直接访问):
构建一个零服务器、全球加速、自动改写、边缘缓存的维基百科访问网关,使中国大陆用户无需任何特殊网络工具,即可流畅、完整地访问维基百科及其多媒体资源。
- Cloudflare 账户(免费版即可)
- 已接入 Cloudflare 的域名(如
zyhorg.ac.cn) - 启用 Workers 与 Pages 服务
- 配置 DNS + 路由 + Access 策略
- 登录 Cloudflare Dashboard
- 进入 Workers & Pages → Create application → Create Worker
- 命名 Worker(如
wiki-proxy-gateway) - 粘贴
worker.js核心代码(代码逻辑见下文“技术架构”部分) - 保存并部署
✅ 提示:首次部署后,Worker 会获得一个临时子域名(如
xxx.xxx.workers.dev),后续将被自定义域名覆盖。
- 在 Worker 编辑页面,进入 Triggers → Routes
- 添加自定义路由:
https://wikipedia.zyhorg.ac.cn/* - 保存。此操作将把所有匹配该路径的请求交由 Worker 处理。
⚠️ 注意:域名必须已在 Cloudflare DNS 中配置且状态为“Proxied”(橙色云朵图标)。
- 进入 DNS → Records
- 添加一条 CNAME 记录:
- Name:
vpnwiki - Target:
your-worker-name.your-subdomain.workers.dev(上一步部署后系统生成的临时地址) - Proxy status: Proxied(橙色云朵)
- Name:
✅ 验证:访问
https://wikipedia.zyhorg.ac.cn/应返回维基百科首页,证明路由与 Worker 生效。
为防止滥用、爬虫与自动化攻击,建议配置 Access 策略:
- 进入 Zero Trust → Access → Applications
- 创建新应用:
- Name: Wiki Proxy Access Control
- Domain:
wikipedia.zyhorg.ac.cn
- 配置策略(Policy):
- Action: Allow
- Include → Any valid service token(或按需设置 IP、国家、设备等条件)
- (可选)添加 Bypass 规则供自己调试
- 保存并启用
✅ 效果:未授权访问将跳转至登录/验证页,有效过滤恶意流量,保护免费配额。
-
普通请求(如
/wiki/...):
自动代理至zh.wikipedia.org,并使用HTMLRewriter流式改写页面内所有资源链接(href,src,srcset,style等),将其转换为代理路径。 -
代理资源请求(如
/__proxy__/upload.wikimedia.org/...):
Worker 解析路径中的目标主机与路径,发起真实请求,获取资源后返回,并剥离限制性响应头(如 CSP、X-Frame-Options)。
- HTML 页面:缓存 15 分钟(
max-age=900),平衡新鲜度与性能。 - 静态资源(图片、CSS、JS、字体等):缓存 30 天(
max-age=2592000),大幅减少源站请求,节省配额。 - 边缘缓存:利用
caches.default+cf.cacheEverything,实现全球节点缓存。
- Host 故障熔断:若某上游主机(如
upload.wikimedia.org)连续失败,Worker 会将其加入本地失败列表 1 小时,避免重复无效请求。 - 回退机制:当代理请求失败时,尝试直接请求原始 URL(不带自定义头),提高成功率。
- 方法白名单:仅允许
GET, HEAD, POST, OPTIONS,拒绝非法请求。 - 友好错误页:所有异常均返回结构化 HTML 错误提示,引导用户重试或访问源站。
- 请求头净化:移除
X-Forwarded-For,CF-Connecting-IP等可能暴露用户或 Cloudflare 信息的头。 - 响应头净化:移除
Content-Security-Policy,X-Frame-Options等限制性头,确保页面内嵌资源正常加载。 - User-Agent 伪装:默认设置为常见浏览器 UA,避免被源站识别为爬虫。
无需部署,直接访问以下地址即可体验完整功能:
- 引导页(含说明):https://wikipedia.zyhorg.cn/
- 核心服务:https://wikipedia.zyhorg.ac.cn/
⚠️ 服务基于 Cloudflare 免费套餐,每日限额 100,000 次请求。配额耗尽时服务将自动暂停,次日恢复。
- Fork 本项目(后续开源仓库地址)
- 替换
worker.js中的PROXY_HOST为你的自定义域名 - 按本文档“部署流程”配置 DNS 与路由
- (可选)配置 Access 策略增强安全性
当然可以!以下是格式规范、排版美观的 Markdown 版本,可直接复制粘贴到你的文档或 README 中:
本项目由 Zyhorg 独立开发与维护,旨在推动知识自由获取。若您觉得项目有价值,欢迎通过以下方式支持:
-
问题反馈:📧 wikipedia@zyhorg.ac.cn
💡 您的支持是我持续优化与维护本项目的最大动力!
© 2025 杖雍皓. 保留所有权利。
代码采用 MIT 许可证开源,使用时请保留原作者署名。
海纳百川,有容乃大。
—— 杖雍皓


