监听TCP 127.0.4.1:2040:绑定:无法分配请求的地址

时间:2020-05-08 21:27:49

标签: macos http go tcp localhost

我正在使用以下golang代码:

l, err := net.Listen("tcp", "127.0.4.1:2040")

if err != nil {
    log.Fatal("d0b9184a-5248-413e-a5a8-30fea66997f5:", err)
}

log.Fatal(s.Serve(l))

我收到此错误:

监听tcp 127.0.4.1:2040:绑定:无法分配请求的地址

有人知道为什么那行不通吗?

1 个答案:

答案 0 :(得分:0)

您必须向回送接口添加其他IPv4地址:

sudo ifconfig lo0 alias 127.0.4.1

在运行命令之前,您可以使用以下方法验证路由:

netstat -nr

默认情况下(在MacOS Catalina 10.15.4上),存在以下路由:

127                127.0.0.1          UCS            lo0
127.0.0.1          127.0.0.1          UH             lo0

在将所需的地址添加到环回接口(即lo0)后,netstat -nr将显示:

127                127.0.0.1          UCS            lo0
127.0.0.1          127.0.0.1          UH             lo0
127.0.4.1          127.0.4.1          UH             lo0

现在尝试使用您的程序,它应该可以工作。

这也是临时的。重新启动后将不会持续。为此,请为此read