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 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.Net性能调优-垃圾回收!!!最全垃圾回收来了

目前项目开发基本都基于.NetCore 3.1以上了,有些老版本的规则和概念也没有列出来,低版本的垃圾回收类型和内存释放方式会有所不同 垃圾回收器为什么存在 开发人员不必手动释放内存。 有效分配托管堆上的对象。 回收不再使用的对象,清除它们的内存&…

平流式初沉池贮砂斗计算_城市污水处理厂产泥量的计算

污泥是污水处理过程的副产物,包括筛余物、沉泥、浮渣和剩余污泥等。污泥体积约占处理水量的0.3%~0.5%左右,如水进行深度处理,污泥量还可能增加0.5~1倍。一、污水处理污泥分类及特性1、按成分不同分污泥:以有机物为主要成分。其主要…

C# 图片加水印例程

using System;using System.IO;using System.Collections;using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Imaging; namespace Imag_writer{/// <summary>/// 水印的类型/// </summary>public enum WaterMarkType{ /// <summary&…

从N个元素中选择第i小的元素

时常在笔试,面试题中看到这个问题,《算法导论》中给出了很好的解答。 Selection of the ith smallest element of the array A can be done in θ(n) times. The psuedocode is following: CodeRandomized_Select(A,p,r,i){ if pr then return A[p] qRandomized_…

Blazor 模板化组件开发指南

翻译自 Waqas Anwar 2021年4月15日的文章 《A Developer’s Guide To Blazor Templated Components》 [1]在我之前的一篇文章 Blazor 组件入门指南中&#xff0c;我介绍了组件参数&#xff0c;并向您展示了如何将数据作为参数传递给 Blazor 组件以定制化其功能。在这篇文章中&a…

别太贪婪,这些技能能让你一辈子满足

全世界只有3.14 % 的人关注了青少年数学之旅在这个资讯丰富且易获取的时代&#xff0c;越来越多的人不愿意花时间阅读书籍&#xff0c;碎片化阅读成了主流。人们获取的东西多而杂&#xff0c;很难系统、全面。海量信息对人是冲击&#xff0c;更是诱惑。谁不想了解天下奇闻&…

纳尼???我JVM优化过头了,直接把异常信息优化没了?怎么办

你好呀&#xff0c;我是why。 你猜这次我又要写个啥没有卵用的知识点呢&#xff1f; 不好意思&#xff0c;问的稍微有点早了&#xff0c;啥提示都没给&#xff0c;咋猜呢&#xff0c;对吧&#xff1f; 先给你上个代码&#xff1a; public class ExceptionTest {public stati…

angular $watch

在scope内置的所有函数中&#xff0c;用得最多的可能就是$watch 函数了&#xff0c;当你的数据模型中某一部分发生变化时&#xff0c;$watch函数可以向你发出通知。你可以监控单个对象的属性&#xff0c;也可以监控需要经过计算的结果&#xff08;函数&#xff09;&#xff0c;…

C# 读写ACCESS的OLE对象,演示图片与长文件的读写

网络上的读写OLE对象的代码是多&#xff0c;不过多是转载的&#xff0c;大部分人从来都没实际测试过&#xff0c;只是COPY来COPY去。我重来没看到一个真正可以运行的东东。没办法&#xff0c;只有自力更生&#xff0c;花了一点时间出了点研究成果&#xff0c;写到这里做个记录。…

RHCE课程-初级部分6、编辑工具VIM,网络配置,进程优先,日志文件简介。

我们通常用各种编辑工具来处理文本文件 常用的编辑工具:VIVIMEMACSVI和VIM的区别它们都是多模式编辑器&#xff0c;不同的是vim 是vi的升级版本&#xff0c;它不仅兼容vi的所有指令&#xff0c;而且还有一些新的特性在里面。vim的这些优势主要体现在以下几个方面&#xff1a;易…

WPF等待动画

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织欢迎转发、分享、点赞、在看&#xff0c;谢谢~。 01—效果预览效果预览&#xff08;更多效果请下载源码体验&#xff09;&#xff1a;02—代码如下一、CycleLoading.cs 代码如下using System.Win…

假期别在家里要发霉了?可以靠他们度过无聊时光

全世界只有3.14 % 的人关注了青少年数学之旅在这个资讯丰富且易获取的时代&#xff0c;越来越多的人不愿意花时间阅读书籍&#xff0c;碎片化阅读成了主流。人们获取的东西多而杂&#xff0c;很难系统、全面。海量信息对人是冲击&#xff0c;更是诱惑。谁不想了解天下奇闻&…

cs6序列号 mac版photoshop_重磅!Parallels Desktop 16 M1版发布

Parallels 现已发布 Parallels Desktop 16 技术预览版&#xff0c;可以在搭载 M1 芯片的 Mac 电脑上运行。该公司表示&#xff0c;它创建了一个 “使用 Apple M1 Mac 芯片硬件辅助虚拟化的新虚拟化引擎”&#xff0c;允许用户在虚拟机中运行基于 Arm 的操作系统&#xff0c;例如…

华为二面!!!面试官直接问我Java中到底什么是NIO?这不是直接送分题???

华为二面&#xff01;&#xff01;&#xff01;面试官直接问我Java中到底什么是NIO&#xff1f;这不是直接送分题&#xff1f;&#xff1f;&#xff1f;什么是NIO缓冲区(Buffer)缓冲区类型获取缓冲区核心属性核心方法非直接缓冲区和直接缓冲区非直接缓冲区直接缓冲区通道(Chann…

REST

REST 定义了一组体系架构原则&#xff0c;您可以根据这些原则设计以系统资源为中心的 Web 服务REST 对 Web 的影响非常大&#xff0c;由于其使用相当方便&#xff0c;已经普遍地取代了基于 SOAP 和 WSDL 的接口设计。REST Web 服务&#xff0c;其具体实现应该遵循四个基本设计原…

Delphi中的容器类(3)

TBucketList和TObjectBucketList类 从Delphi6开始&#xff0c;VCL的Contnrs单元中又增加了两个新的容器类TBucketList和TObjectBucketList。TBucketList实际上也是一个简单基于哈希表的指针-指针对列表。接口定义如下&#xff1a; TBucketList class(TCustomBucketList)… pu…

修改PATH导致fedora无法登录XWindow

用过fedora的都了解到&#xff0c;如果要使用像ifconfig,arp等这些外部命令&#xff0c;就必需加入路径&#xff0c;有点麻烦&#xff08;我懒人一个-_-&#xff09;。所以我就在/etc/profile文件结尾处加入了一行&#xff1a;export PATH$PATH:/sbin很好&#xff0c;感觉上没问…

一文读懂哈希和一致性哈希算法

哈希 Hash 算法介绍哈希算法也叫散列算法, 不过英文单词都是 Hash, 简单一句话概括, 就是可以把任意长度的输入信息通过算法变换成固定长度的输出信息, 输出信息也就是哈希值, 通常哈希值的格式是16进制或者是10进制, 比如下面的使用 md5 哈希算法的示例md5("123456"…

延迟开学?这些教育读书公众号可以帮助孩子学习! 你都关注了吗?

全世界只有3.14 % 的人关注了青少年数学之旅受新型冠状病毒疫情影响&#xff0c;日前&#xff0c;教育部印发《关于2020年春季学期延期开学的通知》。推迟开学时间&#xff0c;意味着寒假的延长。为此&#xff0c;小编精选这些优质的教育号和读书号帮助孩子学习&#xff01;理想…

go方法的深入探究(7.21增补)

2019独角兽企业重金招聘Python工程师标准>>> 1&#xff09;哪些类型可以有方法&#xff1a; 1&#xff09;只能对命名类型和命名类型的指针编写方法&#xff1b; 2&#xff09;不能对接口类型和接口类型的指针编写方法&#xff1b; 3&#xff09;只能在定义命名类型…