If your public IP shows up as "<nil>:0", this may indicate that nodes are not able to authenticate your public IP address. This will occur if your node connects to a peer from an IP different from the one that it is broadcasting as its own public IP. The most common cause is NAT Traversal failing, but can also be caused by an incorrect networking setup (especially within docker environment). Your node must be able to dial up outbound connections and listen for inbound connections on the same public IP, which may require a VPN if NAT Traversal fails.
If you're running into issues with your public IP, feel free to reach out to the Avalanche team on Discord for assistance.