github
https://github.com/docmirror/dev-sidecar
下載
https://github.com/docmirror/dev-sidecar/releases
dev-sidecar
開發者邊車,命名取自service-mesh的service-sidecar,意為為開發者打輔助的邊車工具
通過本地代理的方式將https請求代理到一些國內的加速通道上
一、 特性
1、 dns優選(解決***污染問題)
- 根據網絡狀況智能解析最佳域名ip地址,獲取最佳網絡速度
- 解決一些網站和庫無法訪問或訪問速度慢的問題
- 建議遇到打開比較慢的國外網站,可以優先嘗試將該域名添加到dns設置中(注意:被***封殺的無效)
2、 請求攔截
- 攔截打不開的網站,代理到加速鏡像站點上去。
- 可配置多個鏡像站作為備份
- 具備測速機制,當訪問失敗或超時之后,自動切換到備用站點,使得目標服務高可用
3、 github加速
- github 直連加速 (通過修改sni實現,感謝 fastGithub 提供的思路)
- release、source、zip下載加速
- clone 加速
- 頭像加速
- 解決readme中圖片引用無法加載的問題
- gist.github.com 加速
- 解決git push 偶爾失敗需要輸入賬號密碼的問題(fatal: TaskCanceledException encountered / fatal: HttpRequestException encountered)
- raw/blame加速
以上部分功能通過
X.I.U
的油猴腳本實現, 以下是倉庫和腳本下載鏈接,大家可以去支持一下。由於此腳本在ds中是打包在本地的,更新會不及時,你可以直接通過瀏覽器安裝油猴插件使用此腳本,從而獲得最新更新(ds本地的可以通過
加速服務->基本設置->啟用腳本
進行關閉)。
4、 Stack Overflow 加速
- 將ajax.google.com代理到加速CDN上
- recaptcha 圖片驗證碼加速
5、 npm加速
- 支持開啟npm代理
- 官方與淘寶npm registry一鍵切換,
- 某些npm install的時候,並且使用cnpm也無法安裝時,可以嘗試開啟npm代理再試
安全警告:
- 請勿使用來源不明的服務地址,有隱私和賬號泄露風險
- 本應用及服務端承諾不收集任何信息。介意者請使用安全模式。
二、快速開始
支持windows、Mac、Linux(Ubuntu)
DevSidecar桌面應用
1 下載安裝包
- release下載
Gitee Release
Github Release
Windows: 請選擇DevSidecar-x.x.x.exe
Mac: 請選擇DevSidecar-x.x.x.dmg
Ubuntu: 請選擇DevSidecar-x.x.x.deb
其他linux: 請選擇DevSidecar-x.x.x.AppImage (未做測試,不保證能用)
linux安裝說明請參考 linux安裝文檔
注意:由於沒有買應用證書,所以應用在下載安裝時會有“未知發行者”等安全提示,選擇保留即可。
2 安裝后打開
注意:mac版安裝需要在“系統偏好設置->安全性與隱私->通用”中解鎖並允許應用安裝
3 安裝根證書
第一次打開會提示安裝證書,根據提示操作即可
更多有關根證書的說明,請參考 為什么要安裝根證書?
根證書是本地隨機生成的,所以不用擔心根證書的安全問題(本應用不收集任何用戶信息)
你也可以在加速服務設置中自定義根證書(PEM格式的證書與私鑰)
火狐瀏覽器需要手動安裝證書
4 開始加速吧
去試試打開github
第一次訪問會去國外的dns服務器上獲取ip,會比較慢一點,后面就快了
開啟前 vs 開啟后
開啟前 | 開啟后 | |
---|---|---|
頭像 | ![]() |
![]() |
clone | ![]() |
![]() |
zip 下載 | ![]() |
![]() |
三、模式說明
安全模式
- 此模式:關閉攔截、關閉增強、開啟dns優選、開啟測速
- 最安全,無需安裝證書,可以在瀏覽器地址欄左側查看域名證書
- 功能也最弱,只有特性1,相當於查詢github的國外ip,手動改hosts一個意思。
- github的可訪問性不穩定,取決於IP測速,如果有綠色ip存在,就
有可能
可以直連訪問。
默認模式
- 此模式:開啟攔截、關閉增強、開啟dns優選、開啟測速
- 需要安裝證書,通過修改sni直連訪問github
- 功能上包含特性1/2/3/4。
四、 最佳實踐
- 把dev-sidecar一直開着就行了
- 建議遇到打開比較慢的國外網站,可以嘗試將該域名添加到dns設置中(注意:被GFW封殺的無效)
其他加速
- git clone 加速
方式1:快捷復制:
開啟腳本支持,然后在復制clone鏈接下方,即可復制到加速鏈接
方式2:
使用方式用實際的名稱替換{}的內容,即可加速clone
https://hub.fastgit.org/{username}/{reponame}.git
clone 出來的 remote "origin" 為fastgit的地址,需要手動改回來
你也可以直接使用他們的clone加速工具 fgit-go
- github.com的鏡像網站(注意:不能登錄)
- hub.fastgit.org
- github.com.cnpmjs.org 這個很容易超限
五、api
攔截配置
沒有配置域名的不會攔截,其他根據配置進行攔截處理
const intercepts = {
// 要攔截的域名
'github.com': {
//需要攔截url的正則表達式
'/.*/.*/releases/download/': {
//攔截類型
// redirect:url, 臨時重定向(url會變,一些下載資源可以通過此方式配置)
// proxy:url, 代理(url不會變,沒有跨域問題)
// abort:true, 取消請求(適用於被GFW封鎖的資源,找不到替代,直接取消請求,快速失敗,節省時間)
// success:true, 直接返回成功請求(某些請求不想發出去,可以偽裝成功返回)
redirect: 'download.fastgit.org'
},
'.*':{
proxy:'github.com',
sni:'baidu.com' //修改sni,規避***握手攔截
}
},
'ajax.googleapis.com': {
'.*': {
proxy: 'ajax.loli.net', //代理請求,url不會變
backup: ['ajax.proxy.ustclug.org'], //備份,當前代理請求失敗后,將會切換到備用地址
test: 'ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js',
replace:'/(.*)/xxx'//當加速地址的鏈接和原鏈接不是完全相同時,可以通過正則表達式replace,此時proxy通過$1$2來重組url, proxy:'ajax.loli.net/xxx/$1'
}
},
'clients*.google.com': {
'.*':{
abort: true //取消請求,被GFW封鎖的資源,找不到替代,直接取消請求,快速失敗,節省時間
}
}
}
DNS優選配置
某些域名解析出來的ip會無法訪問,(比如api.github.com會被解析到新加坡的ip上,新加坡的服務器在上午挺好,到了晚上就卡死,基本不可用)
通過從dns上獲取ip列表,切換不同的ip進行嘗試,最終會挑選到一個最快的ip
dns: {
mapping: {
//
'api.github.com': 'usa', // "解決push的時候需要輸入密碼的問題",
'gist.github.com': 'usa' // 解決gist無法訪問的問題
"*.githubusercontent.com": "usa" // 解決github頭像經常下載不到的問題
}
},
注意:暫時只支持IPv4的解析
六、問題排查
1、dev-sidecar的前兩個開關沒有處於打開狀態
- 嘗試將開關按鈕手動打開
- 請嘗試右鍵dev-sidecar圖標,點退出。再重新打開
- 如果還不行,請將日志發送給作者
如果是mac系統,可能是下面的原因
Mac系統使用時,首頁的系統代理開關無法打開
出現這個問題可能是沒有開啟系統代理命令的執行權限
networksetup -setwebproxy 'WiFi' 127.0.0.1 1181
#看是否有如下錯誤提示
** Error: Command requires admin privileges.
如果有上面的錯誤提示,請嘗試如下兩種方法:
1、 取消訪問偏好設置需要管理員密碼
系統偏好設置—>安全性與隱私—> 通用—> 高級—> 訪問系統范圍的偏好設置需要輸入管理員密碼(取消勾選)
2、 可能是由於安裝了xcode,但未授權導致
請在終端輸入如下命令進行授權
sudo xcodebuild -license
# 一直按回車,該agree的時候輸入agree即可
然后再次嘗試看是否能夠打開系統代理開關
如果還不行,請聯系作者
2、沒有加速效果
本應用僅支持https加速,請務必確認你訪問的網站地址是https開頭的
-
本應用僅支持https加速
請務必確認你訪問的地址是https開頭的
比如: https://github.com/ -
檢查瀏覽器是否裝了什么插件,與ds有沖突
-
檢查是否安裝了其他代理軟件,與ds有沖突
-
請確認瀏覽器的代理設置為使用IE代理/或者使用系統代理狀態
-
可以嘗試換個瀏覽器試試
-
請確認網絡代理設置處於勾選狀態
正常情況下dev-sidecar在“系統代理”開關打開時,會自動設置代理。
3、瀏覽器打開提示證書不受信任
-
windows: 請確認證書已正確安裝在“信任的根證書頒發機構”下
-
mac: 請確認證書已經被安裝並已經設置信任。
-
火狐瀏覽器:火狐瀏覽器不走系統的根證書,需要在選項中添加根證書
1、火狐瀏覽器->選項->隱私與安全->證書->查看證書
2、證書頒發機構->導入
3、選擇證書文件C:\Users(用戶)\Administrator(你的賬號)\.dev-sidecar\dev-sidecar.ca.crt
(Mac或linux為~/.dev-sidecar
目錄)
4、勾選信任由此證書頒發機構來標識網站,確定即可
4. 打開github顯示連接超時
DevSidecar Warning:
Error: www.github.com:443, 代理請求超時
如果是安全模式,則是因為不穩定導致的,等一會再刷新試試
如果是增強模式,則是由於訪問人數過多,正常現象
5、查看日志是否有報錯
如果還是不行,請在下方加作者好友,將服務日志發送給作者進行分析
日志打開方式:加速服務->右邊日志按鈕->打開日志文件夾
6、某些原本可以打開的網站打不開了
1、可以嘗試關閉pac
2、可以將域名加入白名單
7、應用意外關閉導致沒有網絡了
應用開啟后會自動修改系統代理設置,正常退出會自動關閉系統代理
當應用意外關閉時,可能會因為沒有將系統代理恢復,從而導致完全無法上網。
對於此問題有如下幾種解決方案可供選擇:
1、重新打開應用即可(右鍵應用托盤圖標可完全退出,將會正常關閉系統代理設置)
2、如果應用被卸載了,此時需要手動關閉系統代理設置
3、如果你是因為開着ds的情況下重啟電腦導致無法上網,你可以設置ds為開機自啟
七、在其他程序使用
八、貢獻代碼
開發調試模式啟動
運行如下命令即可開發模式啟動
git clone https://github.com/docmirror/dev-sidecar
cd dev-sidecar
npm install lerna -g
lerna bootstrap
cd packages/gui
npm run electron
如果electron依賴包下載不動,可以開啟ds的npm加速
打包成可執行文件
# 先執行上面的步驟,然后運行如下命令打包成可執行文件
npm run electron:build
提交pr
如果你想將你的修改貢獻出來,請提交pr
九、聯系作者
歡迎bug反饋,需求建議,技術交流等(請備注dev-sidecar,或簡稱DS)


十、求star
我的其他項目求star
十一、感謝
本項目使用lerna包管理工具
本項目參考如下開源項目
特別感謝
- github增強油猴腳本 本項目部分加速功能完全復制該腳本。
本項目部分加速資源由如下組織提供