FastGithub让Github畅通无阻

前言

我近半年来被github的抽风虐得没脾气了,虽然我有代理的方式来上网,但代理速度并不理想,而且有时代理服务一起跟着抽风。这时候,我会搜索“github访问不了”相关题材,其中有“Github镜像服务器加速版”的,但这种是readonly的,不适合要提交代码到github的人群;也有“ipaddress.com”查找ip然后写到host文件的,但查到的ip,并不是适合很有网络环境,或者这个ip一下子也抽风了。

FastGithub

如果拿到github的大量ip数据,我们可以写程序来检测哪些ip可用,哪些ip访问速度最佳,然后编写一个本地版的dns服务,当要解析github相关时,返回这个最佳ip,这就解决了github抽风的问题。
于是我根据这个原理,又闭关几天不吃不喝,将老夫多年练就的网络通讯技术功力融入其中,100+的commits之后,终于写出FastGithub这个软件,好东西自然要分享,好代码也自然也开源。

功能对比

方案合法性可靠性完整性共享性无服务器免费
FastGithubYESYESYESYESYESYES
hosts文件YESNONONOYESYES
vpn代理NOYESYESNONONO
github镜像插件YESYESNOYESYESYES

名词解释:

  • 合法性:是否符合中华人民共和国的相关法律;

  • 可靠性:是否能稳定的访问到github;

  • 完整性:是否能双向的获取和提交github资源;

  • 共享性:是否能在局域网的一台设备部署其它设备也受益;

  • 无服务器:不需要直接或间接购买中转服务器,流量直达;

功能说明

google cdn替换

将 Google CDN 替换为国内的。类似的浏览器插件是ReplaceGoogleCDN,fastGithub轻松实现了可配置的类似功能,且是整个电脑全局生效(不仅仅是浏览器)。

github 100%加速

hosts文件方案不能解决tcp rst的问题,github镜像方案不能解决github登录和git push的问题,fastgithub可以做到原生的使用github的所有功能。

stackoverflow加速

stackoverflow除了引用google cdn资源,用户头像等还使用了其它cdn

codeproject加速

stackoverflow除了引用google cdn资源,用户头像等还使用了其它cdn

v2ex加速

可以无代理稳定访问v2ex

其它

你可以阅读源代码里面的其它配置样例,依葫芦画瓢配置其它站点。

配置介绍

{
  "Dns": {
    "UpStream": "114.114.114.114", // 上游dns
    "GithubTTL": "00:10:00", // github相关域名解析结果的存活时长
    "SetToLocalMachine": true // 是否设置本机使用此dns(仅支持windows)
  },
  "Github": {
    "Lookup": { // ip查找
      "Domains": [ // 查找的域名,下面是github最主要的域名
        "github.com",
        "api.github.com",
        "collector.githubapp.com",
        "github.githubassets.com",
        "raw.githubusercontent.com",
        "avatars.githubusercontent.com",
        "favicons.githubusercontent.com"
      ],
      "IPAddressComProvider": {
        "Enable": true // 是从启用从address.com查找ip
      },
      "GithubMetaProvider": {
        "Enable": true, // 是否从github获取ip列表
        "MetaUri": "https://gitee.com/jiulang/fast-github/raw/master/FastGithub/meta.json"
      },
      "PublicDnsProvider": {
        "Enable": true, // 是否需要从dns服务器查找ip
        "Dnss": [ // dns服务器列表
          "1.2.4.8",
          "8.8.8.8",
          "223.5.5.5",
          "123.125.81.6",
          "180.76.76.76",
          "119.29.29.29",
          "208.67.220.220",
          "114.114.114.114"
        ]
      }
    },
    "Scan": {
      "FullScanInterval": "02:00:00", // 完整扫描时间间隔
      "ResultScanInterval": "00:01:00", // 结果扫描时间间隔
      "TcpScan": {
        "Timeout": "00:00:01", // tcp扫描超时时间
        "CacheExpiration": "00:30:00" // 扫描结果缓存时长
      },
      "HttpsScan": {
        "Timeout": "00:00:05", // https扫描超时时间
        "ConnectionClose": false, // 是否使用https短连接
        "Rules": { // 域名扫描规则,缺失的域名,将默认HEAD请求到域名的根路径
          "github.com": {
            "Method": "HEAD",
            "Path": "/xljiulang/FastGithub"
          },
          "github.githubassets.com": {
            "Method": "HEAD",
            "Path": "/favicons/favicon.png"
          },
          "raw.githubusercontent.com": {
            "Method": "HEAD",
            "Path": "/xljiulang/FastGithub/master/README.md"
          },
          "avatars.githubusercontent.com": {
            "Method": "HEAD",
            "Path": "/u/8308014?s=40&v=4"
          },
          "favicons.githubusercontent.com": {
            "Method": "HEAD",
            "Path": "/github.com"
          }
        }
      }
    }
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "System": "Warning",
      "Microsoft": "Warning"
    }
  }
}

使用方法

本机使用
  • 运行FastGithub程序,本机的网络适配器的dns会自动变成127.0.0.1

  • 如果网络适配器的dns没有变成127.0.0.1,请手工修改网络适配器的dns

局域网服务器使用(推荐)
  • 在局域网服务器运行FastGithub程序

  • 手工修改你电脑的网络适配器的dns,值为局域网服务器的ip

以windows服务运行

以管理员身份运行cmd,键入如下命令,其中D:\Softs为软件实际目录

  • D:\Softs\FastGithub.exe start // 安装并启动服务

  • D:\Softs\FastGithub.exe stop // 卸载并删除服务

源代码与软件发布

源代码

https://github.com/dotnetcore/FastGithub 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要让 GitHub 打开得更快,您可以尝试以下几个方法: 1. 使用 CDN 加速:通过使用全球分布的 CDN(内容分发网络)来加速 GitHub 的加载速度。您可以将 GitHub 的资源托管在 CDN 上,以便更快地向用户提供内容。 2. 压缩和缓存:使用压缩和缓存技术来减少资源的大小和请求次数。这将有助于减少加载时间并提高页面响应速度。 3. 优化图片:对于包含大量图片的页面,可以使用适当的图像压缩和优化技术来减小文件大小。这可以显著提高页面加载速度。 4. 合并和压缩 CSS 和 JavaScript 文件:将多个 CSS 和 JavaScript 文件合并为单个文件,并对其进行压缩。这样可以减少文件的数量和大小,并加快页面加载。 5. 使用浏览器缓存:通过设置适当的缓存标头来让浏览器缓存页面和资源。这将使用户在再次访问网站时能够从缓存中加载内容,而不是再次下载。 6. 使用 GZIP 压缩:启用服务器端的 GZIP 压缩,以减小传输文件的大小。这将减少网络传输时间并提高加载速度。 7. 尽量减少重定向:过多的重定向会增加页面加载时间。确保您的网站没有过多的重定向,并将其优化为直接访问的链接。 请注意,GitHub 的加载速度也可能受到您的网络连接、地理位置以及 GitHub 服务器的负载等因素的影响。因此,以上方法可能会有所帮助,但不一定能够完全解决速度问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值