如何修改Go Gin框架默认端口?8080端口已被占用
解决Gin服务启动端口占用问题
问题根源
你的代码存在两个关键问题:
router.Run()默认绑定0.0.0.0:8080,且该方法是阻塞式执行——一旦服务成功启动,后续代码不会再执行,所以你写在后面的router.Run(":9888")永远不会被触发。- 若8080端口被占用,
router.Run()会直接触发panic,程序终止,同样无法执行到指定9888端口的代码。
修改方案
直接移除默认的router.Run()调用,只保留指定目标端口的启动代码即可。如果需要更灵活的端口配置,也可以用变量统一管理端口值。
修改后的代码
func main() { router := gin.Default() router.GET("/hi", func(context *gin.Context) { context.String(http.StatusOK, "Hello world!") }) // 直接指定要使用的端口,替换默认的8080 err := router.Run(":9888") if err != nil { panic("[Error] failed to start Gin server due to: " + err.Error()) } }
额外建议
如果需要排查端口占用情况,可以用以下命令:
- Linux/macOS:
lsof -i :8080或netstat -tulpn | grep 8080,找到占用进程后用kill <PID>终止。 - Windows:在命令行执行
netstat -ano | findstr :8080,找到PID后打开任务管理器结束对应进程。
内容的提问来源于stack exchange,提问作者zero20210602
相关产品推荐
相关产品推荐

