Troubleshooting guide for resolving network connectivity issues after OS upgrades that change network interface names on Vultr instances.
Some operating system upgrades may cause your instance’s network interface names to change (for example, from enp1s0 to ens3), breaking existing Netplan configuration and resulting in loss of network connectivity.
Vultr typically uses interfaces such as enp1s0, enp8s0, and may add more depending on your instance configuration. If your instance loses network connectivity after an upgrade, verify and correct your Netplan interface names.
Access your instance via the Web Console from the Vultr Customer Portal. Run the following command to list all active interfaces and their MAC addresses:
$ ip addr
Compare the listed interfaces with your Netplan config /etc/netplan/50-cloud-init.yaml
to ensure the names match.
In case names are not correct, edit the NetPlan /etc/netplan/50-cloud-init.yaml
file to reflect the correct interface names and MAC addresses. Below is an example of a corrected Netplan config:
# /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
enp1s0:
dhcp4: true
dhcp6: true
match:
macaddress: <mac-address>
set-name: enp1s0
enp8s0:
addresses:
- 10.1.112.7/20
match:
macaddress: <mac-address>
mtu: 1450
set-name: enp8s0
Save and exit the file.
Replace the <mac-address>
fields based on the actual output of ip addr.
Test the configuration.
$ sudo netplan try --debug
This applies the configuration for 120 seconds. If networking works, confirm by pressing Enter.
Test external network access using ping
.
$ ping 1.1.1.1
If the ping is successful, your instance has recovered internet access.
To ensure your custom network configuration persists after reboots, you can disable cloud-init from overwriting the Netplan configuration:
Create a new cloud config file to disable the cloud-init network configuration.
$ sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
Add the following content to the file.
network: {config: disabled}
Save and exit the file.
Reboot the instance to apply and persist the configuration.
$ reboot
This ensures cloud-init does not override your custom Netplan interface mappings on future boots.