一、CentOS Stream 10网卡配置

centos7及其之前版本,网络配置文件存放在:/etc/sysconfig/network-scripts/

centos8之后,使用NetworkManager作为网络工具,配置文件为:/etc/NetworkManager/system-connections/网卡名称.nmconnection。

例如:

[root@localhost ~]# cat /etc/NetworkManager/system-connections/ens160.nmconnection 
[connection]
id=ens160          #网卡id
uuid=8d696df9-a929-3000-8748-d248f8242793
type=ethernet      #设备类型:ethernet(以太网)、wifi、bridge(网桥)
autoconnect-priority=-999  #设置自动连接的优先级,值越大优先级越。默认设置为-999是一个极低的负值,表示NetworkManager禁用该连接的开机自启功能。即使 autoconnect=true,若优先级为负,连接也不会自动激活 。
interface-name=ens160  #网卡名称
timestamp=1786433719
autoconnect=true    #开机自启动,由于上面的autoconnect-priority设为负数,所以不会生效。如要开启启动,autoconnect-priority设为正数,如0或100

[ethernet]
[ipv4]
method=auto  #地址分配模式,auto为自动配置ip,manual为手动配置

[ipv6]
addr-gen-mode=eui64 #控制IPv6地址生成算法的核心参数,有4种:0(stable_privacy)、1(eui64)、2(none)、3(random)
method=auto
[proxy]

Linux 内核定义了四种主要的地址生成模式:

0 (stable_privacy):默认模式。基于RFC7217生成稳定的隐私地址。它结合接口标识和加密哈希(通常使用 secret)生成地址,既保证了地址在重启后不变(稳定性),又避免了直接暴露MAC地址(隐私性)。
1 (eui64):传统模式。直接使用EUI-64格式,将MAC地址插入ff:fe并翻转第七位生成IPv6后缀。地址永久固定,但会暴露物理硬件地址,隐私性较差。
2 (none):禁用自动生成。系统不会为接口生成SLAA或链路本地地址,仅保留手动配置的地址。常用于完全静态配置的场景。
3 (random):随机模式。每次生成或超时后重新计算地址,最大化隐私保护,但地址频繁变化,不适合需要固定地址的服务场景。

如要手动配置IPv4,则修改[ipv4]段即可,比如:

[ipv4]
method=manual                #manual手动配置,auto为自动配置
addresses=192.168.0.131/24   #ip地址与子网掩码,/24等同于255.255.255.0
gateway=192.168.0.2          #网关
dns=114.114.114.114;8.8.8.8  #DNS

也可以写成:

[ipv4]
method=manual
address=192.168.0.131
prefix=24
gateway=192.168.0.2
dns=114.114.114.114;8.8.8.8

然后,执行systemctl restart NetworkManager命令,重启。发现IP没修改,是因为ens160不生效,还是使用“Wired connection 1”配置:

[root@localhost ~]# nmcli connection show 
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  ad7036c4-1c0a-32c6-bdb7-2cbc29169a02  ethernet  ens160 
lo                  4b615a57-ea5c-4251-8c00-fbeb77a8cb57  loopback  lo     
ens160              8d696df9-a929-3000-8748-d248f8242793  ethernet  --  

停用”Wired connection 1″:

nmcli connection down  "Wired connection 1"

或者删除:Wired connection 1

[root@localhost ~]# nmcli connection delete "Wired connection 1"

再查看:

此时,正常了。

一般情况下,修改配置文件后,执行以下命令,以便生效。

[root@localhost ~]# nmcli connection reload && nmcli connection down ens160 && nmcli connection up ens160

二、Ubuntu 26.04网卡配置

对于服务器环境或 Ubuntu 18.04 及之后的版本,推荐使用 Netplan 配置静态 ip。 对于桌面系统或使用 NetworkManager 管理网络的环境,可以使用 nmcli 工具(执行命令安装:apt install network-manager)。

Ubuntu有两种网络配置文件方式:netplan(18.04及之后版本)或者传统的/etc/network/interfaces文件。

Netplan是Ubuntu 18.04及更高版本中推荐的配置网络的方式。它使用YAML格式的配置文件,位于/etc/netplan目录下。

Netplan官网:https://netplan.io/

默认路径:/etc/netplan/

  • 文件名示例:01-netcfg.yaml(基础环境)或 50-cloud-init.yaml(云环境)
  • 格式要求:YAML语法,严格遵循缩进规则(通常2个空格)

Netplan 的 YAML 格式要求

缩进必须使用空格,不可使用Tab
键值对使用 : 分隔
数组使用 - 标识
YAML文件对缩进和冒号后空格敏感

yaml文件关键配置项

version:Netplan版本,默认2
renderer:网络后端,networkd(服务器版)、NetworkManager(桌面版)
ethernets:网卡配置块,根据实际修改接口名,如ens33
dhcp4:true(yes),表示启用动态ipv4,false(no)表示需要手动配置
dhcp6:true(yes),表示启用动态ipv6,false(no)表示需要手动配置
addresses:配置静态ip与子网掩码,比如:192.168.0.132/24
routes:默认网关配置,比如:via:192.168.0.2
nameservers:DNS配置,比如:addresses: [114.114.114.114,8.8.8.8]

默认配置如下:

这是自动获取ip。默认配置中,并没写renderer。

# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      dhcp4: true #这是ipv4,true或yes表示自动获取
      dhcp6: true ##这是ipv6,true或yes表示自动获取
      match:
        macaddress: 00:0c:29:ad:95:2c
      set-name: ens33
  version: 2

手动配置ip如下:

# This is the network config written by 'subiquity'
network:
  ethernets:               #以太网配置块
    ens33:                 #网卡名称
      dhcp4: false         #false,启用静态ip
      dhcp6: false
      addresses:           #设置ip和子网掩码
        - 192.168.0.132/24 #设置静态ip,ip/子网掩码(24:255.255.255.0)
      routes:              #网关设置,gateway4,Ubuntu26.04的netplan已经弃用gateway4字段
        - to: default      #默认路由
          via: 192.168.0.2 #网关ip
      nameservers:         #DNS配置
        addresses:
          - 114.114.114.114  #主dns
          - 8.8.8.8          #备用dns
      match:
        macaddress: 00:0c:29:ad:95:2c
      set-name: ens33
  version: 2              #Netplan版本

子网掩码对照表:

/24:255.255.255.0,可用ip数254
/25:255.255.255.128,可用ip数126
/26:255.255.255.192,可用ip数62
/16:255.255.0.0,可用ip数65534

修改保存配置文件后:

执行netplan try命令,测试配置是否有错。也可以执行执行netplan apply命令让配置生效。

注意:为什么使用 netplan try:如果配置错误(比如 IP 和网关不在同一网段),系统会在 60 秒后自动回滚,避免因配置错误导致无法连接服务器。因此,建议使用netplan try测试。

netplan try特征:

配置生效后会进入确认倒计时
如果网络断开,自动回滚
非常适合远程修改ip
确认网络正常后,按提示回车即可。

所以,如果是通过 SSH 连接服务器,不要直接 netplan apply。

对于ip、路由、dns的设置也可以使用以下格式:

# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.0.132/24] #设置静态ip,ip/子网掩码(24:255.255.255.0)
      routes:                #网关设置,gateway4,Ubuntu26.04的netplan已经弃用gateway4字段
        - to: 0.0.0.0/0      #默认路由,也可以写成default或者具体的某个网段,如192.168.0.0/24
          via: 192.168.0.2   #网关ip
      nameservers:           #DNS配置
        addresses: [114.114.114.114,8.8.8.8]
      match:
        macaddress: 00:0c:29:ad:95:2c #网卡mac地址
      set-name: ens33
  version: 2

其他命令:

netplan --debug apply: 查看netplan文件语法
ip route: 查看路由网关
nslookup 域名: 测试DNS解析
ip a: 查看完整的网络信息。
ifconfig: 同样可以查看完整的网络信息
ip addr show: 同样可以查看完整的网络信息
ip addr 网卡: 查看某个网卡的网络信息

DNS配置文件:/etc/resolv.conf

netplan命令:直接执行netplan命令,可以查看其用法