You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Go Gin框架默认端口?8080端口已被占用

解决Gin服务启动端口占用问题

问题根源

你的代码存在两个关键问题:

  1. router.Run() 默认绑定0.0.0.0:8080,且该方法是阻塞式执行——一旦服务成功启动,后续代码不会再执行,所以你写在后面的router.Run(":9888")永远不会被触发。
  2. 若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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:10:39