[教程]使用jsproxy给站点做镜像/代理

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

找遍了各大网站,终于发现(白嫖)了一个比较高端的网页代理—-jsproxy

https://github.com/EtherDream/jsproxy

反向代理基于nginx,可以完整,正常地代理绝大多数站点(具体bug见链接)。

教程

所需时间: 30 分钟.

需要准备一个干净的,80、443端口没有被占用的linux发行版系统(debian、ubuntu、sentos均可)

  1. 自己没有域名的执行以下代码(在root权限下)

    curl https://raw.githubusercontent.com/EtherDream/jsproxy/0.1.0/i.sh | bash

  2. 自己有域名的,可以执行以下代码
    curl https://raw.githubusercontent.com/EtherDream/jsproxy/master/i.sh | bash -s example.com

    p.s:example.com需要替换成你的域名,且域名要提前解析到要安装反向代理的服务器上

  3. 访问: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/asset 编辑index_v3.html

cd server/www/asset
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来禁止/重定向某些网站以达到绿色上网的作用。

至此,镜像站已经搭建完成,后续扩展功能有待发掘

点赞
  1. haojunmei说道:
    Google Chrome Windows 10

    CF在中国大陆一直都很抽风

发表评论

电子邮件地址不会被公开。必填项已用 * 标注