What Is IPv6? How It Differs From IPv4 and Using It on Servers
What is IPv6 and how is it different from IPv4? Address format, /64 blocks, AAAA records, IPv6 on a Linux server, firewalls, testing and game servers.

Contents
IPv6 is the newer version of the protocol used to give addresses to devices on the internet. The older IPv4 offers about 4.3 billion addresses, and those ran out years ago; IPv6, on the other hand, provides a practically unlimited number of addresses. 203.0.113.10 is an IPv4 address, while 2001:db8:85a3::8a2e:370:7334 is an IPv6 address. Today, most servers use both protocols together; this is called dual-stack.
This article covers what IPv6 is, how it differs from IPv4, how to read addresses, adding IPv6 to your domain, and configuring and testing IPv6 on a Linux server.
The difference between IPv4 and IPv6
| Feature | IPv4 | IPv6 |
|---|---|---|
| Address length | 32 bits | 128 bits |
| Number of addresses | About 4.3 billion | Practically unlimited |
| Notation | 203.0.113.10 | 2001:db8::10 |
| DNS record | A | AAAA |
| Need for NAT | Common (due to the address shortage) | Usually not needed |
| Given to a server | Usually a single address | Usually a /64 block |
Because IPv4 addresses have run out, internet providers put many customers behind a single address (CGNAT); this makes hosting a server from home harder. With IPv6, every device can have its own public address. We cover the effects of CGNAT in our What is a port? article.
How do you read an IPv6 address?
An IPv6 address is made up of eight groups of hexadecimal numbers separated by colons:
2001:0db8:0000:0000:0000:0000:0000:0010
Two rules make it easier to read:
- Leading zeros in each group are dropped:
0db8→db8,0010→10. - A run of consecutive zero groups is replaced with
::once.
So the address above becomes 2001:db8::10. A suffix like /64 at the end of the address shows the size of the network (the prefix length). Servers usually get a /64 block; this block contains about 18 quintillion addresses and lets you use as many IPv6 addresses as you like on your server.
Special addresses you'll see often:
::1: The server itself (127.0.0.1in IPv4).- Addresses starting with
fe80::: Addresses valid only on the local network link (link-local). Every network interface has one automatically.
Adding IPv6 to your domain: the AAAA record
While an A record is used for an IPv4 address, an AAAA record is used for an IPv6 address. If your server has been given an IPv6 address, add both to your domain:
yourdomain.com. A 203.0.113.10
yourdomain.com. AAAA 2001:db8::10
If the visitor's connection supports IPv6, the browser usually prefers IPv6; if it doesn't, it connects over IPv4. Before adding an AAAA record, test that the service on the server really works over IPv6; a broken AAAA record means visitors who use IPv6 can't reach your site. We cover DNS records in our What is DNS? article.
Checking IPv6 on a Linux server
After connecting to your server with SSH, look at your IPv6 addresses:
ip -6 addr
ip -6 route
If you see an address marked scope global and a default route (default via), IPv6 is configured. Test outbound connectivity:
ping -6 -c 4 google.com
curl -6 https://ifconfig.co
The second command shows which IPv6 address your server uses to reach the internet.
Manual configuration (Ubuntu, netplan): If your IPv6 address wasn't set up automatically, add the address and gateway your provider gave you to the configuration file under /etc/netplan/:
network:
version: 2
ethernets:
eth0:
addresses:
- 2001:db8::10/64
routes:
- to: default
via: 2001:db8::1
Replace the interface name (eth0) and the addresses with your own details, then safely try the change with sudo netplan try; if your connection drops, the settings are rolled back automatically within a few minutes. If you lose access to the server because of a bad network setting, use your provider's web console.
IPv6 in the firewall
A firewall with rules written only for IPv4 can leave connections coming in over IPv6 unprotected. If you use ufw, check this line in the /etc/default/ufw file:
IPV6=yes
With this setting on, every rule such as sudo ufw allow 443/tcp applies to both protocols; in the sudo ufw status output, you'll see rules marked with (v6). If you changed the setting, reload the rules with sudo ufw reload.
Making services listen on IPv6
For a service to be reachable over IPv6, it also needs to listen on IPv6 addresses:
- Nginx: Add
listen [::]:80;next to thelisten 80;line in the server block (listen [::]:443 ssl;for HTTPS). See our How to install Nginx guide for details. - Applications:
0.0.0.0only listens on IPv4; an application listening on::, on the other hand, accepts both IPv6 and IPv4 connections on most Linux systems. - Checking: Lines like
[::]:443in thess -tulpnoutput show that the service is listening on IPv6.
IPv6 on game servers
IPv6 support on game servers varies by game. Minecraft Java Edition can connect to IPv6 addresses; Bedrock Dedicated Server uses a separate port for IPv6 (19133 by default). Many Steam-based game servers, however, still work only over IPv4. Since most of your players use IPv4, always share your IPv4 address as the primary address for game servers. We cover the IPv6 setting for Bedrock in our How to make a Minecraft Bedrock server guide.
IPv6 at Nodesty
Nodesty dedicated servers come with an IPv4 address and a /64 IPv6 block, so you can run your server as dual-stack from day one and give each website, service or container its own IPv6 address. You can also get additional IPv4 addresses along with nShield DDoS protection. For questions about using IPv6 on your AMD Ryzen 9 9950X VPS plans, you can contact our support team.
Frequently Asked Questions
Do I have to use IPv6?
Today, most services still work fine over IPv4, but the share of visitors and devices using IPv6 grows every year. If both IPv4 and IPv6 are enabled on your server (dual-stack), you reach both kinds of users by the best route. Instead of turning IPv6 off, we recommend configuring it properly.
How many addresses does a /64 IPv6 block contain?
A /64 block contains 2 to the power of 64, or about 18 quintillion, addresses. In practice, this means you can use as many IPv6 addresses as you like on your server; you can give each website, service or container its own address.
How can I tell whether my home internet supports IPv6?
You can open a test site like test-ipv6.com in your browser, or run the ping -6 google.com command on the command line. If you get a response, your connection supports IPv6. If there's no support, you keep connecting to servers with IPv6 addresses over IPv4.
Will my firewall still work when I enable IPv6?
You need to make sure the firewall applies rules to IPv6 too. In ufw, it's enough for the IPV6 setting in the /etc/default/ufw file to be yes; the rules you add then apply to both protocols. On a server with only IPv4 rules, services can be left unprotected over IPv6.
Is IPv6 ping lower than IPv4?
Not always. Latency depends more on the path the data takes than on the protocol. With some providers the IPv6 path can be shorter, with others longer. By measuring the same server with ping -4 and ping -6, you can see which is faster on your own connection.
Can I use IPv6 in Docker containers?
Yes, but IPv6 is turned off by default in Docker and has to be enabled separately in the daemon settings. If your containers only run behind a reverse proxy, it's often enough for just the proxy to listen on an IPv6 address.
About the author
Nodesty Team · Infrastructure & Support
The Nodesty team runs our servers, network and DDoS protection day to day and answers customer support requests around the clock. These guides come from that work.
Related articles

How to Upgrade Ubuntu Server to the Next LTS Release
How to upgrade an Ubuntu server to the next LTS release: backups, preparation, do-release-upgrade, SSH access, post-upgrade checks and a clean install.

What Is a Load Balancer and How Does It Work?
What is a load balancer and what does it do? Balancing methods, health checks, session handling, load balancing with Nginx, HAProxy and when you need one.

How to Deploy a Laravel App to a VPS
How to deploy Laravel to a server: PHP-FPM, Composer, .env, the database, file permissions, Nginx, queue workers, the scheduler, SSL and shipping updates.