:163
副本(分支):1481
贡献者:3
仓库大小:2 MB
最后更新:2019-08-28
|网络接口与以前的版本不兼容,请及时更新服务器和cfworker。2019-06-22 cfworker无服务器版本已发布,请长期使用此版本的演示服务查看更多
安装版本github usercontent.com/etherdream/jsproxy/0.1.0/I.sh | bash不能满足上述条件,或者要了解安装细节,可以尝试手动安装。
测试: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,并在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相同)尚未启动
禁止的外部链默认情况下,代理接口允许所有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
程序员的新愿景:分享有趣且受欢迎的程序员话题,每天都有所进步