搭建siteproxy服务

搭建siteproxy服务
近未來.Site Proxy
站点代理(Site Proxy)类开源项目也有很多,多基于node.js、php 等,仅”代理”http(s)流量,主要用于网站浏览、访问。对于大多数人来说,上网就是用浏览器访问网站。互联网上,本就有大量的站点代理类网站存在,既有收费的,也有免费的。SiteProxy的优势是不需要安装额外的客户端软件,有浏览器就能使用,前提是网站代理服务的宿主域名没有被阻断。网站代理站点(SiteProxy)的工作原理就是劫持https 请求,和很多恶意软件一样,区别在于用户主动要求站点劫持,而恶意软件则在用户不知情的情况下劫持。
所以,同样的技术,可以有不同的用途,也因为同样的原因,使用此类站点(SiteProxy)服务应该自建。
Serv00配置
Serv00面板配置
Serv00面板中,主要涉及三项操作,分别是:
1.添加可用端口,siteproxy 使用 tcp,应添加 tcp 端口。
2.激活第三方程序运行权限。通常情况下 php、node.js 程序并不需要额外激活权限,但 serv00 主机上经常会出现未激活权限导致 php、nodejs 程序提示“permission deny”的问题,因此建议一律激活。
3.添加proxy站点。可以使用serv00为每一个用户默认分配的xxxx.serv00.net子域名及相应站点,但本文所用 siteproxy 尚不能自动适配,因此建议使用自有域名并提前添加 A 记录指向 servO0 分配的 IP 地址。在添加站点时,应打开高级设置(『Advanced settings』),站点类型(『Website type』)选择『Proxy』,代理端口(『Proxy port』)选择添加的、未被占用的端口。
站点添加完成之后,应为添加的站点配置SSL,即添加证书。无论是添加A记录还是添加证书,都是在『ManageSSLCertificate』选项卡下进行。
配置证书选项卡下,点击A记录指向IP所在行右端的『Manage』,依照提示即可申请并配置好Let’s encypt的免费证书。
配置A记录并开启Cloudflare代理
- 本文使用的示例是使用siteproxy项目,该项目使用了cloudflare 网络,通常部署为cloudflare wokers 或pages。因此,我们在配置自定义域名A记录指向 servoo IP地址时,务必打开代理。
克隆项目并运行
- 通过SSH登录serv00主机,使用以下命令拉取仓库至指定目录下、赋权、编辑配置文件。应将 your_domanin_name修改为实际使用的域名。
1 | cd ~/domains/your_domanin_name/public_html/ |
- 对 config.json 文件内容进行修改,token_prefix就是访问路径,作为访问控制手段。local_listen_port 则为开放的 tcp 端口。
1 | nano config.json |
1 | { |
- 修改完成之后使用nodebundle.js命令启动服务。
1 | node bundle.js |
- 服务正常启动后,就可以打开浏览器使用https://your-domain-name访问搭建的网站代理站点了,在代理站点页面输入想要访问的网站如google、youtube、reddit等,就可以自动在新标签页中打开相应站点,在地址栏,我们可以观察到的url形式类似https://your-domain-name/https/www.google.com.
保持活动状态
- 为了确保node进程持久化运行,可以使用screen、nohup等将其在后台运行的方式,或者使用pm2等工具守护。但serv0O对很多具有明显特征的进程很不友好,为了不被杀死或杀死后能够迅速重新启动,可以使
用面板中可配置的cronjobs定时任务来完成。每一个时间周期都为『Eachtime』,执行命令就是node bundle.js.
1 | cd ~/domains/your-domain-name/public_html/siteproxy && node bundle.js |
- 如果定时任务运行失败,因为node进程一般不会被servo0屏蔽,应检查、编辑递归权限。配置无误的情况下,serv00 主机上出现的“permission denied”,很可能只需要通过“chmod-R 755*”解决。
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖















