如何在 Rocky Linux 9 中设置并启用网络接口的 IPv4/IPv6 双栈支持?

问题浏览数Icon
6
问题创建时间Icon
2025-04-30 08:01:00
回答 | 共 6 个
作者头像
ecnight01

在Rocky Linux 9中启用IPv4/IPv6双栈需通过NetworkManager配置。操作步骤:1. 检查接口名称(ip a),如ens192;2. 创建配置文件/etc/NetworkManager/system-connections/ens192.nmconnection,包含[ipv4] method=manual, addresses=192.168.1.10/24, gateway=192.168.1.1, dns=8.8.8.8;[ipv6] method=manual, addresses=2001:db8::10/64, gateway=2001:db8::1, dns=2001:4860:4860::8888;3. 执行nmcli con reload && nmcli con up ens192。需验证防火墙规则(firewall-cmd --list-all)和内核参数(sysctl net.ipv6.conf.all.disable_ipv6=0),确保IPv6未被禁用。

作者头像
snowwhisper01

在Rocky Linux 9中配置IPv4/IPv6双栈需通过NetworkManager实现。以下是实践步骤与经验总结:

  1. 确认网络接口:通过ip a获取接口名(如ens192)。
  2. 配置IPv4/IPv6地址

    nmcli con mod ens192 ipv4.addresses 192.168.1.10/24
    nmcli con mod ens192 ipv4.gateway 192.168.1.1
    nmcli con mod ens192 ipv4.dns "8.8.8.8"
    nmcli con mod ens192 ipv4.method manual
    
    nmcli con mod ens192 ipv6.addresses 2001:db8::10/64
    nmcli con mod ens192 ipv6.gateway 2001:db8::1
    nmcli con mod ens192 ipv6.dns "2001:4860:4860::8888"
    nmcli con mod ens192 ipv6.method manual
  3. 应用配置nmcli con down ens192 && nmcli con up ens192

挑战与解决方案

  • IPv6网关失效:需确认上游路由器支持NDP协议,或手动添加静态路由。
  • DNS解析失败:检查/etc/resolv.conf是否包含双栈DNS,必要时禁用IPv6隐私扩展(添加net.ipv6.conf.ens192.use_tempaddr=0/etc/sysctl.conf)。
  • 防火墙干扰:需同时放行IPv4/IPv6流量,例如使用firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 accept'及对应的IPv6规则。
  • DHCP冲突:若混合使用DHCP与静态IP,需明确指定ipv4.ignore-auto-dns=trueipv6.ignore-auto-dns=true

验证命令

  • ip -4 addr show ens192
  • ip -6 route show
  • curl -4 ifconfig.cocurl -6 ifconfig.co
作者头像
coco233

在Rocky Linux 9中设置双栈支持:1. 编辑接口配置文件(如/etc/NetworkManager/system-connections/ens192.nmconnection),在[ipv4]段设置method=manual、addresses=192.168.1.10/24,192.168.1.1,在[ipv6]段设置method=manual、addresses=2001:db8::10/64,2001:db8::1。2. 执行nmcli con reload && nmcli con up ens192激活配置。

延伸知识点——NetworkManager的keyfile格式:这是取代ifcfg的新配置格式,采用INI结构,支持IPv4/IPv6多地址、路由规则等高级特性。例如,[ipv6]段的address1字段格式为"IP/前缀 网关",dns字段支持多个用分号分隔的地址。若需临时地址,需添加ip6-privacy=2参数。修改后需通过nmcli con reload使配置生效,避免直接重启服务导致配置回滚。

作者头像
cocostar888
  1. 打开终端,编辑你的网卡配置文件(比如ens192):sudo vi /etc/sysconfig/network-scripts/ifcfg-ens192
  2. 在文件里补充这些参数(静态IP示例):
    BOOTPROTO=none
    IPADDR=你的IPv4地址
    PREFIX=24
    GATEWAY=IPv4网关
    IPV6INIT=yes
    IPV6ADDR=你的IPv6地址/64
    IPV6_DEFAULTGW=IPv6网关
    DNS1=8.8.8.8
    DNS2=2001:4860:4860::8888
  3. 如果是用DHCP,把BOOTPROTO改成dhcp,删掉IPADDR/PREFIX,加IPV6_AUTOCONF=yes
  4. 保存后重启网络:sudo systemctl restart NetworkManager
  5. 最后用ip a看地址,ping google.comping6 google.com测试
作者头像
xiaozhu77

为什么不尝试使用NetworkManager的nmcli工具进行更简化的网络配置管理?

作者头像
moxiao88

在Rocky Linux 9中启用IPv4/IPv6双栈需通过NetworkManager配置。建议步骤:1. 编辑目标接口的配置文件(如/etc/sysconfig/network-scripts/ifcfg-enp0s3),添加IPV6INIT=yes、IPV6_AUTOCONF=no(静态)或IPV6_AUTOCONF=yes(动态)。2. 静态配置需明确IPV6ADDR和IPV6_DEFAULTGW。3. IPv4/IPv6需同时定义(BOOTPROTO=static/dhcp)。4. 重启NetworkManager并验证ip addr输出。需注意防火墙规则需同时开放IPv4/IPv6流量,且DNS应配置双栈解析。建议通过nmcli工具固化配置,确保重启后生效。