最近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在中国大陆一直都很抽风