-
一、openEuler 网卡基础查询指令(必掌握)**openEuler 基于 Linux 内核,继承了传统 Linux 网卡管理工具(如 ip、nmcli),同时兼容部分 ifconfig 指令(需安装 net-tools 工具包),以下是最常用的查询指令:1. 查看网卡列表与状态(核心指令) # 方法1:ip 指令(推荐,openEuler 默认自带) ip addr show # 缩写:ip a # 输出说明: # inet 192.168.1.100/24:IPv4 地址与子网掩码 # inet6 fe80::20c:29ff:fe12:3456/64:IPv6 地址 # link/ether 00:0c:29:12:34:56:MAC 地址 # UP BROADCAST RUNNING MULTICAST:网卡状态(UP 表示启用) # 方法2:nmcli 指令(NetworkManager 管理工具,默认启用) nmcli connection show # 查看所有网络连接(含网卡关联关系) nmcli device status # 查看网卡设备状态(DEVICE 列是网卡名,STATE 列是状态) # 方法3:ifconfig 指令(需安装 net-tools,兼容老习惯) yum install -y net-tools # 安装依赖 ifconfig # 查看所有激活网卡信息 ifconfig -a # 查看所有网卡(含未激活) 2. 查看网卡流量与统计信息 # 方法1:ip -s 指令(查看收发数据包统计) ip -s link show eth0 # eth0 为网卡名,替换为实际名称 # 输出说明: # RX: bytes packets errors dropped:接收字节、数据包、错误数、丢弃数 # TX: bytes packets errors dropped:发送字节、数据包、错误数、丢弃数 # 方法2:sar 指令(实时监控流量,需安装 sysstat) yum install -y sysstat sar -n DEV 1 5 # 每1秒采集1次,共5次(DEV 表示网卡设备) 3. 查看网卡硬件信息 # 查看网卡型号与驱动 lspci | grep -i ethernet # 输出网卡硬件型号(如 Intel I219-LM) ethtool eth0 | grep -i driver # 查看网卡驱动(如 e1000e) # 查看网卡速率与双工模式 ethtool eth0 # 输出速率(Speed)、双工(Duplex)、唤醒模式等 二、网卡配置修改指令(临时 / 永久生效)1. 临时配置(重启网卡 / 系统后失效,适合测试) # 1. 启用/禁用网卡 ip link set eth0 up # 启用 eth0 网卡 ip link set eth0 down # 禁用 eth0 网卡 nmcli device connect eth0 # 用 nmcli 启用网卡 nmcli device disconnect eth0 # 用 nmcli 禁用网卡 # 2. 临时设置 IPv4 地址 ip addr add 192.168.1.100/24 dev eth0 # 添加 IPv4 地址 ip addr del 192.168.1.100/24 dev eth0 # 删除 IPv4 地址 # 3. 临时设置网关 ip route add default via 192.168.1.1 dev eth0 # 设置默认网关 ip route del default via 192.168.1.1 # 删除默认网关 # 4. 临时设置 DNS(修改 /etc/resolv.conf,重启后失效) echo "nameserver 8.8.8.8" > /etc/resolv.conf # 设置谷歌 DNS echo "nameserver 114.114.114.114" >> /etc/resolv.conf # 添加国内 DNS 2. 永久配置(重启后生效,生产环境推荐)openEuler 推荐通过 nmcli 或修改网络配置文件实现永久配置,以下是两种主流方式:(1)通过 nmcli 指令配置(图形化工具兼容,推荐) # 1. 创建新的网络连接(绑定 eth0 网卡) nmcli connection add type ethernet con-name eth0-static ifname eth0 # con-name:连接名称(自定义,如 eth0-static) # ifname:绑定的网卡名(如 eth0) # 2. 配置静态 IPv4 地址、网关、DNS nmcli connection modify eth0-static \ ipv4.method manual \ # 手动配置 IPv4(auto 为 DHCP) ipv4.addresses 192.168.1.100/24 \ # IPv4 地址+子网掩码 ipv4.gateway 192.168.1.1 \ # 网关 ipv4.dns 8.8.8.8,114.114.114.114 # DNS(多个用逗号分隔) # 3. 激活配置并生效 nmcli connection up eth0-static # 激活连接 nmcli connection reload # 重新加载配置(若修改后未生效) (2)修改配置文件(传统方式,/etc/sysconfig/network-scripts/) # 1. 编辑网卡配置文件(文件名格式:ifcfg-网卡名) vi /etc/sysconfig/network-scripts/ifcfg-eth0 # 2. 配置静态 IP(关键参数) TYPE=Ethernet BOOTPROTO=static # 静态 IP(dhcp 为自动获取) NAME=eth0 # 网卡名称 DEVICE=eth0 # 设备名(需与网卡名一致) ONBOOT=yes # 开机自动激活 IPADDR=192.168.1.100 # IPv4 地址 NETMASK=255.255.255.0 # 子网掩码(或 PREFIX=24) GATEWAY=192.168.1.1 # 网关 DNS1=8.8.8.8 # 首选 DNS DNS2=114.114.114.114 # 备用 DNS # 3. 重启网卡生效 systemctl restart NetworkManager # 重启 NetworkManager 服务 # 或 重启单个网卡 nmcli connection down eth0 && nmcli connection up eth0 3. 配置网卡别名(多 IP 场景) # 方法1:临时添加别名(eth0:0 为别名,重启失效) ip addr add 192.168.1.101/24 dev eth0 label eth0:0 # 方法2:永久添加别名(修改配置文件) cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0 vi /etc/sysconfig/network-scripts/ifcfg-eth0:0 # 修改关键参数: NAME=eth0:0 DEVICE=eth0:0 IPADDR=192.168.1.101 # 新的 IP 地址 # 其他参数(如 NETMASK、GATEWAY)可复用或修改 # 激活别名 nmcli connection up eth0:0 三、网卡故障排查指令(高频问题解决)1. 网卡无法激活 / 启动失败 # 1. 查看网卡状态与错误日志 nmcli device status # 确认网卡 STATE 是否为 disconnected journalctl -u NetworkManager | grep -i eth0 # 查看 NetworkManager 日志,找错误原因(如配置文件语法错误) # 2. 检查网卡是否被禁用(硬件层面) rfkill list # 查看是否有无线网卡被软禁用(有线网卡一般不涉及) ethtool eth0 | grep -i link # 查看 Link detected: yes/no(no 表示硬件故障或未插网线) # 3. 重置网卡配置(解决配置冲突) nmcli connection delete eth0-static # 删除原有连接 nmcli connection add type ethernet con-name eth0-static ifname eth0 # 重新创建 2. 网卡无法获取 IP 地址(DHCP 场景) # 1. 手动触发 DHCP 获取 dhclient eth0 # 向 DHCP 服务器请求 IP ip addr show eth0 # 查看是否获取到 IP # 2. 查看 DHCP 日志(排查服务器问题) journalctl -u dhclient | grep -i eth0 # 3. 检查网关与 DNS 连通性 ping 192.168.1.1 # ping 网关(测试链路) ping 8.8.8.8 # ping DNS(测试外网连通性) 3. 网卡速率异常 / 丢包 # 1. 查看丢包与错误统计 ip -s link show eth0 # 重点关注 errors、dropped 数值是否持续增长 # 2. 重新协商网卡速率(强制千兆全双工) ethtool -s eth0 speed 1000 duplex full autoneg off # speed:速率(10/100/1000),duplex:双工(half/full),autoneg:自动协商(on/off) # 3. 检查网线与交换机端口(硬件层面) # 更换网线(推荐 Cat5e 及以上),确认交换机端口速率配置与网卡一致 四、网卡高级配置指令(优化与特殊场景)1. 网卡绑定(Bonding,高可用 / 负载均衡) # 1. 安装 bonding 模块(openEuler 默认内置) modprobe bonding # 加载模块 lsmod | grep bonding # 验证模块加载 # 2. 创建 Bond 接口(通过 nmcli) nmcli connection add type bond con-name bond0 ifname bond0 mode 1 # mode 1:主备模式(active-backup),mode 0:负载均衡(round-robin) # 3. 添加从网卡到 Bond 接口 nmcli connection add type ethernet con-name bond0-slave1 ifname eth0 master bond0 nmcli connection add type ethernet con-name bond0-slave2 ifname eth1 master bond0 # 4. 配置 Bond 接口 IP 并激活 nmcli connection modify bond0 ipv4.method manual ipv4.addresses 192.168.1.200/24 ipv4.gateway 192.168.1.1 nmcli connection up bond0 nmcli connection up bond0-slave1 nmcli connection up bond0-slave2 # 5. 验证 Bond 状态 cat /proc/net/bonding/bond0 # 查看主备状态、从网卡信息 2. 网卡流量限速(tc 指令) # 限制 eth0 网卡出站速率为 100Mbit/s tc qdisc add dev eth0 root tbf rate 100mbit burst 100k latency 50ms # rate:限制速率(10mbit/100mbit/1gbit),burst:突发流量,latency:延迟阈值 # 查看限速配置 tc qdisc show dev eth0 # 删除限速配置 tc qdisc del dev eth0 root 3. 关闭网卡节能模式(避免速率波动) # 临时关闭(重启失效) ethtool -C eth0 rx-usecs 0 tx-usecs 0 # 关闭接收/发送节能延迟 ethtool --set-eee eth0 eee off # 关闭 EEE 节能(部分网卡支持) # 永久关闭(添加到开机脚本) echo 'ethtool -C eth0 rx-usecs 0 tx-usecs 0' >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local # 赋予执行权限 五、核心指令速查表(快速参考)操作场景推荐指令查看网卡列表ip a / nmcli device status启用 / 禁用网卡ip link set eth0 up/down临时设置静态 IPip addr add 192.168.1.100/24 dev eth0永久设置静态 IPnmcli connection modify 或修改 ifcfg 文件查看网卡流量统计ip -s link show eth0 / sar -n DEV 1 5排查网卡启动失败`journalctl -u NetworkManager创建 Bond 绑定nmcli connection add type bond查看网卡驱动与速率ethtool eth0六、总结openEuler 网卡管理以 ip 和 nmcli 为核心指令,覆盖查询、配置、故障排查全场景,相比传统 ifconfig 更强大、更兼容现代 Linux 系统。日常运维中,建议优先使用 nmcli 进行永久配置(避免配置文件冲突),用 ip 指令进行临时测试与查询,结合 ethtool、journalctl 等工具快速定位故障。掌握本文核心指令,可高效处理网卡配置、速率优化、高可用绑定等常见需求,保障 openEuler 系统网络稳定运行。
-
系统版本为openEuler 22.03 python为3.10 cann为8.0.rc3 npu-smi为24.1.rc3 torch为2.1.0 torch 2.1.0.post8 执行x = torch.randn(2,2).npu() 长时间不返回 如何排查错误?执行python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())"返回为True
-
请问Euler(不是openeuler)是可以免费使用的吗?是否可以提供下载地址打华为售前电话,告诉我是免费的,但要去社区问
-
请问Euler(不是openeuler)是可以免费使用的吗?是否可以提供下载地址打华为售前电话,告诉我是免费的,但要去社区问
-
我们单位有国产服务器操作系统替代的需求,欧拉OS在AK目录中,想用欧拉OS做国产化替代。但由于我们单位内外网隔离,无法访问互联网。之前会把服务器操作系统的软件源通过rsync的方式同步到服务器上,再迁到内网使用。想请教一下,欧拉OS的软件源可否提供rsync的同步方式。
-
你是否渴望投身技术领域,成为掌握核心科技的弄潮儿,却因毫无基础,在门外徘徊许久?云学堂 “根技术学习之星” 活动正是你破局的关键,一场涵盖五大热门课程(鸿蒙应用、昇腾AI、鲲鹏计算、EulerOS 、GaussDB)的学习盛宴,带你稳步跨越零基础门槛,一路进阶,拥抱技术新未来!扫描上方海报二维码报名,别错过这场改变技术人生的机遇,云学堂陪你从 0 到 1 成长为技术之星!活动报名链接:点击立即报名
-
华为EulerOS系统会集成探针软件吗
-
EulerOS 的iso镜像在哪里下载,华为镜像站只有软件包的提供,没有iso镜像的下载
-
触发条件:该问题为操作系统xfs内部实现bug,存在于EulerOS 2.9之前的所有历史版本。故障现象:数据库实例进程状态变为D状态,进程hang,集群状态无法降级。业务阻塞,数据库实例进程无法kill,需要重启OS恢复。判断方法:步骤1:使用管理员用户登录数据库。步骤2:对数据库环境进行检查。如果OS为EulerOS 2.9之前的所有历史版本,则继续执行下面的步骤,进行D进程确认;否则跳过。步骤3:执行如下命令获取进程状态ps -elf | grep gaussdb步骤4:如果gaussdb进程处于D状态(僵死状态)时,则通过如下方法检查是触发了xfs的D进程bug。通过步骤3获取到gaussdb进程的pid。查看进程栈信息。如果栈信息是如下内容,则表示当前进程是僵死在write_cache_pages函数中。【措施和方案】給当前的数据库环境打xfs热补丁。具体实现参见 https://bbs.huaweicloud.com/forum/thread-0207147167992868006-1-1.html
-
【措施和方案】请联系DWS运维人员,提变更保障整改。在support中下载xfs热补丁包规避措施步骤:使用root用户登录需要部署补丁的机器,进入/root目录将附件中的xfs_files.tar.gz包拷贝至补丁机器的/root目录,并解压缩;创建临时文件/root/fix_patch_by_self.sh为解压缩后的文件fix_patch_by_self.sh赋权: chmod +x /root/fix_patch_by_self.sh执行热补丁部署sh fix_patch_by_self.sh -i回滚热补丁(选做)sh fix_patch_by_self.sh -u
-
1. 问题现象:进程偶发性D住并且无法恢复,其堆栈信息如下:2 原因说明: Xfs在执行do_writepages时产生死锁。xfs write死锁,IO现场Hang。 3 问题处理 补丁修改内容参考:参加附件xfs_patch.txt4 OS分析参考 https://lore.kernel.org/all/20181218043626.GA31274@dastard/T/
-
<获奖名单>账号名 奖项名称 奖品名称hwid_1xug2kr1vyhr-na 视频号抽奖 开发者定制鼠标垫hid_obd8qsgbfj04f67 视频号抽奖 开发者定制鼠标垫lyp197907098 视频号抽奖 开发者定制鼠标垫hw004798249 视频号抽奖 开发者定制鼠标垫hw81541353 优质提问、报名转发 HDC开发者定制长袖圆领卫衣、开发者定制鼠标垫hw_008618750930307_01 优质提问 HDC开发者定制长袖圆领卫衣 xj120141121 老观众专属 DTT定制T恤hid_d282epiu3z7dfbe 分享问卷 HDC开发者定制短袖T恤lokenetwork 分享问卷 HDC开发者定制短袖T恤A18D07BA7E8E481DB625DD9346352097 官网抽奖 开发者定制棒球帽/ 官网抽奖 开发者定制棒球帽/ 官网抽奖 开发者定制双肩包
-
想适配EulerOS V2.0SP10(x86_64)的系统,找遍了好像都没有下载的地方
-
问题在 EulerOS2.8 aarch64 上运行 eBPF 程序时报错:invalid size of register fill经过尝试,解决了该问题,但问题出现的原因不明,期望能获得帮助和相关信息:关于修改后的 bpf 字节码解决该问题和内核中的 bpf 验证器会报出该错误的原因或提供对应内核的的 kernel/bpf/verifier.c 的获取方式报错信息及可能的上下文:12: r1 = 0x10000000000 14: *(u64 *)(r10 -64) = r1 // ... 57: r2 = *(u32 *)(r10 -60) ERROR: invalid size of register fill.内核信息Linux ecs-4bd9 4.19.36-vhulk1907.1.0.h1229.eulerosv2r8.aarch64 #1 SMP Thu May 19 17:47:35 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux解决方法(尝试)使用 llvm v10.0.0 编译项目修改前,验证器报错: invalid size of register fill;可能的上下文,字节码12: r1 = 0x10000000000 14: *(u64 *)(r10 -64) = r1 // ... 57: r2 = *(u32 *)(r10 -60) ERROR: invalid size of register fill.修改后通过 bpf 验证器;字节码:12: r9 = 0 14: *(u64 *)(r10 - 64) = r9 15: r6 = 1 16: *(u8 *)(r10 - 59) = r6 ... 58: r2 = *(u32 *)(r10 - 60).报错时的具体的 bpf 程序的字节码:Disassembly of section kprobe/ip6_make_skb: 0000000000000000 <kprobe__ip6_make_skb>: ; { 0: bf 17 00 00 00 00 00 00 r7 = r1 1: 85 00 00 00 05 00 00 00 call 5 2: 7b 0a 90 ff 00 00 00 00 *(u64 *)(r10 - 112) = r0 3: 79 78 70 00 00 00 00 00 r8 = *(u64 *)(r7 + 112) 4: 79 79 58 00 00 00 00 00 r9 = *(u64 *)(r7 + 88) 5: 07 09 00 00 f8 ff ff ff r9 += -8 6: 85 00 00 00 0e 00 00 00 call 14 ; LOAD_OFFSET("kernel_version", var); 7: 18 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 r1 = 0 ll 0000000000000038: R_BPF_64_64 kernel_version 9: 18 02 00 00 00 00 00 00 00 00 00 00 07 00 04 00 r2 = 1125929971613696 ll ; if (pre_4_7_0 == 0) 11: 2d 12 47 00 00 00 00 00 if r2 > r1 goto +71 <LBB12_19> 12: 18 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 r1 = 1099511627776 ll ; __builtin_memset(&conn, 0, sizeof(conn)); 14: 7b 1a c0 ff 00 00 00 00 *(u64 *)(r10 - 64) = r1 15: b7 06 00 00 00 00 00 00 r6 = 0 16: 7b 6a b8 ff 00 00 00 00 *(u64 *)(r10 - 72) = r6 ; conn_info->pid = pid_tgid >> 32; 17: 77 00 00 00 20 00 00 00 r0 >>= 32 18: 63 0a bc ff 00 00 00 00 *(u32 *)(r10 - 68) = r0 ; __builtin_memset(&conn, 0, sizeof(conn)); 19: 7b 6a b0 ff 00 00 00 00 *(u64 *)(r10 - 80) = r6 20: 7b 6a a8 ff 00 00 00 00 *(u64 *)(r10 - 88) = r6 21: 7b 6a a0 ff 00 00 00 00 *(u64 *)(r10 - 96) = r6 22: 7b 6a 98 ff 00 00 00 00 *(u64 *)(r10 - 104) = r6 ; __u32 inum = 0; 23: 63 6a c8 ff 00 00 00 00 *(u32 *)(r10 - 56) = r6 ; struct net *netptr = NULL; 24: 7b 6a d0 ff 00 00 00 00 *(u64 *)(r10 - 48) = r6 ; LOAD_OFFSET("offset_sk_net", var); 25: 18 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 r1 = 0 ll 00000000000000c8: R_BPF_64_64 offset_sk_net ; bpf_probe_read(&netptr, sizeof(netptr), (__u8 *)sk + offset_sk_net); 27: bf 83 00 00 00 00 00 00 r3 = r8 28: 0f 13 00 00 00 00 00 00 r3 += r1 29: bf a1 00 00 00 00 00 00 r1 = r10 30: 07 01 00 00 d0 ff ff ff r1 += -48 ; bpf_probe_read(&netptr, sizeof(netptr), (__u8 *)sk + offset_sk_net); 31: b7 02 00 00 08 00 00 00 r2 = 8 32: 85 00 00 00 04 00 00 00 call 4 ; LOAD_OFFSET("offset_ns_common_inum", var); 33: 18 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 r1 = 0 ll 0000000000000108: R_BPF_64_64 offset_ns_common_inum ; bpf_probe_read(&inum, sizeof(inum), (__u8 *)netptr + offset_ns_common_inum); 35: 79 a3 d0 ff 00 00 00 00 r3 = *(u64 *)(r10 - 48) 36: 0f 13 00 00 00 00 00 00 r3 += r1 37: bf a1 00 00 00 00 00 00 r1 = r10 38: 07 01 00 00 c8 ff ff ff r1 += -56 ; bpf_probe_read(&inum, sizeof(inum), (__u8 *)netptr + offset_ns_common_inum); 39: b7 02 00 00 04 00 00 00 r2 = 4 40: 85 00 00 00 04 00 00 00 call 4 ; return inum; 41: 61 a1 c8 ff 00 00 00 00 r1 = *(u32 *)(r10 - 56) ; conn_info->netns = read_netns(sk); 42: 63 1a c0 ff 00 00 00 00 *(u32 *)(r10 - 64) = r1 ; unsigned short family = AF_UNSPEC; 43: 6b 6a c8 ff 00 00 00 00 *(u16 *)(r10 - 56) = r6 ; LOAD_OFFSET("offset_sk_family", var); 44: 18 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 r1 = 0 ll 0000000000000160: R_BPF_64_64 offset_sk_family ; bpf_probe_read(&family, sizeof(family), (__u8 *)sk + offset_sk_family); 46: bf 83 00 00 00 00 00 00 r3 = r8 47: 0f 13 00 00 00 00 00 00 r3 += r1 48: bf a1 00 00 00 00 00 00 r1 = r10 49: 07 01 00 00 c8 ff ff ff r1 += -56 ; bpf_probe_read(&family, sizeof(family), (__u8 *)sk + offset_sk_family); 50: b7 02 00 00 02 00 00 00 r2 = 2 51: 85 00 00 00 04 00 00 00 call 4 ; if (family == AF_INET) 52: 69 a1 c8 ff 00 00 00 00 r1 = *(u16 *)(r10 - 56) 53: 15 01 64 00 0a 00 00 00 if r1 == 10 goto +100 <LBB12_4> 54: 55 01 ad 00 02 00 00 00 if r1 != 2 goto +173 <LBB12_8> 55: 18 01 00 00 00 ff ff ff 00 00 00 00 00 00 00 00 r1 = 4294967040 ll ; conn_info->meta = (conn_info->meta & ~CONN_L3_MASK) | CONN_L3_IPv4; 57: 61 a2 c4 ff 00 00 00 00 r2 = *(u32 *)(r10 - 60) 58: 5f 12 00 00 00 00 00 00 r2 &= r1 59: 63 2a c4 ff 00 00 00 00 *(u32 *)(r10 - 60) = r2
-
为啥刚开始考试,自动检测异常自动提交????
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签