listen tcp 127.0.4.1:2040: bind: 无法分配请求的地址
listen tcp 127.0.4.1:2040: bind: can't assign requested address
我正在使用这个 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
有人知道为什么那行不通吗?
您必须向环回接口添加一个额外的 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!
我正在使用这个 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
有人知道为什么那行不通吗?
您必须向环回接口添加一个额外的 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!