解決 Github 等網(wǎng)絡(luò)問題的七種方案
大家好,我是明哥~
網(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://hub.fastgit.org/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
本文轉(zhuǎn)載自微信公眾號(hào)「Python編程時(shí)光」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Python編程時(shí)光公眾號(hào)。