麒麟os启用ipv6需依次检查并配置networkmanager图形界面、nmcli命令行、netplan文件、内核ipv6协议栈,最后通过ip、ping6、dig等命令多层级验证。

如果您在麒麟OS中需要启用或配置IPv6网络,但系统未自动获取IPv6地址或无法通过IPv6访问外部资源,则可能是由于IPv6协议未启用、内核参数限制、网络管理器未加载IPv6支持,或Netplan/NetworkManager配置中禁用了IPv6。以下是多种可行的配置方法:
一、通过NetworkManager图形界面启用IPv6
该方法适用于桌面版麒麟OS,利用UKUI控制中心完成可视化配置,无需命令行操作,适合大多数用户快速启用IPv6基础功能。
1、单击任务栏右下角【网络连接】图标,打开网络面板。
2、点击左下角【网络设置】按钮,进入“网络连接”管理界面。
3、在左侧列表中选中当前使用的有线或无线连接,点击右侧齿轮图标进入编辑页。
4、切换至【IPv6设置】选项卡,将【方法】下拉菜单由【忽略】更改为自动(DHCPv6 或 SLAAC)。
5、如需手动指定IPv6地址,选择【手动】,在【地址】栏输入完整IPv6地址及前缀长度(例如:2001:db8::1/64),并在【网关】栏填写IPv6默认网关(如:2001:db8::1)。
6、勾选【自动连接】和要求IPv6地址才能完成连接(可选,用于强制IPv6协商)。
7、点击【保存】,断开后重新连接该网络以使配置生效。
二、使用nmcli命令行配置IPv6连接
该方法适用于无图形界面环境、远程SSH会话或需脚本化部署IPv6策略的场景,直接调用NetworkManager CLI接口修改连接定义。
1、执行nmcli connection show列出所有网络连接名称,记下目标连接名(如“Wired connection 1”)。
2、执行以下命令启用IPv6自动配置:
nmcli connection modify "Wired connection 1" ipv6.method auto
3、若需静态IPv6地址,执行:
nmcli connection modify "Wired connection 1" ipv6.method manual ipv6.addresses "2001:db8::100/64" ipv6.gateway "2001:db8::1" ipv6.dns "2001:4860:4860::8888"
4、禁用IPv6隐私扩展(如需稳定接口标识):
nmcli connection modify "Wired connection 1" ipv6.ip6-privacy 0
5、重启连接使配置生效:
nmcli connection down "Wired connection 1" && nmcli connection up "Wired connection 1"
三、通过Netplan配置文件启用IPv6持久化设置
该方法适用于采用Netplan作为后端渲染器的麒麟OS版本(如部分V10 SPx桌面/服务器版),配置写入YAML文件后全局生效且重启不丢失。
1、执行ls /etc/netplan/确认存在.yaml格式配置文件(如01-network-manager-all.yaml)。
2、使用sudo权限编辑该文件:
sudo nano /etc/netplan/01-network-manager-all.yaml
3、在对应网卡(如enp0s3)配置块中添加或修改IPv6字段,示例配置如下:
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s3:
dhcp4: true
dhcp6: true
addresses: [2001:db8::200/64]
gateway6: 2001:db8::1
nameservers:
addresses: [2001:4860:4860::8888, 2001:4860:4860::8844]
4、保存退出后执行:
sudo netplan apply
四、检查并启用内核IPv6协议栈
若上述配置均未触发IPv6地址分配,需确认Linux内核层面是否禁用了IPv6;某些安全加固策略可能通过sysctl关闭IPv6,导致上层工具无法工作。
1、检查IPv6是否被禁用:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
2、若输出为1,表示已禁用,临时启用执行:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
3、永久生效需编辑/etc/sysctl.conf,添加或取消注释以下行:
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
4、执行sudo sysctl -p重载配置。
五、验证IPv6配置是否成功
无论采用哪种方式配置,必须通过多层级命令交叉验证实际运行状态,避免仅依赖图形界面显示判断。
1、检查接口是否已分配IPv6地址:
ip -6 addr show | grep -E 'inet6.*global'
2、确认默认IPv6路由是否存在:
ip -6 route | grep default
3、测试本地链路连通性:
ping6 -c 3 fe80::1%lo
4、测试外部IPv6连通性:
ping6 -c 3 2001:4860:4860::8888
5、检查DNS解析是否支持IPv6:
dig AAAA www.google.com @2001:4860:4860::8888










