macos - 听 TCP 127.0.4.1 :2040: bind: can't assign requested address

标签 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))

我收到这个错误:

listen tcp 127.0.4.1:2040: bind: can't assign requested address

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

最佳答案

您必须向环回接口(interface)添加一个额外的 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

将所需地址添加到环回接口(interface)(即 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 !

关于macos - 听 TCP 127.0.4.1 :2040: bind: can't assign requested address,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61688386/

相关文章:

macos - 如何在终端中使用 CUPS 将 PDF 打印到原始打印机文件

javascript - Jsonstub 响应未显示

Golang 错误 - 复合文字中缺少类型

php - 隐藏服务器版本不起作用

http - 在 wreq 中发送数据(不是表单)

XML Marshal 在此 Go 示例中不起作用

go - 如何从 Go 中的 imap 服务器获取正文

macos - 奇怪的 NSScreen 坐标

cocoa - MVC - Cocoa 界面 - Cocoa 设计模式书

macos - 在 OSX 上安装 docker 工具箱时出现版本错误