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這個軟件,好東西自然要分享,好代碼也自然也開源。
功能對比
| FastGithub | YES | YES | YES | YES | YES | YES |
| hosts文件 | YES | NO | NO | NO | YES | YES |
| vpn代理 | NO | YES | YES | NO | NO | NO |
| github鏡像插件 | YES | YES | NO | YES | YES | YES |
名詞解釋:
合法性:是否符合中華人民共和國的相關法律;
可靠性:是否能穩定的訪問到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?
總結
以上是生活随笔為你收集整理的FastGithub让Github畅通无阻的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET Core自定义响应内容
- 下一篇: Blazor 模板化组件开发指南