Day 7-2 Linux 网络配置(Rocky 10 / Ubuntu 26.04)

Day 7-2 Linux 网络配置(Rocky 10 / Ubuntu 26.04) 本章学习目标 目标 说明 理解网络基础 掌握 IP 地址、子网掩码、网关的核心概念,理解数据包如何在网络中流动 配置 Linux 网络 使用现代工具(nmcli / Netplan)为 Rocky Linux 1

Day 7-2 Linux 网络配置(Rocky 10 / Ubuntu 26.04)

NetworkManager

本章学习目标

目标 说明
理解网络基础 掌握 IP 地址、子网掩码、网关的核心概念,理解数据包如何在网络中流动
配置 Linux 网络 使用现代工具(nmcli / Netplan)为 Rocky Linux 10 和 Ubuntu 26.04 配置静态 IP
理解 TCP/IP 模型 建立“请求如何到达服务器”的最小认知,区分 TCP 和 UDP
熟练使用诊断工具 掌握 ip、ss、tcpdump、curl、ping、traceroute、mtr 等工具
独立排障 运用五层排查法,独立解决 SSH 无法连接、页面无法访问等常见故障

本章模块概览

Day 7 网络模块:IP/掩码/网关、Linux 网络配置、TCP/IP 分层模型、网络诊断工具、分层排障方法论、综合排障案例

本节导读

在前一节中,通过泽冰送花的场景理解了 IP 地址、子网掩码和网关的概念,以及“同一子网直接通信,跨子网需经过网关”的核心规则。

本节我们将把这些概念落地到真实的 Linux 系统中,学习如何查看和配置网络参数。无论使用的是 Rocky Linux 10 还是 Ubuntu 26.04,学完本节后都能独立完成静态 IP 配置。

四种配置方式:

  1. 命令行 nmcli 修改(生产环境最常用)。
  2. 直接编辑配置文件。
  3. nmtui 图形化菜单修改。
  4. netplan 修改(Ubuntu 专用)。

一、查看网络状态

1.1 查看 IP 地址(ip a / ip addr)

ip a 是 ip addr 的简写,最常用的查看 IP 命令:

[root@magedu ~]# ip a
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 noprefixroute
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:00:42:7c brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c2900427c
    inet 10.0.0.142/24 brd 10.0.0.255 scope global dynamic noprefixroute ens160
       valid_lft 1449sec preferred_lft 1449sec
    inet6 fe80::20c:29ff:fe00:427c/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: ens224: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:0c:29:00:42:86 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    altname enx000c29004286

关键字段解读:

字段 含义
lo 环回接口(127.0.0.1),本机自用
ens160 物理网卡名称
state UP 网卡已启用(DOWN 表示停用)
inet 10.0.0.142/24 IPv4 地址和子网掩码
dynamic DHCP 获取的 IP(静态 IP 无此字段)
valid_lft 1449sec 租约剩余时间(DHCP)
link/ether 00:0c:29:00:42:7c MAC 地址
NO-CARRIER 没有信号(例如网线断开了)

1.2 查看 IP 地址(简洁版)

# 只显示 IPv4 地址
[root@magedu ~]# ip -4 -br addr
lo       UNKNOWN 127.0.0.1/8
ens160   UP      10.0.0.142/24

# 查看指定网卡
[root@magedu ~]# ip -4 -br addr show ens160
ens160   UP      10.0.0.142/24

1.3 查看路由表(网关)

ip route 查看路由表,确认网关配置:

[root@magedu ~]# ip route
default via 10.0.0.1 dev ens160 proto dhcp src 10.0.0.142 metric 100
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.142 metric 100

关键字段解读:

字段 含义
default via 10.0.0.1 默认网关(即快递小哥,所有外网流量走这个出口)
dev ens160 从 ens160 网卡出去
10.0.0.0/24 dev ens160 同一子网直接通信,不需要经过网关

如果看不到 default via 行,说明网关没有配置或没有获取到。也就无法实现跨网段通信。

1.4 查看设备和连接状态

# 查看所有网络设备的状态
[root@magedu ~]# nmcli device status
DEVICE TYPE     STATE                  CONNECTION
ens160 ethernet connected              ens160
lo     loopback connected (externally)  lo
ens224 ethernet unavailable            --

# 查看所有网络连接
[root@magedu ~]# nmcli connection show
NAME                UUID                                 TYPE     DEVICE
ens160              bbd17a79-30a3-3ef9-9b55-d947de47c674 ethernet ens160
lo                  8d36a060-c4ab-4bac-bdf6-85a5acbb1ddc loopback lo
Wired connection 1  15bcea19-87ba-3bb6-8d83-190c1f84e2d2 ethernet --

关键字段解读:

  • STATE:connected 已连接,disconnected 未连接。
  • DEVICE 列为空(--)表示该连接未绑定到任何设备。

二、命令行修改网络配置(nmcli)

生产环境中最常用的是修改现有连接,而非添加新连接。

2.1 查看当前连接配置

# 查看指定连接的完整配置
[root@magedu ~]# nmcli con show ens160
connection.id:                 ens160
connection.uuid:               bbd17a79-30a3-3ef9-9b55-d947de47c674
connection.interface-name:     ens160
connection.autoconnect:        yes
ipv4.method:                   auto
ipv4.addresses:                --
ipv4.gateway:                  --
ipv4.dns:                      --
...output omitted...

2.2 修改为静态 IP(最常用)

# 1. 设置静态 IP 地址
[root@magedu ~]# nmcli con mod ens160 ipv4.addresses 10.0.0.142/24

# 2. 设置网关(提示:必须使用真实的网关)
[root@magedu ~]# nmcli con mod ens160 ipv4.gateway 10.0.0.1

# 3. 设置 DNS
[root@magedu ~]# nmcli con mod ens160 ipv4.dns "8.8.8.8 114.114.114.114"

# 4. 将方法从 DHCP 改为静态(关键步骤)
[root@magedu ~]# nmcli con mod ens160 ipv4.method manual

# 5. 设置开机自动连接
[root@magedu ~]# nmcli con mod ens160 autoconnect yes

# 6. 重新激活使配置生效
[root@magedu ~]# nmcli con up ens160

[root@magedu ~]# nmcli connection modify ens160 \
ipv4.method manual \
ipv4.addresses 10.0.0.142/24 \
ipv4.gateway 10.0.0.1 \
ipv4.dns "8.8.8.8 114.114.114.114" \
autoconnect yes
[root@magedu ~]# nmcli con up ens160

2.3 其它修改 IP

# 设置静态 IP 地址(覆盖原有)
[root@magedu ~]# nmcli con mod ens160 ipv4.addresses 10.0.0.150/24

# 设置静态 IP 地址(不覆盖原有)
[root@magedu ~]# nmcli con mod ens160 +ipv4.addresses 10.0.0.150/24

# 修改 DNS(覆盖原有)
[root@magedu ~]# nmcli con mod ens160 ipv4.dns "8.8.8.8 114.114.114.114"

# 追加 DNS(不覆盖原有)
[root@magedu ~]# nmcli con mod ens160 +ipv4.dns 114.114.114.114

# 从静态改回 DHCP
[root@magedu ~]# nmcli con mod ens160 ipv4.method auto

# 重新激活连接
[root@magedu ~]# nmcli con up ens160

# 查看增加的 IP
[root@magedu ~]# ip a
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 noprefixroute
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:00:42:7c brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c2900427c
    inet 10.0.0.150/24 brd 10.0.0.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet 10.0.0.142/24 brd 10.0.0.255 scope global secondary dynamic noprefixroute ens160
       valid_lft 1799sec preferred_lft 1799sec
    inet6 fe80::20c:29ff:fe00:427c/64 scope link tentative noprefixroute
       valid_lft forever preferred_lft forever

关键参数说明:

参数 含义
ipv4.method manual 静态 IP(手动配置)
ipv4.method auto DHCP(自动获取)
ipv4.addresses IP 地址/CIDR
ipv4.gateway 默认网关
ipv4.dns DNS 服务器
+ipv4.dns 追加 DNS
connection.autoconnect yes 开机自动连接

2.4 添加新连接(了解即可)

[root@magedu ~]# nmcli con add con-name ens160-2 type ethernet ifname ens160 \
ipv4.method manual \
ipv4.addresses 10.0.0.142/24 \
ipv4.gateway 10.0.0.1 \
ipv4.dns "8.8.8.8 114.114.114.114"

三、配置文件修改

3.1 Rocky Linux 10 配置文件

配置文件位于 /etc/NetworkManager/system-connections/ 目录:

[root@magedu ~]# ls /etc/NetworkManager/system-connections/
ens160-2.nmconnection  ens160.nmconnection

[root@magedu ~]# cat /etc/NetworkManager/system-connections/ens160.nmconnection

静态 IP 配置示例:

[connection]
id=ens160
uuid=bbd17a79-30a3-3ef9-9b55-d947de47c674
type=ethernet
autoconnect=true
interface-name=ens160

[ipv4]
method=manual
address1=10.0.0.142/24
gateway=10.0.0.1
dns=8.8.8.8;114.114.114.114;

[ipv6]
method=auto

DHCP 配置示例:

[connection]
id=ens160
uuid=bbd17a79-30a3-3ef9-9b55-d947de47c674
type=ethernet
autoconnect-priority=-999
interface-name=ens160
timestamp=1785073433

[ethernet]

[ipv4]
method=auto

[ipv6]
addr-gen-mode=eui64
method=auto

修改步骤:

# 1. 编辑配置文件
[root@magedu ~]# vim /etc/NetworkManager/system-connections/ens160.nmconnection

# 2. 重新加载配置
[root@magedu ~]# nmcli con reload

# 3. 重新激活连接
[root@magedu ~]# nmcli con up ens160

3.2 Ubuntu 26.04 配置文件(Netplan)

配置文件位于 /etc/netplan/ 目录:

[root@magedu ~]# ls /etc/netplan/
00-installer-config.yaml

[root@magedu ~]# cat /etc/netplan/00-installer-config.yaml

常见文件名对照:

安装/配置类型 默认渲染器 常见文件名
云服务器/镜像(如 AWS、阿里云) systemd-networkd 50-cloud-init.yaml
Ubuntu Server 标准安装 systemd-networkd 01-netcfg.yaml 或 00-installer-config.yaml
Ubuntu Desktop 图形界面安装 NetworkManager 01-network-manager-all.yaml

静态 IP 配置示例:

# /etc/netplan/00-installer-config.yaml
network:
  version: 2
  ethernets:
    ens160:
      dhcp4: false
      addresses:
        - 10.0.0.142/24
      routes:
        - to: default
          via: 10.0.0.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 114.114.114.114

DHCP 配置示例:

# /etc/netplan/00-installer-config.yaml
network:
  version: 2
  ethernets:
    ens160:
      dhcp4: true

修改步骤:

# 1. 编辑配置文件
[root@magedu ~]# vim /etc/netplan/00-installer-config.yaml

# 2. 测试配置(安全模式,120 秒内确认生效)
[root@magedu ~]# netplan try
Error in network definition: unknown key 'address'
        address:
        ^
[root@magedu ~]# netplan try
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in 114 seconds

# 3. 应用配置
[root@magedu ~]# netplan apply

[root@magedu ~]# ip a
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 noprefixroute
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:f5:06:96 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 10.0.0.129/24 brd 10.0.0.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 10.0.0.130/24 brd 10.0.0.255 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fef5:696/64 scope link
       valid_lft forever preferred_lft forever

四、nmtui 图形化配置工具

nmtui 是 NetworkManager 提供的图形化菜单配置工具,不需要记忆命令参数,适合新手和临时配置。

4.1 启动 nmtui

[root@magedu ~]# nmtui

nmtui 主界面

启动后会显示三个选项:

  • Edit a connection:编辑连接(最常用,配置 IP、网关、DNS)。
  • Activate a connection:激活连接(启用/停用网卡)。
  • Set system hostname:设置主机名。

4.2 配置静态 IP

操作步骤:

  1. 在 nmtui 主界面,上下键选择 Edit a connection,按 Enter。
  2. 选择要编辑的连接(如 ens160),按 Enter。

选择 ens160 连接

  1. 在编辑界面中配置以下项目:
项目 设置
IPv4 CONFIGURATION Manual(静态 IP)
Show 展开详细配置
Addresses 10.0.0.142/24
Gateway 10.0.0.1
DNS servers 8.8.8.8,114.114.114.114

IPv4 配置选择 Manual

  1. 光标移到 OK,按 Enter 保存。
  2. 选择 Back 返回主界面。
  3. 选择 Quit 退出。

4.3 激活连接

配置完 IP 后,需要激活连接才能生效:

  1. 在 nmtui 主界面选择 Activate a connection,按 Enter。
  2. 选择要激活的连接(如 ens160)。
  3. 按 Enter 激活(状态变为 Active)。
  4. 选择 Back 返回主界面。
  5. 选择 Quit 退出。

Activate a connection 菜单

4.4 快捷键

操作 说明
方向键 上下移动选择
Enter 确认选择
Tab 切换选项
空格 勾选/取消勾选

五、主机名管理

5.1 查看和设置主机名

# 查看当前主机名
[root@magedu ~]# hostname
magedu

# 查看详细主机信息
[root@magedu ~]# hostnamectl
 Static hostname: magedu
       Icon name: computer-vm
         Chassis: vm
      Machine ID: ...
         Boot ID: ...
  Virtualization: kvm
Operating System: Red Hat Enterprise Linux 10.0
     CPE OS Name: cpe:/o:redhat:enterprise_linux:10::baseos
          Kernel: Linux 6.12.0-55.9.1.el10_0.x86_64
    Architecture: x86-64

# 永久设置主机名
[root@magedu ~]# hostnamectl set-hostname magedu-server

# 查看主机名配置文件
[root@magedu ~]# cat /etc/hostname
magedu-server

5.2 /etc/hosts 文件

/etc/hosts 文件用于本地名称解析,优先级高于 DNS:

[root@magedu ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.142  magedu-server magedu

[root@magedu ~]# ping -c1 magedu
PING magedu (10.0.0.142) 56(84) bytes of data.
64 bytes from magedu (10.0.0.142): icmp_seq=1 ttl=64 time=0.080 ms

六、DNS 验证

6.1 /etc/resolv.conf

/etc/resolv.conf 由 NetworkManager 自动生成,不要手动编辑。

[root@magedu ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search example.com
nameserver 8.8.8.8
nameserver 114.114.114.114

6.2 DNS 验证命令

# nslookup
[root@magedu ~]# dnf provides *bin/nslookup
[root@magedu ~]# dnf -y install bind-utils
[root@magedu ~]# nslookup magedu.com
Server:  10.0.0.2
Address: 10.0.0.2#53

Non-authoritative answer:
Name:    magedu.com
Address: 43.226.56.46

# dig
[root@magedu ~]# dig magedu.com +short
43.226.56.46

# host
[root@magedu ~]# host magedu.com
magedu.com has address 43.226.56.46
magedu.com mail is handled by 5 mxbiz1.qq.com.
magedu.com mail is handled by 10 mxbiz2.qq.com.

# getent:遵循 /etc/nsswitch.conf 配置的解析顺序(hosts: files dns myhostname)
[root@magedu ~]# getent hosts magedu.com
43.226.56.46  magedu.com

七、配置验证(完整流程)

# 1. 查看 IP 地址
[root@magedu ~]# ip a
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:00:42:7c brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.142/24 brd 10.0.0.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever

# 2. 查看路由表(确认网关)
[root@magedu ~]# ip route
default via 10.0.0.1 dev ens160 proto static metric 100
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.142 metric 100

# 3. 查看设备状态
[root@magedu ~]# nmcli device status
DEVICE TYPE     STATE                 CONNECTION
ens160 ethernet connected             ens160
lo     loopback connected (externally) lo

# 4. 测试网关连通性
[root@magedu ~]# ping -c 4 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.196 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.436 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.361 ms
64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=0.298 ms

--- 10.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 49ms
rtt min/avg/max/mdev = 0.196/0.322/0.436/0.092 ms

# 5. 验证 DNS 解析
[root@magedu ~]# getent hosts baidu.com
124.237.177.164 baidu.com
111.63.65.247  baidu.com
111.63.65.103  baidu.com
110.242.74.102 baidu.com

八、配置对比表

操作 Rocky Linux 10 Ubuntu 26.04
查看 IP ip a 或 ip -4 -br addr ip a 或 ip -4 -br addr
查看路由 ip route ip route
查看连接 nmcli con show nmcli con show
配置文件位置 /etc/NetworkManager/system-connections/*.nmconnection /etc/netplan/*.yaml
修改 IP nmcli con mod ens160 ipv4.addresses 10.0.0.142/24 编辑 YAML 文件
修改网关 nmcli con mod ens160 ipv4.gateway 10.0.0.1 YAML 中 routes
修改 DNS nmcli con mod ens160 ipv4.dns "8.8.8.8" YAML 中 nameservers
切换静态 nmcli con mod ens160 ipv4.method manual dhcp4: false
切换 DHCP nmcli con mod ens160 ipv4.method auto dhcp4: true
生效配置 nmcli con up ens160 netplan apply
主机名 hostnamectl set-hostname hostnamectl set-hostname

九、本章小结

9.1 核心命令速记

查看类命令:

操作 命令
查看 IP 地址 ip a 或 ip -4 -br addr
查看路由表 ip route
查看设备状态 nmcli dev status
查看连接 nmcli con show
测试连通性 ping -c 4 网关IP

修改类命令(nmcli):

操作 命令
修改 IP 地址 nmcli con mod ens160 ipv4.addresses 10.0.0.142/24
修改网关 nmcli con mod ens160 ipv4.gateway 10.0.0.1
修改 DNS nmcli con mod ens160 ipv4.dns "8.8.8.8"
切换静态 nmcli con mod ens160 ipv4.method manual
切换 DHCP nmcli con mod ens160 ipv4.method auto
激活连接 nmcli con up ens160

nmtui:nmtui 启动图形化菜单,方向键选择,Enter 确认。

9.2 学完本节应能独立完成

  • 使用 ip a 和 ip route 查看网络状态。
  • 使用 nmcli 命令行修改静态 IP 配置。
  • 直接编辑配置文件修改网络。
  • 使用 nmtui 图形化菜单配置网络。
  • 使用 hostnamectl 管理主机名。
  • 使用 ping、getent 验证网络配置。

下一节预告

Day 7-3:TCP/IP 分层模型与可达性认知。

我们已经学会了配置网络参数,下一节我们将深入理解数据从源头到目的地的完整旅程——TCP/IP 四层模型中每一层的职责,以及数据是如何一步步封装、传输、解封的。

评论