在Rocky Linux中配置静态IPv6地址需结合NetworkManager工具与配置文件调整。以下为实践步骤及常见问题分析:
-
确认网络接口
nmcli dev status或ip -6 addr show查看接口名称(如ens192)及现有IPv6配置。 -
使用nmcli配置(推荐)
nmcli con mod <连接名> ipv6.addresses 2001:db8::1/64 nmcli con mod <连接名> ipv6.gateway 2001:db8::fe nmcli con mod <连接名> ipv6.dns "2001:4860:4860::8888" nmcli con mod <连接名> ipv6.method manual systemctl restart NetworkManager -
手动编辑配置文件(旧版兼容)
修改/etc/sysconfig/network-scripts/ifcfg-ens192:IPV6ADDR=2001:db8::1/64 IPV6_DEFAULTGW=2001:db8::fe IPV6_DNS1=2001:4860:4860::8888 IPV6_AUTOCONF=no
核心挑战与解决方案
- 路由宣告冲突:当网络中存在RA(Router Advertisement)时,系统可能优先使用SLAAC地址。需在接口配置添加
IPV6INIT=yes并设置内核参数net.ipv6.conf.ens192.accept_ra=0,或通过nmcli设置ipv6.ra-timeout=0 - 双栈路由优先级:IPv6默认路由可能未生效,需检查
ip -6 route并手动添加ip -6 route add default via 2001:db8::fe dev ens192 - 防火墙拦截:firewalld需放行IPv6流量,建议创建独立zone并绑定接口:
firewall-cmd --permanent --new-zone=ipv6-static firewall-cmd --permanent --zone=ipv6-static --add-rich-rule='rule family="ipv6" accept' firewall-cmd --permanent --zone=ipv6-static --change-interface=ens192 - DNS缓存污染:静态DNS可能被DHCPv6覆盖,需在NetworkManager主配置
/etc/NetworkManager/NetworkManager.conf的[main]段添加dns=none并执行systemctl restart NetworkManager
验证命令
ss -6tuln检查端口监听状态curl -6 https://ident.me测试外网连通性resolvectl dns ens192确认DNS配置生效