首页 > 其他分享 >一种增稳加速直连 Github Steam Pixiv 等网站的全新轻量化方案 (Sheas Cealer 开发两年后的原理与成果总结)

一种增稳加速直连 Github Steam Pixiv 等网站的全新轻量化方案 (Sheas Cealer 开发两年后的原理与成果总结)

时间:2024-11-08 23:41:09浏览次数:1  
标签:直连 Github -- 增稳 访问 github hosts

由于法律风险和敏感性,本文不探讨使用代理或者混淆作为解决方案,而是研究一种更加合法合规和轻量化的无代理直连方案来加速部分网站的访问,在结尾处我编写了一个简单易用的开源桌面端程序,运用本文介绍的原理来实现部分网站的加速,如果你对原理部分不感兴趣,也可以直接跳至结尾处看我写的程序

咱先以开发者们更常使用的 Github 为例解释原理,从这里直入正题

与大多数无法直连的网站不同,由于庞大的用户访问量以及对开源事业做出的巨大贡献,Github 实际上并未受到国家审查机制的阻断,但我们实际直连 Github 的体验依然很不稳定 (昨天我写这篇文章的时候就怎么都访问不上,今天改文章的时候刷新了几次之后又能直连了,但下载个文件的速度依旧与某度网盘不相上下),很多用户即使访问 Github 也得开个代理 (刚截的 Github 直连超时截图 ↓)

 

为什么会访问慢或者访问超时?这里我本地 ping 一下看看解析结果:

可以看到解析出来的是 140.82.121.4 这个 ip,用 itdog 查询一下这个 ip 的全国直连情况:

可以看到各省的电信和联通网大多访问超时,移动网勉强可以使用,再查下 ip 属地:

确实是 github 没错,不过嘛... 德国,搜嘎斯内,跑地球另一半去了丢

所以归根到底还是域名解析的问题,毕竟对于部分服务器遍及全球的网站,DNS 没有足够的能力给咱优选出质量最好的 ip,而且 DNS 的解析结果过段时间可能就会换一个,可能今天还能正常直连的,过几天就又不行了,这也就是为什么咱访问 Github 不稳定的原因

但 DNS 是死的,人是不那么死的,靠 DNS 不行,咱也可以人工来优选

解决方案一自然就是已经用烂了的改 hosts (域名优先按照 hosts 里写的规则解析),只要按照 "域名 优选ip" 的格式填入即可,但由于 hosts 设计的年代较早,就有点... 啸缺陷 —— 比如 hosts 不能使用通配符来泛匹配,这导致域名每有一个子域就得单独写一条 hosts (比如 github.com,www.github.com 和 gist.github.com 就只能写成三条规则),很难覆盖完全,另外的一些我不满意的地方比如 hosts 的修改需要管理员权限,影响范围相当大 (影响整个系统的域名解析),如果想回到修改前的状态的话还需要再手动还原 hosts

但幸运的是,在我读过互联网上散落的一些大佬的文章以及 Chromium 文档后很快找到了另一个方案,Chromium 内核中的 --host-rules 和 --host-resolver-rules 参数,只要给任意以 Chromium 为内核的浏览器 (如 Chrome, Edge, Brave 等) 注入这两项启动参数,就可以实现与修改 hosts 类似的效果 (注入的参数样例 ↓)

--host-rules="MAP *github.com github" --host-resolver-rules="MAP github 20.205.243.166" --test-type --ignore-certificate-errors

而且这个方案 一、支持通配符,二、范围限制在浏览器中,只会影响访问网站,系统中的程序则不会受到影响,三、不需要管理员权限,四、关闭浏览器后效果自动解除,比改 hosts 更加便捷轻量 (经测试加速效果确实要优于改 hosts)

当然如果仅止步于此的话,那我肯定是不满意的,接下来我快速写了一个桌面端程序 (Sheas Cealer) 来实现自动化注入参数,并且让启动参数的编写更加简化,然后我将程序开源了,收获了很多用户的喜欢

是的,这已经是两年多前的事了,经过这两年的持续改进维护,项目也更加完善易用了 (覆盖了更多类似情况的网站),如果你对我的项目感兴趣,这里是开源地址 (点一个

标签:直连,Github,--,增稳,访问,github,hosts
From: https://www.cnblogs.com/spacetime/p/18536134

相关文章

  • GitHub每日最火火火项目(11.7)
    项目名称:DataExpert-io/data-engineer-handbook项目介绍:“DataExpert-io/data-engineer-handbook”是一个非常有价值的资源库。这个项目收集了与数据工程相关的各种学习链接,涵盖了数据工程领域的方方面面。对于想要深入了解数据工程的人来说,它就像是一个知识宝库。无论是......
  • GitHub | 发布到GitHub仓库并联文件夹的方式
    推送到Github推送步骤如果你只想更新单个文件,只需在第4步中指定该文件的路径即可。可能问题一效果推送步骤更新GitHub仓库中的文件通常涉及以下步骤:克隆仓库:首先,你需要将GitHub上的仓库克隆到本地。使用gitclone命令克隆仓库:gitclone仓库地址切......
  • Java(Spring Boot)项目通过 GitHub Actions 流水线实现自动化构建部署
    前两次分享了前端(Vue)项目的自动化构建和 Rust项目的自动化构建,本次就分享JavaSpringBoot项目的自动化构建并部署,部署时需要一台已安装JDK17及以上的Linux服务器。1.新建流水线构建文件在项目的根目录下新建.github/workflows文件夹并在文件夹下新建deploy.yml......
  • 2024年11月 GitHub 十大热门项目排行榜
    欢迎来到2024年11月的GitHub热门项目前十排行榜!无论你是开发者、数据科学家,还是科技爱好者,这些项目在GitHub上都引起了广泛关注。让我们一起看看这些项目独特之处吧!Skyvern-AI/Skyvern......
  • 开源的 API 学习平台「GitHub 热点速览」
    前有5万颗星标的开源项目HTTPie因误操作导致Star清零(2022年),上周知名开源项目Elasticsearch也经历了Star一夜清零的事件。这些事故的原因均是管理员误将开源项目从公开状态转为私有状态所导致。为避免类似事件再次发生,GitHub已在转为私有的功能处增加了两次确认步骤,并......
  • 使用Markdown编写适用于GitHub的README.md文件的目录结构
    文章目录@[toc]顶部1.使用`[TOC]`自动生成2.VSCode中的插件3.手搓目录目录相关资料本文相关代码一、概述1.1基本概念1.2两种处理模型(1)微批处理(2)持续处理1.3StructuredStreaming和SparkSQL、SparkStreaming关系二、编写StructuredStreaming程序的基本步骤三......
  • 使用Markdown编写适用于GitHub的README.md文件的目录结构
    目录顶部1.使用[TOC]自动生成2.VSCode中的插件3.手搓目录目录相关资料本文相关代码一、概述1.1基本概念1.2两种处理模型(1)微批处理(2)持续处理1.3StructuredStreaming和SparkSQL、SparkStreaming关系二、编写StructuredStreaming程序的基本步骤三、输入源3.1File源(1)创建程......
  • GitHub Copilot: the perfect Code compLeeter?
    全文总结这篇论文评估了GitHubCopilot生成的代码质量,基于LeetCode问题集,使用了一个自定义的自动化框架。研究背景背景介绍: 这篇文章的研究背景是GitHubCopilot在2021年发布,作为一个“AI配对编程员”,可以根据一些上下文(如注释、函数名或周围的代码)生成不同语言的代码。然......
  • 项目发布GitHub完全指南 - 从本地到开源
    引言将项目发布到GitHub不仅能方便版本管理,还能与全球开发者分享你的代码。本文将详细介绍如何将一个完整项目发布到GitHub的全过程,包括前期准备、具体操作步骤以及最佳实践。一、前期准备工作1.1环境准备安装Git#Windows用户可以下载Git官方安装包#Mac用户可以使用ho......
  • hexo 推送需要github的用户名
    问题描述hexo博客许久未写,今天尝试更新,发现hexod之后需要输入github的用户名和密码,但是我输入之后没有效果,还是无法推送到github上。研究之后发现rootcause是:github已经无法再用密码登陆推送,只能用token,而这里的token并不是ssh-keys里面的key,而是个人token。Sett......