Linux配置IPv6静态地址与路由需区分临时与永久生效:临时用ip -6 addr add和ip -6 route add;永久则按发行版选Netplan(Ubuntu/Debian)或ifcfg(RHEL系),并确保IPv6已启用、网关可达且接口有scope global地址。

Linux 配置 IPv6 静态地址与路由,关键在于区分“临时生效”和“永久生效”,并匹配系统所用的网络管理机制(如 Netplan、ifcfg 或 NetworkManager)。IPv6 通常默认启用,但静态地址、网关、DNS 和路由需手动设置。
确认 IPv6 已启用
先检查系统是否允许 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 中添加三行:
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
然后运行 sudo sysctl -p
临时配置 IPv6 地址与默认路由
适用于调试或快速验证,重启后失效:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 添加地址:sudo ip -6 addr add 2001:db8::100/64 dev eth0
- 删除地址:sudo ip -6 addr del 2001:db8::100/64 dev eth0
- 添加默认网关:sudo ip -6 route add default via 2001:db8::1 dev eth0
- 添加特定路由:sudo ip -6 route add 2001:db8:100::/64 via 2001:db8::1 dev eth0
- 验证:用 ip -6 addr show dev eth0 查地址,ip -6 route show 查路由,ping6 -c 3 2001:4860:4860::8888 测试连通性
永久配置(按发行版)
修改配置文件后必须应用生效,不同系统路径与语法不同:
-
Ubuntu/Debian(Netplan):编辑 /etc/netplan/*.yaml,例如:
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses: [2001:db8::100/64]
routes:
- to: default
via: 2001:db8::1
nameservers:
addresses: [2001:4860:4860::8888]
执行 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
IPV6DNS=2001:4860:4860::8888
IPV6_AUTOCONF=no
然后重启网络:sudo systemctl restart network(或使用 nmcli 若启用 NetworkManager)
静态路由的持久化要点
ip -6 route add 命令本身不保存,永久路由必须写入配置文件:
- Netplan 中路由必须绑定接口,并注意 on-link: true —— 当网关不在直连子网时才需显式设置
- RHEL 系统使用 /etc/sysconfig/network-scripts/route6-eth0 文件,每行一条路由,格式为:
2001:db8:200::/64 via 2001:db8::2 dev eth0
default via 2001:db8::ff dev eth0 - 务必确保网关可达:用 ping6 测试,且接口要有 scope global 的 IPv6 地址


















