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

网络 通信技术
网络问题应该是每一个开发者绕不过的问题,不管是 Python 开发者,还是 Go 工程师,或者你是其他语言的,你也肯定绕不开 Github 这个宝库。

[[437225]]

大家好,我是明哥~

网络问题应该是每一个开发者绕不过的问题,不管是 Python 开发者,还是 Go 工程师,或者你是其他语言的,你也肯定绕不开 Github 这个宝库。

本文总结了我日常会接触到的一些网络问题解决方案(不仅是 github,可能还夹杂其他的),可以给大家的日常开发工作提供一些便利。

# 1. pip 镜像源

首先第一个先解决大多数 Python 开发者相关的网络问题 -- 包安装。

由于在使用 pip 安装一些包时,默认会使用 pip 的官方源,而 pypi 的服务器在国外,所以经常会报网络超时失败。

  1. pip install requests 

常用的解决办法是,在安装包时,使用 -i 参数指定一个国内的镜像源。但是每次指定就很麻烦呀,还要打超长的一串字母。

这时候,其实可以将这个源写进 pip 的配置文件里。以后安装的时候,就默认从你配置的这个 源里安装了。

那怎么配置呢?文件文件在哪?

windows

使用win+r 输入 %APPDATA% 进入用户资料文件夹,查看有没有一个 pip 的文件夹,若没有则创建之。

然后进入这个 文件夹,新建一个 pip.ini 的文件,内容如下(这边使用清华的源)

  1. [global
  2. index-url=https://pypi.tuna.tsinghua.edu.cn/simple/ 
  3.  
  4. [install] 
  5. trusted-host=tsinghua.edu.cn 

 macOS

直接在家目录下,新建一个 pip.conf (这边使用阿里云的源)

# 2. Github 镜像

从 Github 上 Clone 仓库经常网络不给力,怎么办?

使用镜像站:https://hub.fastgit.org

比如你要 clone 该仓库

  1. $ git clone https://hub.fastgit.org/iswbm/magic-python.git 

可以换成这个

  1. $ git clone https://hub.fastgit.org/iswbm/magic-python.git 

# 3. brew 镜像源

如果你使用的是 macOS ,那么你肯定遇到过 brew update 或者 brew install 经常失败吧?

brew 默认的源是Github,下载会非常慢,可以替换为国内的镜像源,这边推荐中科大的镜像源,比较全面一点。

设置方法

查看下原来的仓库是 github

  1. $ cd "$(brew --repo)"  
  2. $ git remote -v 
  3. origin    https://github.com/Homebrew/brew.git (fetch
  4. origin    https://github.com/Homebrew/brew.git (push) 

用 git 命令重新设置下指向的仓库地址

  1. git remote set-url origin https://mirrors.ustc.edu.cn/brew.git 

同时设置一下环境变量

  1. echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile 
  2. source ~/.bash_profile 

最后执行下边两条命令

  1. cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"  
  2. git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git 
  3.  
  4. cd "$(brew --repo)/Library/Taps/homebrew/homebrew-cask " 
  5. git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git 

# 4. iTerm2 下载代理

iTerm2 是 mac 上一款终端工具,我经常使用 wget 下载一些外面的资源。

如果一个域名一个域名去查对应的 ip 地址,有点麻烦。

想省事的话,可以执行如下命令开启

  1. export ALL_PROXY=socks5://127.0.0.1:1080 

执行如下命令取消全局代理

  1. unset ALL_PROXY 

有时候开了代理 反而失败,可以多次切换尝试。

# 5. go get 镜像源

使用 Go 的朋友都知道,go get 安装包都是从 github 下载的,可以执行如下命令为其配置一个镜像网站

  1. 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

  1. 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

本文转载自微信公众号「Python编程时光」,可以通过以下二维码关注。转载本文请联系Python编程时光公众号。

 

责任编辑:武晓燕 来源: Python编程时光
相关推荐

2022-03-30 07:52:16

.NET应用程序C#

2022-03-24 12:15:50

MySQL数据库读写分离

2023-06-07 00:08:59

2020-10-28 09:24:05

存储网络协议

2023-09-19 15:33:50

Web实时消息推送

2016-04-26 11:45:26

2023-07-03 12:47:01

2022-04-26 05:55:52

网络网络类型

2018-04-10 08:59:51

开源Azure网站

2022-07-30 10:08:06

MQTT​协议物联网

2020-01-14 08:00:00

.NET缓存编程语言

2022-05-10 08:08:01

find命令Linux

2016-01-25 18:18:54

网络入侵钓鱼邮件邮件安全

2017-06-14 16:44:15

JavaScript原型模式对象

2017-08-31 14:57:53

数据库MySQLJOIN

2017-06-02 09:52:50

2021-07-16 09:55:46

数据工具软件

2010-08-31 10:57:36

2010-10-15 10:02:01

Mysql表类型

2010-06-08 09:49:45

UML元件
点赞
收藏

51CTO技术栈公众号