解决 Github 等网络问题的 7 种方案

474次阅读  |  发布于3年以前

网络问题应该是每一个开发者绕不过的问题,不管是 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

常用的镜像源有下面三种,你选一种即可:

# 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 文件即可。

抓取的数据来源:

不同操作系统的 hosts 文件路径都不一样,详情如下:

更改完后,记得要刷新 DNS(如果刷新后无效,可以重启机器看看)

  1. Windows:在 CMD 窗口输入:ipconfig /flushdns
  2. Linux 命令:sudo nscd restart,如报错则须安装:sudo apt install nscd 或 sudo /etc/init.d/nscd restart
  3. Mac 命令:sudo killall -HUP mDNSResponder

更多详细的内容,可以前往 https://github.com/521xueweihan/GitHub520

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8