Setting up IPv6 for Lavalink on Contabo VPS is super easy. The VPS comes with a /64 address to use.

This how-to may depend on your system's OS, but it has already been tested on Ubuntu and Debian.

First, you need to enable IPv6 on your Contabo VPS. It's very easy, as they have already included auto commands in the .bashrc for you. Enable IPv6 by using this command: enable_ipv6

Then reboot your server once, as stated in the Contabo documentation. reboot

To see your IPv6 /64 address, simply type: ip a

Expected output:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:50:56:51:fc:62 brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    altname ens18
    inet brd scope global eth0
       valid_lft forever preferred_lft forever
    inet6 you-want-to-copy-this-one::1/64 scope global <------- copy this ipv6 /64
       valid_lft forever preferred_lft forever
    inet6 ignore-this-one/64 scope link
       valid_lft forever preferred_lft forever

Then we need to enable nonlocal bind: sysctl -w net.ipv6.ip_nonlocal_bind=1

And echo 'net.ipv6.ip_nonlocal_bind=1' >> /etc/sysctl.conf (So you do not need to adjust sysctl settings again when rebooting the server.)

Then ip -6 route replace local the-ipv6-you-copied::/64 dev lo (Don't forget to remove the '1' from the address that you copy from, for example 'you-want-to-copy-this-one::1/64', the '1' after '::'.)

Test your IPv6

# Replace 1234:1234:1234:: with your IPv6 address.
ping6 -I 1234:1234:1234:: -c 2
ping6 -I 1234:1234:1234::1 -c 2
ping6 -I 1234:1234:1234::2 -c 2
ping6 -I 1234:1234:1234:dead:beef:1234:1234 -c 2