GitHub外壳项目推荐|基于浏览器端JS的在线代理| JS反向代理

GitHub_Shell项目推荐_基于浏览器的在线代理_JS_ implementation

线上代理

项目热度

star trend

线上代理

:163

副本(分支):1481

贡献者:3

仓库大小:2 MB

最后更新:2019-08-28

|网络接口与以前的版本不兼容,请及时更新服务器和cfworker。2019-06-22 cfworker无服务器版本已发布,请长期使用此版本的演示服务

查看更多

安装版本github usercontent.com/etherdream/jsproxy/0.1.0/I.sh | bash
自动安装目前仅支持Linux x64,需要根用户权限。在安装期间,端口80可由外部网络访问(HTTPS证书应用)

不能满足上述条件,或者要了解安装细节,可以尝试手动安装。

测试:https://服务器IP.xip.io:8443(有关详细信息,请参阅脚本输出)

自定义域名

将域名example.com解析为服务器IP。然后执行:

curltps://raw . github usercontent.com/etherdream/jsproxy/master/I.sh | bash-samplee.com

访问:https://example . com:8443

自定义端口

默认端口是8443 (HTTPS)和8080 (HTTP)。如果您需要更改为443和80,建议使用端口转发:

iptables-a routing-tnat-pstp-dport 443-jredirect-to-port 8443
iptables-a routing-T NAT-pstp-dport 80-jredirect T-to-port 8080

,并在www.conf中更改为:8443

使用GitHub Pages前端

例如,演示站点的前端部署在GitHub Pages服务中,因此可以使用个性化域名(*.github.io),并且可以减少某些流量开销。

节点列表(node_map字段,包括节点id和节点主机)默认节点(node_default字段,指定节点id)

访问https:// username。github.io/jsproxy预览

维护#切换到jsproxy用户。/run.sh重新加载< br>#关闭服务(参数与nginx -s相同)
。/run.shquiet
#启动服务
。/run.sh
#查看代理日志
尾部服务器/nginx/logs/proxy.log

尚未启动

禁止的外部链

默认情况下,代理接口允许所有github.io子站点调用,这可能会导致不必要的流量消耗

安全策略

如果您不想让代理访问内部网(为了避免SSRF风险),您可以执行setup-ipset。sh:

/home/jsproxy/server/setup-ipset。sh

需要root权限。依靠ipset命令

,该脚本可以防止jsporxy用户访问保留的IP段(用于TCP)除nginx之外的程序也会生效,但不会影响其他用户。

是基于JS Hook技术创建的最先进的在线代理项目功能

与传统的在线代理相比,该项目具有以下特点:

服务器成本较低

传统的在线代理几乎是所有的网址都在服务器上取代了HTML/JS/CSS等资源这不仅需要对内容进行大量的分析和处理,还需要对流量进行解压缩和再压缩,从而消耗大量的CPU资源此外,由于逻辑的复杂性,它通常用Python/PHP和其他编程语言实现

为了降低服务器的成本,本项目采用了浏览器服务工作者的黑色技术它使JS能够拦截网页生成的请求并定制返回的内容,这相当于在浏览器中实现一个反向代理。这使得绝大多数内容处理能够在浏览器上完成,并且服务器只需要纯转发流量。

因此,本项目的服务器直接使用nginx,转发过程不修改内容(只修改HTTP头),避免了内容处理带来的巨大开销。同时,由于nginx丰富的功能,许多常见的需求可以通过简单的配置实现,而不需要改造车轮。性能和稳定性都远远高于它们自己的实现。

应用编程接口虚拟化了

传统在线代理,主要目的是取代静态网址,忽略动态网址和与网址相关的网页应用编程接口例如,a.com反向代理google.com,但JS在页面中读取文档域,仍然得到a.com这可能会导致一些业务逻辑问题

为了缓解这个问题,这个代理将一个JS注入到页面的头部来重写大多数与网址相关的应用程序接口,这样页面中的JS仍然可以获得原始的网址:

线上代理

对于一些不可重写的应用程序接口,比如位置,这个代理将把代码中的文字位置替换为__location,从而把操作转移到自定义对象当然,对于非字面上的情况(例如这个x27lox27x27阳离子x27;]),当前无法处理

项目重要性

本项目主要用于以下技术的研究:

网站镜像/沙盒钓鱼网站检测技术前端资源访问加速

当然,不要将本项目用于非法目的,否则后果由您承担。

项目地址

https://github . com/ether dream/jsproxy

程序员的新愿景:分享有趣且受欢迎的程序员话题,每天都有所进步

大家都在看

相关专题