go get卡住主因是Go模块代理不可达或依赖下载阻塞,非Fiber问题;应检查GOPROXY、用go mod download -x定位卡点,并推荐临时代理goproxy.cn直装。

直接 go get github.com/gofiber/fiber/v2 没反应,八成是 Go 模块代理或网络超时卡在 fetch 阶段,不是 Fiber 本身有问题。
为什么 go get 卡住不动
Go 默认使用 proxy.golang.org,国内访问经常超时或 DNS 解析失败;go get 会尝试下载 fiber 及其全部依赖(如 github.com/valyala/fasthttp),任一环节阻塞就挂起,且无进度提示。
- 执行
go env GOPROXY,若输出为空或仍是默认地址,说明没配代理 -
curl -v https://proxy.golang.org能否通?不通就是网络层问题 - 用
go mod download -x可看到具体卡在哪一步(比如停在fasthttp@v1.52.0)
三步快速装上 Fiber(不依赖全局代理)
绕过 go get,改用模块直拉 + 本地缓存,实测成功率接近 100%:
- 先确保
go mod init yourapp已初始化,go.mod存在 - 运行:
go get -u github.com/gofiber/fiber/v2@latest,加-u强制更新并启用模块校验 - 若仍卡住,在命令前加临时代理:
GOPROXY=https://goproxy.cn,direct go get -u github.com/gofiber/fiber/v2@latest
注意:goproxy.cn 是国内镜像,direct 表示对私有仓库走直连,避免认证失败。
安装后运行报 “timeout” 不是 Fiber 的锅
Fiber 启动时出现 context deadline exceeded 或连接拒绝,大概率是你的代码里用了 http.Client 去请求外部服务但没设超时,和框架安装无关:
- 检查
main.go是否在app.Listen()前调用了未设 timeout 的 HTTP 请求(比如读配置、连 Redis) - Fasthttp 客户端(
github.com/valyala/fasthttp)必须显式设Client.ReadTimeout/WriteTimeout,它不继承net/http的默认值 - 若用标准库
http.Client,务必写成:&http.Client{Timeout: 5 * time.Second},别用零值
真正容易被忽略的是:Fiber 安装只是引入依赖,但所有网络 I/O 超时都得你亲手控制——框架不替你决定“该等多久”,连启动时的健康检查请求都要自己兜底。











