Zander17
Zander17

Reputation: 1964

Golang net.Listen IPv6

I'm attempting to get IPv6 working with Golang net.Listen() however I keep getting the following error:

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

Code:

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

Any ideas why I'm running into this problem? IPv4 seems to work np

Upvotes: 4

Views: 4416

Answers (1)

Mr_Pink
Mr_Pink

Reputation: 109426

Attempting to bind a link-scoped ipv6 address without a proper scope will result in this error from the operating system. If you actually want a link-scoped address, you have to provide the proper scope id, e.g.

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

Otherwise you need to use a valid globally scoped ipv6 address.

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

Upvotes: 8

Related Questions