在 VPS 上,有时出于安全或网络需求,你可能想 禁用 IPv6;有时又需要 开启 IPv6 来使用新一代网络服务。本文就来详细讲解如何在 Linux VPS 上管理 IPv6。
⚠️ 本文以 Ubuntu / Debian / CentOS 系统为例,其他 Linux 发行版也适用,只需根据网络配置方式做小调整。
一、检查当前 IPv6 状态
在动手前,先确认 VPS 的 IPv6 当前状态:
# 查看内核 IPv6 是否禁用
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
# 查看网卡是否有 IPv6 地址
ip a如果
disable_ipv6输出0,表示 IPv6 功能已启用如果输出
1,表示 IPv6 已禁用网卡下有
inet6地址,则 IPv6 已可用
二、禁用 IPv6
禁用 IPv6 主要有两种方式:内核级 和 系统级。
1️⃣ 方法一:通过 sysctl 永久禁用
编辑配置文件(如果不存在可以新建):
sudo nano /etc/sysctl.conf添加以下内容:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1立即生效:
sudo sysctl -p验证:
ip a | grep inet6如果没有输出 IPv6 地址,禁用成功 ✅
2️⃣ 方法二:通过 GRUB 禁用(彻底禁用)
编辑 GRUB 配置:
sudo nano /etc/default/grub找到:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"改成:
GRUB_CMDLINE_LINUX_DEFAULT="quiet ipv6.disable=1"更新 GRUB 并重启:
# Ubuntu/Debian
sudo update-grub
# CentOS / Rocky / AlmaLinux
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot三、启用 IPv6
如果你之前禁用了 IPv6 或系统没有自动启用:
1️⃣ 方法一:通过 sysctl 启用
sudo nano /etc/sysctl.conf添加/修改:
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.all.forwarding = 1 # 如果需要路由转发生效:
sudo sysctl -p2️⃣ 方法二:通过 GRUB 启用
如果 GRUB 中有 ipv6.disable=1,删除该参数并更新 GRUB:
# 修改 /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
# 更新 GRUB
sudo update-grub # Ubuntu/Debian
sudo grub2-mkconfig -o /boot/grub2/grub.cfg # CentOS
sudo reboot3️⃣ 配置网卡获取 IPv6 地址(Ubuntu/Debian Netplan 示例)
sudo nano /etc/netplan/01-netcfg.yaml修改:
network:
version: 2
ethernets:
eth0:
dhcp4: true
dhcp6: true
accept-ra: true应用:
sudo netplan apply
ip a | grep inet6如果没有分配公网 IPv6,可能需要在 VPS 控制台开启 IPv6。
四、测试 IPv6 是否可用
ping6 ipv6.google.com返回
64 bytes from ...→ IPv6 已生效返回
Network unreachable→ 可能没有分配 IPv6 地址
五、总结
通过以上步骤,你可以灵活地在 VPS 上开启或禁用 IPv6,满足不同的网络需求。
评论区