Kratos环境搭建核心是版本对齐与生成链路打通:需Go 1.21+、GO111MODULE=on、protoc及protoc-gen-go/v1.34.2、protoc-gen-go-http/grpc插件、kratos CLI二进制安装,并确保权限正确。

Kratos 环境搭建的关键不在“装多少”,而在于「版本对齐」和「生成链路打通」——Go、protoc、protoc-gen-go、kratos CLI 四者版本不匹配,go generate 就会静默失败或生成空文件,这是新手卡住最久的地方。
Go 和模块模式必须提前设好
Kratos 当前(2026 年)主干已强依赖 Go 1.21+,且默认启用 module 模式。如果 go version 低于 1.21,kratos new 可能创建出无法 go mod download 的项目;如果 GO111MODULE 未开启,go generate 会找不到 github.com/go-kratos/kratos/v2/cmd/protoc-gen-go-http 等插件。
- 执行
go version确认输出类似go version go1.24.3 darwin/arm64 - 运行
go env -w GO111MODULE=on,再确认go env GO111MODULE返回on - 国内用户务必配置代理:
go env -w GOPROXY=https://goproxy.cn,direct
protoc 和 protoc-gen-go 插件要分清职责
protoc 是编译器本体,负责解析 .proto 文件;protoc-gen-go 是 Go 语言插件,负责把 proto 结构转成 Go struct;Kratos 还额外需要 protoc-gen-go-http 和 protoc-gen-go-grpc 来生成 HTTP 路由和 gRPC 接口代码。这三者缺一不可,且版本需与 Kratos v2.10+ 兼容。
- 下载 protoc:从
https://github.com/protocolbuffers/protobuf/releases拿对应系统的protoc-<ver>-<os>-<arch>.zip</arch></os></ver>,解压后把bin/protoc放入$PATH - 安装插件:
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.2(注意不是github.com/golang/protobuf,那是旧版) - 安装 Kratos 扩展:
go install github.com/go-kratos/kratos/cmd/protoc-gen-go-http@latest和go install github.com/go-kratos/kratos/cmd/protoc-gen-go-grpc@latest - 验证:
protoc --version应输出libprotoc 27.x;which protoc-gen-go必须返回路径
kratos CLI 工具不能用 go get 安装
官方明确弃用 go get 安装 kratos 命令行工具,因为其依赖 wire、cobra 等组件的版本约束复杂,go get 容易拉取到不兼容快照。必须用二进制方式安装,否则 kratos new 创建的项目结构可能缺失 wire.go 或 Makefile。
- Linux/macOS:运行
curl -sfL https://raw.githubusercontent.com/go-kratos/kratos/main/install.sh | sh -s -- -b /usr/local/bin - Windows:从
https://github.com/go-kratos/kratos/releases下载kratos_<ver>_windows_amd64.zip</ver>,解压后把kratos.exe放入%PATH% - 验证:
kratos version应输出类似v2.10.3,且kratos help能正常显示命令列表
最容易被忽略的是 protoc-gen-go-http 插件权限问题:macOS/Linux 上如果 protoc 找不到它,不是路径不对,而是没加可执行权限——chmod +x $(go env GOPATH)/bin/protoc-gen-go-http 才算真正就绪。


















