必须设GOPROXY=https://goproxy.cn,direct且同步配GOSUMDB=off(测试)或sum.golang.org(生产),否则proxy.golang.org超时或sum.golang.org被防火墙拦截将导致go install/go get失败。

不是 Fiber 框架本身被拦截,而是你本地开发时用 go install 或 go get 下载依赖(比如 github.com/gofiber/fiber/v2)过程中,Go 的模块代理(proxy.golang.org)或校验服务(sum.golang.org)被 Windows 防火墙或企业级网络防火墙主动阻断——表现为超时、connection refused、Get "https://proxy.golang.org/...": dial tcp: i/o timeout。
为什么 go install fiber 会触发防火墙拦截?
Go 工具链在安装包时默认走 HTTPS 请求,且会并发访问多个域名:
-
proxy.golang.org:拉取模块源码快照 -
sum.golang.org:校验模块哈希签名(强制启用,不可跳过) -
pkg.go.dev:可选,用于文档索引(不影响安装)
企业内网或某些 ISP 网络中,这些域名可能被策略归类为“外部代码托管”或“未授权软件分发”,直接丢弃连接或重定向到拦截页。Windows 自带防火墙虽不主动拦截出站 HTTPS,但若启用了“出站规则”或第三方安全软件(如 360、火绒、McAfee)叠加了应用层过滤,就容易卡在 sum.golang.org 这一环——它不返回 HTML,只返回 403 或静默超时,开发者常误以为是网络问题。
绕过拦截的三种实操路径
别急着关防火墙,先按优先级尝试以下方法:
- 临时设置 Go 环境变量跳过校验(仅限可信网络/离线开发):
go env -w GOSUMDB=off+go env -w GOPROXY=https://goproxy.cn,direct - 在 Windows 安全中心明确放行
go.exe:
进“防火墙和网络保护”→“允许应用通过防火墙”→“更改设置”→“浏览”定位到C:\Program Files\Go\bin\go.exe→勾选“专用”和“公用” - 若你在公司内网,联系 IT 部门将
sum.golang.org和proxy.golang.org加入白名单;注意:不能只加proxy.golang.org,sum.golang.org是硬性依赖,缺一不可
firewalld 用户注意:Linux 上的 proxy 代理配置陷阱
如果你在 Linux(如 CentOS/RHEL)上用 firewalld,问题往往不在防火墙本身,而在 DNS 和 outbound 规则冲突:
-
firewall-cmd --list-all查看当前 zone 是否启用了masquerade(NAT 出口伪装),没开会导致 go 无法解析proxy.golang.org - 某些企业镜像源(如清华 TUNA、中科大 USTC)使用 HTTP 重定向到 HTTPS,而
firewalld若限制了 301/302 响应头中的 Location 域名,也会导致失败 - 最简验证法:
curl -v https://proxy.golang.org看是否返回 200;若卡住,说明是 DNS 或 outbound 连接被拦,不是 Fiber 的问题
真正容易被忽略的是:Go 的模块校验机制(GOSUMDB)在 1.16+ 后默认强制启用,它不走 HTTP 代理,也不受 HTTP_PROXY 影响,必须单独处理。很多团队在 CI/CD 流水线里能装成功,只是因为构建机提前配好了白名单或关闭了校验——开发机没同步配置,就会突然“装不上 Fiber”。











