Go 环境变量配置(go环境变量配置 windows)
在 Go 中,配置代理(Proxy)主要用于解决以下场景:
- 模块下载加速(如替换为国内镜像源)。
- 企业内网访问外部依赖(通过内部代理服务器)。
- 避免直接访问 GitHub(解决 go get 被墙问题)。
以下是详细的配置方法:
一、通过环境变量配置代理
Go 1.13+ 默认使用 GOPROXY 环境变量控制模块下载代理,支持多个代理地址(用逗号分隔)。
1. 临时生效(当前终端)
# 使用国内镜像源(推荐阿里云或七牛云)
export GOPROXY=https://goproxy.cn,direct
# 企业内网代理(需替换为实际地址)
export GOPROXY=http://internal-proxy.example.com
export HTTP_PROXY=http://internal-proxy.example.com:8080 # 用于其他 HTTP 请求
2. 永久生效(写入配置文件)
- Linux/macOS:
将以下内容添加到 ~/.bashrc 或 ~/.zshrc: - export GOPROXY=https://goproxy.cn,direct export GOPRIVATE=*.corp.example.com # 私有模块不走代理
- 然后执行:
- source ~/.bashrc
- Windows:
通过系统环境变量面板添加: - GOPROXY=https://goproxy.cn,direct GOPRIVATE=*.corp.example.com
二、go env 直接配置
直接修改 Go 的环境变量(需 Go 1.13+):
# 设置代理
go env -w GOPROXY=https://goproxy.cn,direct
# 设置私有库(不经过代理)
go env -w GOPRIVATE=gitlab.com/your-project,*.internal.com
# 查看当前配置
go env | grep GOPROXY
三、私有模块配置(GOPRIVATE)
如果依赖私有仓库(如 GitLab、内部 Git),需配置 GOPRIVATE 跳过代理:
# 多个仓库用逗号分隔
export GOPRIVATE=gitlab.com/your-team/*,github.com/your-org/private-repo
# 或使用通配符
export GOPRIVATE=*.internal.com
四、常见代理地址
代理地址 | 适用场景 |
https://goproxy.cn | 国内用户(推荐) |
https://goproxy.io | 全球加速 |
https://mirrors.aliyun.com/goproxy | 阿里云镜像源 |
direct | 直连(作为后备选项) |
五、其他相关环境变量
变量名 | 作用 |
GOPROXY | 控制模块下载代理地址。 |
GOPRIVATE | 指定不走代理的私有模块。 |
GONOPROXY | 同 GOPRIVATE(Go 1.13+)。 |
GONOSUMDB | 私有模块跳过校验。 |
GOSUMDB | 校验数据库地址(默认 sum.golang.org)。 |
六、验证代理是否生效
# 下载一个公开模块测试(如 gin)
go get -v github.com/gin-gonic/gin
# 查看下载日志,确认是否从代理拉取
常见问题
- go get 报错 410 Gone
- 原因:代理服务器不支持 Go Modules。
- 解决:更换代理地址(如改用 https://goproxy.cn)。
- 私有仓库认证失败
- 配置 Git 使用 SSH 替代 HTTPS: git config --global url."git@github.com:".insteadOf "https://github.com/"
- 企业内网证书问题
- 添加证书信任: export SSL_CERT_FILE=/path/to/cert.pem
通过以上配置,你可以灵活控制 Go 模块的下载行为,兼顾速度与安全性。