关键不是看到fe80::地址,而是确保全局单播地址生效且可路由;必须同时满足ipv6模块加载、sysctl开关为0、接口disable_ipv6=0三者,缺一不可。

Linux启用IPv6并配置地址,关键不是“看到fe80::地址”,而是让全局单播地址真正生效、可路由。链路本地地址(fe80::/10)是内核自动添加的,哪怕IPv6协议栈已被禁用,它也可能显示出来——这会误导你认为IPv6已就绪。
确认IPv6协议栈是否真正启用
必须同时满足三项,缺一不可:
-
lsmod | grep ipv6有输出(ipv6内核模块已加载) -
sysctl net.ipv6.conf.all.disable_ipv6返回0 -
cat /proc/sys/net/ipv6/conf/all/disable_ipv6显示0
任一为 1,ping6 ::1 或 curl -6 https://ipv6.google.com 都会失败。
临时启用并配置(重启即失效)
适合快速验证或调试:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 加载模块:
sudo modprobe ipv6 - 开启全局协议栈:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 - 启用回环和物理接口(如ens33):
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0sudo sysctl -w net.ipv6.conf.ens33.disable_ipv6=0 - 添加全局单播地址(例如):
sudo ip -6 addr add 2001:db8::100/64 dev ens33 - 检查是否成功:
ip -6 addr show dev ens33→ 必须看到scope global,仅scope link无法跨网段通信
永久配置(按发行版区分)
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(network-scripts)
编辑 /etc/sysconfig/network-scripts/ifcfg-ens33,确保包含:
IPV6INIT=yes IPV6ADDR=2001:db8::100/64 IPV6_DEFAULTGW=2001:db8::1 IPV6_AUTOCONF=no
然后重启网络服务:sudo systemctl restart network
验证配置是否生效
- 查地址:
ip -6 addr show dev ens33 | grep "inet6.*global" - 查路由:
ip -6 route | grep "^default" - 测试连通:
ping6 -c 3 2001:4860:4860::8888 - 测试DNS:
dig AAAA google.com @2001:4860:4860::8888
不复杂但容易忽略。










