解決 Github 等網(wǎng)絡(luò)問題的 7 種方案
大家好,歡迎來到 Crossin的編程教室 !
網(wǎng)絡(luò)問題應(yīng)該是每一個(gè)開發(fā)者繞不過的問題,不管是 Python 開發(fā)者,還是 Go 工程師,或者你是其他語言的,你也肯定繞不開 Github 這個(gè)寶庫。
本文總結(jié)了我日常會(huì)接觸到的一些網(wǎng)絡(luò)問題解決方案(不僅是 github,可能還夾雜其他的),可以給大家的日常開發(fā)工作提供一些便利。
# 1. pip 鏡像源
首先第一個(gè)先解決大多數(shù) Python 開發(fā)者相關(guān)的網(wǎng)絡(luò)問題 -- 包安裝。
由于在使用 pip 安裝一些包時(shí),默認(rèn)會(huì)使用 pip 的官方源,而 pypi 的服務(wù)器在國(guó)外,所以經(jīng)常會(huì)報(bào)網(wǎng)絡(luò)超時(shí)失敗。
pip?install?requests
常用的解決辦法是,在安裝包時(shí),使用 -i 參數(shù)指定一個(gè)國(guó)內(nèi)的鏡像源。但是每次指定就很麻煩呀,還要打超長(zhǎng)的一串字母。
這時(shí)候,其實(shí)可以將這個(gè)源寫進(jìn) pip 的配置文件里。以后安裝的時(shí)候,就默認(rèn)從你配置的這個(gè) 源里安裝了。
那怎么配置呢?文件文件在哪?
?windows
使用win+r 輸入 %APPDATA% 進(jìn)入用戶資料文件夾,查看有沒有一個(gè) pip 的文件夾,若沒有則創(chuàng)建之。
然后進(jìn)入這個(gè) 文件夾,新建一個(gè) pip.ini 的文件,內(nèi)容如下(這邊使用清華的源)
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=tsinghua.edu.cn
?macOS
直接在家目錄下,新建一個(gè) pip.conf (這邊使用阿里云的源)

# 2. Github 鏡像
從 Github 上 Clone 倉庫經(jīng)常網(wǎng)絡(luò)不給力,怎么辦?
使用鏡像站:https://hub.fastgit.org
比如你要 clone 該倉庫
$?git?clone?https://github.com/iswbm/magic-python.git
可以換成這個(gè)
$?git?clone?https://hub.fastgit.org/iswbm/magic-python.git
# 3. brew 鏡像源
如果你使用的是 macOS ,那么你肯定遇到過 brew update 或者 brew install 經(jīng)常失敗吧?
brew 默認(rèn)的源是Github,下載會(huì)非常慢,可以替換為國(guó)內(nèi)的鏡像源,這邊推薦中科大的鏡像源,比較全面一點(diǎn)。
設(shè)置方法
查看下原來的倉庫是 github
$?cd?"$(brew?--repo)"?
$?git?remote?-v
origin????https://github.com/Homebrew/brew.git?(fetch)
origin????https://github.com/Homebrew/brew.git?(push)
用 git 命令重新設(shè)置下指向的倉庫地址
git?remote?set-url?origin?https://mirrors.ustc.edu.cn/brew.git
同時(shí)設(shè)置一下環(huán)境變量
echo?'export?HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles'?>>?~/.bash_profile
source?~/.bash_profile
最后執(zhí)行下邊兩條命令
cd?"$(brew?--repo)/Library/Taps/homebrew/homebrew-core"?
git?remote?set-url?origin?https://mirrors.ustc.edu.cn/homebrew-core.git
cd?"$(brew?--repo)/Library/Taps/homebrew/homebrew-cask?"
git?remote?set-url?origin?https://mirrors.ustc.edu.cn/homebrew-cask.git
# 4. iTerm2 下載代理
iTerm2 是 mac 上一款終端工具,我經(jīng)常使用 wget 下載一些外面的資源。
如果一個(gè)域名一個(gè)域名去查對(duì)應(yīng)的 ip 地址,有點(diǎn)麻煩。
想省事的話,可以執(zhí)行如下命令開啟
export?ALL_PROXY=socks5://127.0.0.1:1080
執(zhí)行如下命令取消全局代理
unset?ALL_PROXY
有時(shí)候開了代理 反而失敗,可以多次切換嘗試。
# 5. go get 鏡像源
使用 Go 的朋友都知道,go get 安裝包都是從 github 下載的,可以執(zhí)行如下命令為其配置一個(gè)鏡像網(wǎng)站
go?env?-w?GOPROXY=https://goproxy.cn,direct
常用的鏡像源有下面三種,你選一種即可:
https://goproxy.io
https://goproxy.cn
https://mirrors.aliyun.com/goproxy/
# 6. 指定ip訪問
使用 brew intall 安裝一些包,雖然主項(xiàng)目是從鏡像網(wǎng)站上下載的,但有一些依賴包還是會(huì)從 github 上下載,自然就下載敗了。
可以查看一下安裝日志,看看是哪里失敗的,以我的經(jīng)歷為例,若是看到 pkg-containers.githubusercontent.com 訪問失敗
可以去 https://www.ipaddress.com/ 查看其指向的 IP 地址

然后將查得的 ip 填入 /etc/hosts
185.199.108.154?pkg-containers.githubusercontent.com
# 7. 使用 Github520
你使用瀏覽器訪問 Github 的時(shí)候,是不是經(jīng)常加載很久,等了幾分鐘頁面加載出來了,頁面卻還是不全,圖片、頭像都顯示不出來。
那么推薦你使用 Github520,它是由 HelloGithub 團(tuán)隊(duì)出品,每天會(huì)定時(shí)更新一些可用的 hosts,你只要寫個(gè)定時(shí)任務(wù)自動(dòng)抓取替換你機(jī)器上的 hosts 文件即可。
抓取的數(shù)據(jù)來源:
文件:https://raw.hellogithub.com/hosts
JSON:https://raw.hellogithub.com/hosts.json
不同操作系統(tǒng)的 hosts 文件路徑都不一樣,詳情如下:
Windows 系統(tǒng):C:\Windows\System32\drivers\etc\hosts
Linux 系統(tǒng):/etc/hosts
Mac(蘋果電腦)系統(tǒng):/etc/hosts
Android(安卓)系統(tǒng):/system/etc/hosts
iPhone(iOS)系統(tǒng):/etc/hosts
更改完后,記得要刷新 DNS(如果刷新后無效,可以重啟機(jī)器看看)
Windows:在 CMD 窗口輸入:ipconfig /flushdns
Linux 命令:sudo nscd restart,如報(bào)錯(cuò)則須安裝:sudo apt install nscd 或 sudo /etc/init.d/nscd restart
Mac 命令:sudo killall -HUP mDNSResponder
更多詳細(xì)的內(nèi)容,可以前往 https://github.com/521xueweihan/GitHub520
以上就是今天的分享,如果你有更多關(guān)于這方面的技巧歡迎評(píng)論區(qū)分享出來,互相學(xué)習(xí)一下。
如果文章對(duì)你有幫助,歡迎轉(zhuǎn)發(fā)/點(diǎn)贊/收藏~
作者:寫代碼的明哥
_往期文章推薦_
