Go模块代理用于加速依赖包的下载(尤其针对golang.org/x/
等国内难以访问的资源)。通过GOPROXY
环境变量指定代理服务器,推荐使用国内镜像(如七牛云goproxy.cn
)。
goproxy.cn
):export GOPROXY=https://goproxy.cn,direct
direct
表示若代理不可用,则直接连接源服务器(避免因代理故障导致无法下载)。~/.bashrc
、~/.zshrc
,根据使用的Shell选择),然后运行source
命令使配置生效:echo 'export GOPROXY=https://goproxy.cn,direct' >> ~/.bashrc
source ~/.bashrc
go env GOPROXY
,若输出为你设置的代理地址(如https://goproxy.cn,direct
),则说明配置成功。若需要为go get
或其他命令行工具设置HTTP/HTTPS代理(如访问GitHub),可配置http_proxy
、https_proxy
变量:
export http_proxy=http://your-proxy-server:port
export https_proxy=http://your-proxy-server:port
若代理需要身份验证,将用户名和密码加入地址:export http_proxy=http://username:password@your-proxy-server:port
export https_proxy=http://username:password@your-proxy-server:port
~/.bashrc
或~/.profile
,然后运行source
命令生效。若项目依赖通过Git克隆(如go get github.com/user/repo
),需额外配置Git代理:
git config --global http.proxy http://your-proxy-server:port
git config --global https.proxy http://your-proxy-server:port
~/.ssh/config
,添加以下内容(替换为代理地址和端口):Host github.com
ProxyCommand nc -x socks5://your-socks-proxy:port %h %p
(需安装netcat
工具,且-x
参数指定SOCKS代理地址)若项目包含私有仓库(如公司内部github.com/your-company/*
),需通过GOPRIVATE
变量排除代理,避免代理拦截:
go env -w GOPRIVATE=*.example.com,github.com/your-company/*
多个域名用逗号分隔,通配符*
匹配子域名。
go env
,检查GOPROXY
、HTTP_PROXY
、HTTPS_PROXY
等变量是否为你设置的值;go get -v golang.org/x/net
,观察是否能正常下载依赖(若输出显示从代理服务器获取,则说明配置成功)。通过以上步骤,可解决Ubuntu下Golang因网络限制导致的依赖下载问题,提升开发效率。