解決 Github 等網(wǎng)絡(luò)問題的七種方案
大家好,我是明哥~
網(wǎng)絡(luò)問題應(yīng)該是每一個開發(fā)者繞不過的問題,不管是 Python 開發(fā)者,還是 Go 工程師,或者你是其他語言的,你也肯定繞不開 Github 這個寶庫。
本文總結(jié)了我日常會接觸到的一些網(wǎng)絡(luò)問題解決方案(不僅是 github,可能還夾雜其他的),可以給大家的日常開發(fā)工作提供一些便利。
# 1. pip 鏡像源
首先第一個先解決大多數(shù) Python 開發(fā)者相關(guān)的網(wǎng)絡(luò)問題 -- 包安裝。
由于在使用 pip 安裝一些包時,默認(rèn)會使用 pip 的官方源,而 pypi 的服務(wù)器在國外,所以經(jīng)常會報網(wǎng)絡(luò)超時失敗。
- pip install requests
常用的解決辦法是,在安裝包時,使用 -i 參數(shù)指定一個國內(nèi)的鏡像源。但是每次指定就很麻煩呀,還要打超長的一串字母。
這時候,其實(shí)可以將這個源寫進(jìn) pip 的配置文件里。以后安裝的時候,就默認(rèn)從你配置的這個 源里安裝了。
那怎么配置呢?文件文件在哪?
windows
使用win+r 輸入 %APPDATA% 進(jìn)入用戶資料文件夾,查看有沒有一個 pip 的文件夾,若沒有則創(chuàng)建之。
然后進(jìn)入這個 文件夾,新建一個 pip.ini 的文件,內(nèi)容如下(這邊使用清華的源)
- [global]
- index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
- [install]
- trusted-host=tsinghua.edu.cn
macOS
直接在家目錄下,新建一個 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
可以換成這個
- $ git clone https://hub.fastgit.org/iswbm/magic-python.git
# 3. brew 鏡像源
如果你使用的是 macOS ,那么你肯定遇到過 brew update 或者 brew install 經(jīng)常失敗吧?
brew 默認(rèn)的源是Github,下載會非常慢,可以替換為國內(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è)置一下環(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 下載一些外面的資源。
如果一個域名一個域名去查對應(yīng)的 ip 地址,有點(diǎn)麻煩。
想省事的話,可以執(zhí)行如下命令開啟
- export ALL_PROXY=socks5://127.0.0.1:1080
執(zhí)行如下命令取消全局代理
- unset ALL_PROXY
有時候開了代理 反而失敗,可以多次切換嘗試。
# 5. go get 鏡像源
使用 Go 的朋友都知道,go get 安裝包都是從 github 下載的,可以執(zhí)行如下命令為其配置一個鏡像網(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)站上下載的,但有一些依賴包還是會從 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 的時候,是不是經(jīng)常加載很久,等了幾分鐘頁面加載出來了,頁面卻還是不全,圖片、頭像都顯示不出來。
那么推薦你使用 Github520,它是由 HelloGithub 團(tuán)隊出品,每天會定時更新一些可用的 hosts,你只要寫個定時任務(wù)自動抓取替換你機(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,如報錯則須安裝: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)載自微信公眾號「Python編程時光」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Python編程時光公眾號。