配置ipv6默认路由需确保接口拥有scope global地址(如2001:db8::100/64),仅fe80::链路本地地址不满足跨网段转发条件;使用ip -6 route add default via 2001:db8::1 dev ens33临时添加,网关须与本机同子网且二层可达;永久配置依发行版分别写入netplan、ifcfg或通过nmcli设置,并排查路由表、网关连通性及ip6tables防火墙。

配置 IPv6 默认路由规则,关键在于让系统知道“发往外部网络的 IPv6 流量该往哪儿送”。它不是光有地址就行,必须和全局可路由地址、正确网关、接口状态三者匹配才真正生效。
确认前提:IPv6 地址和接口已就绪
默认路由只有在接口拥有 scope global 的 IPv6 地址时才有意义。仅看到 fe80::/10(链路本地)地址说明底层协议栈通了,但不满足跨网段转发条件。
- 运行
ip -6 addr show dev ens33(把ens33换成你的实际接口名),确认输出中包含类似inet6 2001:db8::100/64 scope global的行 - 若只有
fe80::行,需先配置全局地址(如通过 DHCPv6、SLAAC 或手动添加)
添加 IPv6 默认路由的常用命令
使用 ip -6 route 是最直接、最通用的方式,适用于所有主流发行版:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
- 临时添加(重启或网络服务重载后失效):
sudo ip -6 route add default via 2001:db8::1 dev ens33 - 验证是否成功:
ip -6 route show | grep default应显示刚添加的条目 - 删除误配的默认路由:
sudo ip -6 route del default via 2001:db8::1 dev ens33
注意:网关地址 2001:db8::1 必须与本机 IPv6 地址在同一子网内,且能被链路层直接访问(即属于同一二层网络)。
永久保存默认路由(按发行版区分)
临时命令不会写入配置,重启后丢失。要持久化,需结合网络管理机制:
-
Ubuntu/Debian(Netplan):在
/etc/netplan/*.yaml的对应连接块中加入routes:- to: defaultvia: 2001:db8::1
然后执行sudo netplan apply -
RHEL/CentOS/Rocky(传统 ifcfg):在
/etc/sysconfig/network-scripts/ifcfg-ens33中添加IPV6_DEFAULTGW=2001:db8::1
并确保IPV6INIT=yes,再重启网络服务 -
NetworkManager 管理的系统(含多数桌面版):
sudo nmcli connection modify "System ens33" ipv6.routes "default via 2001:db8::1"sudo nmcli connection up "System ens33"
常见问题排查要点
即使命令执行无报错,也可能不通。重点检查以下三项:
- 路由表里是否有
default via ... dev ens33,且dev指向的是你配了全局地址的那个接口 - 用
ping6 -I ens33 2001:db8::1测试能否到达网关(-I指定源接口,避免选错出口) - 确认防火墙未拦截 IPv6 转发(如
iptables -t filter -L INPUT不影响,但ip6tables可能限制)










