解决 Github 等网络问题的 7 种方案
大家好,欢迎来到 Crossin的编程教室 !
网络问题应该是每一个开发者绕不过的问题,不管是 Python 开发者,还是 Go 工程师,或者你是其他语言的,你也肯定绕不开 Github 这个宝库。
本文总结了我日常会接触到的一些网络问题解决方案(不仅是 github,可能还夹杂其他的),可以给大家的日常开发工作提供一些便利。
# 1. pip 镜像源
首先第一个先解决大多数 Python 开发者相关的网络问题 -- 包安装。
由于在使用 pip 安装一些包时,默认会使用 pip 的官方源,而 pypi 的服务器在国外,所以经常会报网络超时失败。
pip install requests
常用的解决办法是,在安装包时,使用 -i
参数指定一个国内的镜像源。但是每次指定就很麻烦呀,还要打超长的一串字母。
这时候,其实可以将这个源写进 pip 的配置文件里。以后安装的时候,就默认从你配置的这个 源里安装了。
那怎么配置呢?文件文件在哪?
windows
使用win+r
输入 %APPDATA%
进入用户资料文件夹,查看有没有一个 pip 的文件夹,若没有则创建之。
然后进入这个 文件夹,新建一个 pip.ini
的文件,内容如下(这边使用清华的源)
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=tsinghua.edu.cn
macOS
直接在家目录下,新建一个 pip.conf (这边使用阿里云的源)
# 2. Github 镜像
从 Github 上 Clone 仓库经常网络不给力,怎么办?
使用镜像站:https://hub.fastgit.org
比如你要 clone 该仓库
$ git clone https://github.com/iswbm/magic-python.git
可以换成这个
$ git clone https://hub.fastgit.org/iswbm/magic-python.git
# 3. brew 镜像源
如果你使用的是 macOS ,那么你肯定遇到过 brew update 或者 brew install 经常失败吧?
brew 默认的源是Github,下载会非常慢,可以替换为国内的镜像源,这边推荐中科大的镜像源,比较全面一点。
设置方法
查看下原来的仓库是 github
$ cd "$(brew --repo)"
$ git remote -v
origin https://github.com/Homebrew/brew.git (fetch)
origin https://github.com/Homebrew/brew.git (push)
用 git 命令重新设置下指向的仓库地址
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
同时设置一下环境变量
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
最后执行下边两条命令
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 上一款终端工具,我经常使用 wget 下载一些外面的资源。
如果一个域名一个域名去查对应的 ip 地址,有点麻烦。
想省事的话,可以执行如下命令开启
export ALL_PROXY=socks5://127.0.0.1:1080
执行如下命令取消全局代理
unset ALL_PROXY
有时候开了代理 反而失败,可以多次切换尝试。
# 5. go get 镜像源
使用 Go 的朋友都知道,go get 安装包都是从 github 下载的,可以执行如下命令为其配置一个镜像网站
go env -w GOPROXY=https://goproxy.cn,direct
常用的镜像源有下面三种,你选一种即可:
https://goproxy.io
https://goproxy.cn
https://mirrors.aliyun.com/goproxy/
# 6. 指定ip访问
使用 brew intall 安装一些包,虽然主项目是从镜像网站上下载的,但有一些依赖包还是会从 github 上下载,自然就下载败了。
可以查看一下安装日志,看看是哪里失败的,以我的经历为例,若是看到 pkg-containers.githubusercontent.com
访问失败
可以去 https://www.ipaddress.com/
查看其指向的 IP 地址
然后将查得的 ip 填入 /etc/hosts
185.199.108.154 pkg-containers.githubusercontent.com
# 7. 使用 Github520
你使用浏览器访问 Github 的时候,是不是经常加载很久,等了几分钟页面加载出来了,页面却还是不全,图片、头像都显示不出来。
那么推荐你使用 Github520,它是由 HelloGithub 团队出品,每天会定时更新一些可用的 hosts,你只要写个定时任务自动抓取替换你机器上的 hosts 文件即可。
抓取的数据来源:
文件:https://raw.hellogithub.com/hosts
JSON:https://raw.hellogithub.com/hosts.json
不同操作系统的 hosts 文件路径都不一样,详情如下:
Windows 系统:C:\Windows\System32\drivers\etc\hosts
Linux 系统:/etc/hosts
Mac(苹果电脑)系统:/etc/hosts
Android(安卓)系统:/system/etc/hosts
iPhone(iOS)系统:/etc/hosts
更改完后,记得要刷新 DNS(如果刷新后无效,可以重启机器看看)
Windows:在 CMD 窗口输入:ipconfig /flushdns
Linux 命令:sudo nscd restart,如报错则须安装:sudo apt install nscd 或 sudo /etc/init.d/nscd restart
Mac 命令:sudo killall -HUP mDNSResponder
更多详细的内容,可以前往 https://github.com/521xueweihan/GitHub520
以上就是今天的分享,如果你有更多关于这方面的技巧欢迎评论区分享出来,互相学习一下。
如果文章对你有帮助,欢迎转发/点赞/收藏~
作者:写代码的明哥
_往期文章推荐_