我正在使用这个 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/