Linux配置IPv6需区分临时与永久生效:先检查并启用IPv6(加载ipv6模块、设置disable_ipv6=0),再用ip -6 addr add和ip -6 route add临时配置地址与网关;永久配置则按发行版选Netplan(Ubuntu/Debian)、ifcfg(RHEL系)或nmcli(NetworkManager),并应用生效。

Linux 服务器配置 IPv6 地址与网关,关键在于区分“临时生效”和“永久生效”,并匹配系统使用的网络管理机制(如 Netplan、network-scripts 或 NetworkManager)。IPv6 协议栈通常默认启用,但地址、网关、DNS 需手动指定才能实现完整连通。
先确认 IPv6 是否可用
执行以下命令检查基础状态:
-
查看内核是否加载 ipv6 模块:
lsmod | grep ipv6—— 若无输出,运行sudo modprobe ipv6并将ipv6写入/etc/modules确保开机加载 -
确认 IPv6 全局开关是否开启:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6—— 返回0表示已启用;若为1,需临时启用:sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0,并永久写入/etc/sysctl.conf -
列出当前 IPv6 地址:
ip -6 addr show dev eth0(替换为实际接口名,如 ens3、enp0s3) -
查看 IPv6 路由表:
ip -6 route show
临时配置 IPv6 地址与网关(重启即失效)
适合测试、调试或快速验证网络可达性:
- 为接口添加 IPv6 地址:
sudo ip -6 addr add 2001:db8::100/64 dev eth0 - 设置默认网关:
sudo ip -6 route add default via 2001:db8::1 dev eth0 - 如需 DNS 解析,可临时修改
/etc/resolv.conf,添加:nameserver 2001:4860:4860::8888 - 验证连通性:
ping6 -c 3 2001:4860:4860::8888或ping6 -c 3 google.com(需 DNS 正常)
永久配置 IPv6(按发行版选择方式)
配置后必须应用生效,否则不会写入运行时环境:
-
Ubuntu/Debian(Netplan):编辑
/etc/netplan/*.yaml,在对应接口下添加:addresses: [2001:db8::100/64] gateway6: 2001:db8::1 nameservers: addresses: [2001:4860:4860::8888, 2001:4860:4860::8844]
保存后执行:sudo netplan apply -
RHEL/CentOS/Rocky(ifcfg 文件):编辑
/etc/sysconfig/network-scripts/ifcfg-eth0,确保包含:IPV6INIT=yes IPV6ADDR=2001:db8::100/64 IPV6_DEFAULTGW=2001:db8::1 IPV6_AUTOCONF=no IPV6DNS=2001:4860:4860::8888
重启网络:sudo systemctl restart network(或使用nmcli connection reload && nmcli connection up eth0) -
通用 NetworkManager 方式(桌面或部分服务器):
sudo nmcli connection modify eth0 ipv6.addresses 2001:db8::100/64 ipv6.gateway 2001:db8::1 ipv6.dns "2001:4860:4860::8888" ipv6.method manual
然后激活:sudo nmcli connection up eth0
补充注意事项
配置过程中容易忽略但影响实际通信的几点:
- 确保子网前缀长度(如
/64)与上游分配一致,否则路由可能不生效 - 云服务器场景中,部分平台仅分配私网 IPv6(如
fe80::或fdxx::),需额外开通公网能力才能访问外网 - 若同时配置 IPv4 和 IPv6,建议设
IPV6_FAILURE_FATAL=no(RHEL系)或optional: true(Netplan),避免 IPv6 配置失败导致整个接口无法启用 - 防火墙(如 firewalld、nftables)默认可能屏蔽 IPv6 流量,必要时开放 ICMPv6 或对应端口


















