最近cloudflare在中国大陆访问有点抽风,国内一些地区的移动宽带甚至无法访问,所以就想着用之前白嫖的GCP来搭建反向代理服务,但是nginx/Apache提供的简单反向代理服务只能代理一个页面,有些博客/网站的图片和外链却无法代理,所以单纯的反向代理是有很大局限性的。

找遍了各大网站,终于发现(白嫖)了一个比较高端的网页代理—-jsproxy
https://github.com/EtherDream/jsproxy
反向代理基于nginx,可以完整,正常地代理绝大多数站点(具体bug见链接)。
教程:
所需时间: 30 分钟.
需要准备一个干净的,80、443端口没有被占用的linux发行版系统(debian、ubuntu、sentos均可)
- 自己没有域名的执行以下代码(在root权限下)
curl https://raw.githubusercontent.com/EtherDream/jsproxy/0.1.0/i.sh | bash
- 自己有域名的,可以执行以下代码
curl https://raw.githubusercontent.com/EtherDream/jsproxy/master/i.sh | bash -s example.com
复制p.s:example.com需要替换成你的域名,且域名要提前解析到要安装反向代理的服务器上
- 访问:
https://服务器IP.xip.io:8443
(具体参考脚本输出的信息)
访问:https://example.com:8443
(替换为自定义域名)注:如果想把端口改为80&&443,可以使用本地端口转发,代码如下:
iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 8443 iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-ports 8080
复制
随后就可以启动/操作jsproxy了
jsproxy常用指令(目前jsproxy还无法实现开机自启功能。):
# 切换到 jsproxy 用户 su - jsproxy # 重启服务 ./run.sh reload # 关闭服务(参数和 nginx -s 相同) ./run.sh quit # 启动服务 ./run.sh # 查看代理日志 tail server/nginx/logs/proxy.log
复制
切换到jsproxy用户:
su - jsproxy
复制
进入server/www/assets 编辑index_v3.html
cd server/www/assets vi index_v3.html
复制
全选,并粘贴如下代码:
<!doctype html> <html> <head> <title>我TM直接代理</title> <meta charset="utf-8"> </head> <body> <script> <!--url替换为自己的域名(带https)--> open(url, '_self'); </script> </body> </html>
复制
改完记得reload一下jsproxy
这样就可以实现完全代理网站页面了,除了镜像功能,也可以在url按照格式输入其他站点的域名来代理访问其他站点(请勿用于违法用途)。此外,还可以编辑allowed-sites.conf来禁止/重定向某些网站以达到绿色上网的作用。
至此,镜像站已经搭建完成,后续扩展功能有待发掘
CF在中国大陆一直都很抽风