Golang net.Listen IPv6

Golang net.Listen IPv6

我正在尝试让 IPv6 与 Golang 一起工作 net.Listen() 但是我不断收到以下错误:

listen tcp [xxxx::xxx:xxxx:fe4f:7e0b]:9443: bind: invalid argument

代码:

s.Listener, err = net.Listen("tcp", config.LocalNode().IP+":"+config.LocalNode().Port)

知道为什么我 运行 会遇到这个问题吗? IPv4 似乎工作 np

尝试绑定一个 link-scoped ipv6 地址但没有适当的范围将导致操作系统出现此错误。如果你真的想要一个 link 范围的地址,你必须提供正确的范围 ID,例如

"[fe80::4c3:3cff:fe4f:7e0b%eth0]:9443"

否则您需要使用有效的全局范围内的 ipv6 地址。

"[2600:1f18:63ef:e802:355f:aede:dbba:2c03]:9443"