OpenEuler系统网卡地址定制

OpenEuler系统网卡地址定制

核心说明

网卡地址定制核心是配置 IP地址(静态/动态)、子网掩码、网关、DNS

一、前期准备:确认系统环境与网卡信息

1. 确认OpenEuler系统版本(可选,了解系统环境)

执行命令:

bash 复制代码
cat /etc/openEuler-release

预期结果:显示系统版本,例如:

复制代码
openEuler release 22.03 LTS (LTS-SP3)

2. 确认NetworkManager服务状态(必须,网卡配置依赖此服务)

OpenEuler默认预装NetworkManager,先确认其是否正常运行:

bash 复制代码
systemctl status NetworkManager

预期结果 :显示 active (running)(绿色),表示服务正常;

若显示 inactive (dead)(灰色),需先启动服务并设置开机自启:

bash 复制代码
sudo systemctl start NetworkManager  # 启动服务
sudo systemctl enable NetworkManager  # 开机自启

再次执行 systemctl status NetworkManager 验证,确保状态为 running

3. 查看所有网卡信息(核心!确定要配置的网卡名)

方法1:用 ip a 命令(推荐,显示最全面)

执行命令:

bash 复制代码
ip a

预期结果示例(重点看这3部分):

复制代码
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:xx:xx:xx brd ff:ff:ff:ff:ff:ff  # 网卡物理地址(MAC)
    inet 192.168.1.5/24 brd 192.168.1.255 scope global dynamic noprefixroute ens33  # 当前IP(dynamic表示DHCP获取)
       valid_lft 86398sec preferred_lft 86398sec
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

关键解读

  • 排除 lo(本地回环网卡,无需配置)和 virbr0(虚拟网卡,默认不使用);
  • 重点关注状态为 UP 的网卡(如 ens33),这是物理网卡,后续配置均针对此网卡(记好你的网卡名,可能是 ens33eth0enp0s3 等)。
方法2:用 nmcli device 命令(确认网卡是否被NetworkManager管理)

执行命令:

bash 复制代码
nmcli device

预期结果示例

复制代码
DEVICE  TYPE      STATE                   CONNECTION
ens33   ethernet  connected               ens33  # 已连接,被管理
lo      loopback  unmanaged               --
virbr0  bridge    disconnected            --
  • 确保目标网卡(如 ens33)的 STATEconnecteddisconnectedTYPEethernet

4. 查看当前网卡的IP/网关/DNS配置(备份参考)

(1)查看当前IP和子网掩码
bash 复制代码
ip addr show ens33  # 替换为你的网卡名

预期结果 :显示该网卡的IP(如 192.168.1.5/24/24 对应子网掩码 255.255.255.0)。

(2)查看当前网关
bash 复制代码
ip route show  # 或简写 ip r

预期结果示例

复制代码
default via 192.168.1.1 dev ens33 proto dhcp src 192.168.1.5 metric 100  # default via 后的是网关(192.168.1.1)
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.5 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
(3)查看当前DNS
bash 复制代码
cat /etc/resolv.conf

预期结果示例

复制代码
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114

二、方案一:用nmcli命令配置(推荐,即时生效+永久保存)

nmcli 是NetworkManager的命令行工具,配置后自动保存到系统,重启不丢失,无需手动编辑文件。

前提:确认网卡的「连接名」(可能与网卡名一致,也可能不同)

执行命令查看连接名:

bash 复制代码
nmcli connection show  # 简写 nmcli c s

预期结果示例

复制代码
NAME    UUID                                  TYPE      DEVICE
ens33   xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  ethernet  ens33  # 连接名是 ens33(与网卡名一致)
virbr0  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  bridge    virbr0
  • 记好「连接名」(如 ens33),后续命令用连接名操作。

场景1:配置静态IP(常用,固定IP地址)

假设需求:

  • 网卡名/连接名:ens33
  • 静态IP:192.168.1.100
  • 子网掩码:255.255.255.0(对应 /24
  • 网关:192.168.1.1(需与你的路由器/网关一致,参考前期查看的网关)
  • DNS:8.8.8.8(谷歌DNS)、114.114.114.114(国内常用DNS)
  • 开机自动连接:启用
步骤1:执行配置命令
bash 复制代码
# 1. 设置IP地址和子网掩码
sudo nmcli connection modify ens33 ipv4.addresses "192.168.1.100/24"

# 2. 设置网关
sudo nmcli connection modify ens33 ipv4.gateway "192.168.1.1"

# 3. 设置DNS(多个DNS用空格分隔)
sudo nmcli connection modify ens33 ipv4.dns "8.8.8.8 114.114.114.114"

# 4. 设定IP获取方式为静态(manual)
sudo nmcli connection modify ens33 ipv4.method manual

# 5. 启用开机自动连接
sudo nmcli connection modify ens33 connection.autoconnect yes
步骤2:重启网卡使配置生效
bash 复制代码
# 先断开连接,再重新激活(必须执行,否则不生效)
sudo nmcli connection down ens33 && sudo nmcli connection up ens33

预期结果

复制代码
Connection 'ens33' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

场景2:配置动态IP(DHCP,自动获取IP)

若无需固定IP,让路由器自动分配,执行以下命令:

bash 复制代码
# 1. 设置IP获取方式为自动(auto,即DHCP)
sudo nmcli connection modify ens33 ipv4.method auto

# 2. 启用开机自动连接
sudo nmcli connection modify ens33 connection.autoconnect yes

# 3. 重启网卡生效
sudo nmcli connection down ens33 && sudo nmcli connection up ens33

步骤3:查看配置是否生效(验证)

(1)查看IP是否更新
bash 复制代码
ip addr show ens33  # 替换为你的网卡名

预期结果 :静态IP显示 192.168.1.100/24,动态IP显示新的自动分配地址。

(2)查看网关是否正确
bash 复制代码
ip route show

预期结果default via 192.168.1.1 dev ens33(静态IP场景)。

(3)查看DNS是否正确
bash 复制代码
cat /etc/resolv.conf

预期结果 :包含设置的DNS(8.8.8.8114.114.114.114)。

三、方案二:编辑配置文件(永久生效,适合批量/手动配置)

通过修改网卡的配置文件实现定制,配置永久保存,即使重装NetworkManager也不丢失,步骤如下:

步骤1:进入网卡配置文件目录

OpenEuler的网卡配置文件默认存放在 /etc/sysconfig/network-scripts/,先进入该目录并查看文件:

bash 复制代码
cd /etc/sysconfig/network-scripts/
ls -l  # 查看目录下的配置文件

预期结果 :显示以 ifcfg- 开头的文件,如 ifcfg-ens33(对应网卡 ens33)。

步骤2:备份原有配置文件(重要!避免配置错误无法恢复)

执行备份命令(替换 ens33 为你的网卡名):

bash 复制代码
sudo cp ifcfg-ens33 ifcfg-ens33.bak  # 备份为 ifcfg-ens33.bak

验证备份是否成功:

bash 复制代码
ls -l ifcfg-ens33*

预期结果 :同时显示 ifcfg-ens33ifcfg-ens33.bak

场景1:配置静态IP(编辑文件)

vim 编辑配置文件(若未安装vim,先执行 sudo dnf install vim -y):

bash 复制代码
sudo vim ifcfg-ens33  # 替换为你的网卡配置文件名
步骤3:修改文件内容(按需求调整以下参数)

删除原有冲突参数,添加/修改为以下内容(注释 # 后为说明,可不用写):

bash 复制代码
# 网卡类型(以太网,固定值)
TYPE=Ethernet
# 代理方式(默认none)
PROXY_METHOD=none
# 仅浏览器模式(默认no)
BROWSER_ONLY=no
# IP获取方式(静态填static,动态填dhcp)
BOOTPROTO=static
# 是否设为默认路由(yes)
DEFROUTE=yes
# 开机自动激活网卡(必须yes,否则开机不生效)
ONBOOT=yes
# 连接名(需与网卡名一致,如ens33)
NAME=ens33
# 网卡设备名(需与网卡名一致,如ens33)
DEVICE=ens33
# 静态IP地址(核心,定制的IP)
IPADDR=192.168.1.100
# 子网掩码(与/24对应,固定255.255.255.0)
NETMASK=255.255.255.0
# 网关地址(与路由器/网关一致)
GATEWAY=192.168.1.1
# 首选DNS(谷歌DNS)
DNS1=8.8.8.8
# 备选DNS(国内常用)
DNS2=114.114.114.114
# 禁用IPv6(可选,若无需IPv6)
IPV6INIT=no
# 不自动获取IPv6地址(可选)
IPV6_AUTOCONF=no
步骤4:保存文件并退出vim
  • Esc 键,输入 :wq(冒号+wq),回车保存退出;
  • 若误操作需放弃修改,输入 :q! 回车强制退出。

场景2:配置动态IP(编辑文件)

编辑 ifcfg-ens33 文件,修改以下核心参数:

bash 复制代码
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp  # 动态IP填dhcp
DEFROUTE=yes
ONBOOT=yes
NAME=ens33
DEVICE=ens33
IPV6INIT=no
IPV6_AUTOCONF=no

保存退出(Esc:wq)。

步骤5:重启NetworkManager服务生效

bash 复制代码
sudo systemctl restart NetworkManager

验证服务是否重启成功

bash 复制代码
systemctl status NetworkManager

预期结果:状态为 active (running)

步骤6:验证配置是否生效(同方案一的验证命令)

  1. 查看IP:ip addr show ens33
  2. 查看网关:ip route show
  3. 查看DNS:cat /etc/resolv.conf
  4. 测试网络连通性:ping www.baidu.com(能ping通表示配置正常)

四、方案三:ip命令临时配置(仅测试用,重启失效)

若仅需临时测试IP(系统重启/网卡重启后配置丢失),用 ip 命令快速配置:

场景1:临时配置静态IP

bash 复制代码
# 1. 为网卡添加临时静态IP(子网掩码用/24表示)
sudo ip addr add 192.168.1.100/24 dev ens33  # 替换为你的网卡名

# 2. 配置临时网关(可选,需联网时配置)
sudo ip route add default via 192.168.1.1 dev ens33

# 3. 临时配置DNS(重启后/etc/resolv.conf会恢复)
sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf
sudo echo "nameserver 114.114.114.114" >> /etc/resolv.conf

场景2:取消临时配置(可选)

bash 复制代码
# 1. 删除临时IP
sudo ip addr del 192.168.1.100/24 dev ens33

# 2. 删除临时网关
sudo ip route del default via 192.168.1.1 dev ens33

# 3. 恢复DNS(清空resolv.conf,重启NetworkManager自动生成)
sudo echo "" > /etc/resolv.conf
sudo systemctl restart NetworkManager

验证临时配置

bash 复制代码
ip addr show ens33  # 查看临时IP
ping www.baidu.com  # 测试连通性

五、完整验证流程(确保配置100%生效)

无论用哪种方案,配置后都需执行以下验证:

1. 基础验证:IP/网关/DNS是否正确

bash 复制代码
# 1. 查看IP和子网掩码
ip a show ens33

# 2. 查看网关
ip r

# 3. 查看DNS
cat /etc/resolv.conf

2. 网络连通性验证

bash 复制代码
# (1)ping网关(测试内网连通性)
ping 192.168.1.1 -c 4  # -c 4 表示ping4次后停止
# 预期结果:显示4次成功响应(0% packet loss)

# (2)ping公网IP(测试外网连通性)
ping 223.5.5.5 -c 4  # 223.5.5.5是阿里DNS的IP
# 预期结果:0% packet loss

# (3)ping域名(测试DNS解析是否正常)
ping www.baidu.com -c 4
# 预期结果:能解析出百度的IP并ping通

3. 开机自启验证(可选,确保重启后生效)

bash 复制代码
# 重启系统(谨慎!需保存当前工作)
sudo reboot

# 重启后执行以下命令验证
ip a show ens33  # IP是否正确
systemctl status NetworkManager  # 服务是否正常运行
ping www.baidu.com  # 网络是否连通

六、常见问题排查(配置失败时用)

1. 重启网卡后IP未更新

  • 原因:可能存在旧连接冲突,执行以下命令删除旧连接并重新配置:

    bash 复制代码
    sudo nmcli connection delete ens33  # 删除旧连接(替换为你的连接名)
    sudo nmcli connection add type ethernet con-name ens33 ifname ens33  # 重建连接
    # 重新执行方案一的静态/动态IP配置命令

2. ping不通网关/外网

  • 检查网关是否正确(对比路由器的网关地址);
  • 检查子网掩码是否与网关一致(如网关是 192.168.1.1,子网掩码必须是 255.255.255.0);
  • 关闭防火墙测试(OpenEuler默认防火墙可能拦截ping,临时关闭:sudo systemctl stop firewalld)。

3. DNS解析失败(ping IP能通,ping域名不通)

  • 检查 /etc/resolv.conf 是否包含正确的DNS;
  • 若DNS被覆盖,重新执行配置DNS的命令(方案一)或修改配置文件(方案二),重启NetworkManager。

4. 配置文件修改后不生效

  • 检查配置文件中的 ONBOOT=yes 是否设置;
  • 检查 NAMEDEVICE 是否与网卡名一致;
  • 执行 sudo nmcli connection reload 重新加载配置文件,再重启网卡。
相关推荐
骑上单车去旅行4 小时前
MD5校验对比脚本
linux·服务器·windows
期待着20134 小时前
docker 安装 ,在centos7.9
运维·docker·容器
踏月的造梦星球4 小时前
DM8 DSC 单机双实例部署
运维·开发语言·数据库
MXsoft6185 小时前
平台化是智能运维发展的必然趋势吗?
运维
ShirleyWang0125 小时前
让headlamp控制台能访问
linux·服务器·python·k8s·k3s
猿的天空5 小时前
机器人双手迎来全栈训练系统:灵初智能EgoSteer让灵巧手无所不能
网络·人工智能·计算机·ai·程序员·机器人·编程
Xzaveir_7776 小时前
OPPO、vivo、荣耀号码认证:多终端拨测矩阵与异常复现
大数据·网络·科技·矩阵·产品经理·ai-native
liuccn6 小时前
Linux 存储系统:LVM 与直接分区
linux·运维
捷配链6 小时前
六层服务器板行业材料与工艺标准化选型指南
服务器·制造·pcb
wuqingshun3141596 小时前
从网络角度来看,用户从输入网址到网页显示,期间发生了什么?
网络