587 字
3 分钟
VPS 上禁用与启用 IPv6 全教程
在 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 = 1net.ipv6.conf.default.disable_ipv6 = 1net.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/Debiansudo update-grub# CentOS / Rocky / AlmaLinuxsudo grub2-mkconfig -o /boot/grub2/grub.cfgsudo reboot三、启用 IPv6
如果你之前禁用了 IPv6 或系统没有自动启用:
1️⃣ 方法一:通过 sysctl 启用
sudo nano /etc/sysctl.conf添加/修改:
net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.disable_ipv6 = 0net.ipv6.conf.lo.disable_ipv6 = 0net.ipv6.conf.all.forwarding = 1 # 如果需要路由转发生效:
sudo sysctl -p2️⃣ 方法二:通过 GRUB 启用
如果 GRUB 中有 ipv6.disable=1,删除该参数并更新 GRUB:
# 修改 /etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT="quiet"
# 更新 GRUBsudo update-grub # Ubuntu/Debiansudo grub2-mkconfig -o /boot/grub2/grub.cfg # CentOSsudo 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 applyip a | grep inet6如果没有分配公网 IPv6,可能需要在 VPS 控制台开启 IPv6。
四、测试 IPv6 是否可用
ping6 ipv6.google.com- 返回
64 bytes from ...→ IPv6 已生效 - 返回
Network unreachable→ 可能没有分配 IPv6 地址
五、总结
| 操作 | 方法 |
| 禁用 IPv6 | sysctl 或 GRUB |
| 启用 IPv6 | 删除 GRUB 参数 + sysctl + 网卡配置 |
| 检查状态 | cat /proc/sys/net/ipv6/conf/all/disable_ipv6 和 ip a |
| 测试网络 | ping6 ipv6.google.com |
通过以上步骤,你可以灵活地在 VPS 上开启或禁用 IPv6,满足不同的网络需求。