本文介绍两种完全不需要购买服务器就可以科学上网的方式。
- Cloudflare Workers,Workers 可以让你直接运行任何 JavaScript 程序,免除服务器部署等一系列烦恼,同时使用 Cloudflare CDN 的缓存技术,从全球任何一个地方访问都可以达到理想的速度。
- Heroku APP, 使用 Heroku 的云应用可以部署一个完整的 Web 应用程序,拥有前后端与数据库,就想当于在一台微型服务器上部署一样。
PS: 以下将要介绍的方式最终实现结果都是一个“Web 代理服务”,并不能像 V2Ray 或是 Shadowsocks 那样有完整的科学上网功能。如果有浏览网页以外的科学上网需求,那么还是建议购买服务器自行搭建代理。
Workers
Workers 免费版的限制是 10 万次请求/天,10 TB 流量/天。对于个人用户来说完全够用。
JsProxy
JsProxy 是一个基于浏览器端 JS 实现的在线代理。
Github: https://github.com/EtherDream/jsproxy
注册 Cloudflare
注册并登录 Cloudflare, https://dash.cloudflare.com
创建 Workers
注册完成后,点击主页,点击页面中的 Workers,然后点击创建。
取一个可以使用的域名,并点击继续。
选择免费版套餐。
部署 JsProxy
https://github.com/EtherDream/jsproxy/blob/master/cf-worker/index.js
打开上述网站并复制 index.js
中的代码。
编辑自己创建的 Workers,将复制的代码粘贴到 Script 中,覆盖原先的代码,点击保存并查看右侧的预览确保正确显示。
返回上一级,可以给应用改一个好记的名字。
现在可以直接使用此域名访问搭建好的“Web 代理”了。
效果展示
如图所示:(示例的中的地址是:https://proxy.fight-for-free.workers.dev/)
访问谷歌。
访问 YouTube。
访问 500px。
此时已经完成“Web 代理”的部署,当然你也可以绑定已有的域名,下面介绍申请免费域名以及绑定 Workers 的方法。
申请免费域名
https://my.freenom.com
登录 freenom,可以使用 Google 账登录,需要全程使用全局代理。
注册域名
点击注册新域名。
搜索你想要的域名。
选择后在页面下方点击结算,跳转的结算页面。一路点继续直到申请成功。
将域名交由 Cloudflare 解析
在 Cloudflare 主页点击 Add Site,输入刚刚申请的免费域名。
记录下 Cloudflare 让你替换的 NameServer 地址(有两个)。
在 freenom 主页点击 MyDomains 查看已申请到的域名。
点击 Manage Domain 进入域名管理界面。
如图所示点击 Mangement Tools,替换成 Cloudflare 的 NameServer。
点击保存后,回到 Cloudflare 页面,等待生效,稍后可以点击重新检查,确认域名已经交由 Cloudflare 解析,成功后如图所示。
添加子域名
点击域名,接着点击 DNS,添加一条“A记录”或“CNAME记录”,A 的意思是,将域名指向 IPv4 地址,CNAME 记录的意思是将域名指向另一个域名。
PS: 此处的 Target 其实可以随意设置,因为等下会为 Workers 单独使用路由强制指定此子域名,这里是为了要让 proxy.fight-for-free.ml 这个子域名生效,正常情况下不要随意设置。
Name 的值填自己喜欢的,之后将作为子域名,Target 的值填 Cloudflare 给你的 Workers 生成的域名,填好后点击保存。
为 Workers 设置路由
点击域名管理页面的 Workers(注意不是主页的 Workers,否则将无法设置路由)。
然后点击 Add route。
Route 填写刚刚设置的子域名,格式为 https://xxx.xxxx.xx/*
结尾处一定要加 /*
,Worker 选择之前创建的 Worker,点击保存。
现在,就可以使用自己的域名访问了!(示例中的地址是:https://proxy.fight-for-free.ml/)
WorkersProxy
Github: https://github.com/Siujoeng-Lau/Workers-Proxy
WorkersProxy 同样是使用 Workers 部署的在线网页代理,其与 JsProxy 的区别是:
- 只能单独代理某个网站。
- 可以设置禁止特定 IP 或某些国家的 IP 访问。
- 完全没用到静态文件。(对比 JsProxy,JsProxy 的代码默认情况是从其开发者的网站加载静态文件,假如开发者的网站关闭了,则你还需在服务器或 Github Pages 提供 JsProxy 所需的静态文件。)
部署与 JsProxy 完全相同,使用哪个就看个人需求了。
(既然都看到这里,再创建并部署一个新 Worker 不会超过 5 分钟,爱折腾的你,为何不试试呢?)