Golang中Godoc启动HTTP服务时出现localhost连接拒绝问题

Golang中Godoc启动HTTP服务时出现localhost连接拒绝问题 我正在尝试让 godoc -http 工作,但无法让浏览器连接到 localhost。很难找到其他人遇到类似问题的帖子,我可以尝试哪些方法来排查这个问题?

谢谢!

godoc -http:=6060

使用 GOPATH 模式

http://localhost:6060/

显示:

无法访问此网站

localhost 拒绝连接。

尝试:

ERR_CONNECTION_REFUSED

9 回复

godoc -http=:6060

更多关于Golang中Godoc启动HTTP服务时出现localhost连接拒绝问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


运行 godoc 时你得到了什么输出?

可能是你的防火墙问题,可以尝试在另一个端口上运行,或者检查防火墙程序的配置,看看是否可以解除阻止?

仔细观察:

godoc -http:=6060
godoc -http=:6060

请注意 -http:=6060= 的位置,godoc 命令使用 flag 库来解析参数。

localhost 拒绝连接。

尝试:

  • 检查连接
  • 检查代理和防火墙

ERR_CONNECTION_REFUSED

godoc -http=:6060

这个问题再次出现,我可能已经追踪到它是由Windows快速启动和WSL之间的竞态条件引起的,重启有时能解决这个问题。当这种情况发生时,真正有趣的是,如果你用一个goroutine检查localhost的状态,它会返回200状态码且没有错误。只是浏览器无法连接;即使关闭了Windows防火墙也是如此。

我认为是我的环境问题,我甚至无法提供一个简单的网页。我重新安装后,没有更改GOROOT,并且将Go文件夹放在了默认位置,然后一切就正常工作了。

我使用的是WSL。不确定为什么一开始没有安装到默认位置,但[第三次]尝试时成功了,Go文件夹也放在了它应该在的位置。包括godoc在内的一切都运行正常。这对我来说有点神秘。感谢大家的回复。不确定我最初哪里出错了。

检查 godoc 服务是否在指定端口上运行:

// 检查进程是否在运行
ps aux | grep godoc

// 或使用 netstat 检查端口监听
netstat -tlnp | grep 6060

如果服务未运行,尝试以下步骤:

  1. 检查 GOPATH 设置
echo $GOPATH
go env GOPATH
  1. 使用完整路径启动 godoc
# 查找 godoc 可执行文件路径
which godoc

# 或使用 go 工具直接运行
go tool godoc -http=:6060
  1. 尝试不同端口(可能端口被占用):
godoc -http=:7070
  1. 检查防火墙设置
# Linux 检查防火墙
sudo ufw status

# 临时禁用防火墙测试
sudo ufw disable
# 测试后重新启用
sudo ufw enable
  1. 使用详细模式启动
godoc -v -http=:6060
  1. 检查 Go 安装
# 确认 godoc 工具存在
go version
go list -f {{.Target}} golang.org/x/tools/cmd/godoc

如果仍然无法连接,尝试使用 127.0.0.1 替代 localhost: http://127.0.0.1:6060/

回到顶部