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

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

本节导读
在前一节中,通过泽冰送花的场景理解了 IP 地址、子网掩码和网关的概念,以及“同一子网直接通信,跨子网需经过网关”的核心规则。
本节我们将把这些概念落地到真实的 Linux 系统中,学习如何查看和配置网络参数。无论使用的是 Rocky Linux 10 还是 Ubuntu 26.04,学完本节后都能独立完成静态 IP 配置。
四种配置方式:
- 命令行 nmcli 修改(生产环境最常用)。
- 直接编辑配置文件。
- nmtui 图形化菜单修改。
- 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

启动后会显示三个选项:
- Edit a connection:编辑连接(最常用,配置 IP、网关、DNS)。
- Activate a connection:激活连接(启用/停用网卡)。
- Set system hostname:设置主机名。
4.2 配置静态 IP
操作步骤:
- 在 nmtui 主界面,上下键选择 Edit a connection,按 Enter。
- 选择要编辑的连接(如 ens160),按 Enter。

- 在编辑界面中配置以下项目:
| 项目 | 设置 |
|---|---|
| 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 |

- 光标移到 OK,按 Enter 保存。
- 选择 Back 返回主界面。
- 选择 Quit 退出。
4.3 激活连接
配置完 IP 后,需要激活连接才能生效:
- 在 nmtui 主界面选择 Activate a connection,按 Enter。
- 选择要激活的连接(如 ens160)。
- 按 Enter 激活(状态变为 Active)。
- 选择 Back 返回主界面。
- 选择 Quit 退出。

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 四层模型中每一层的职责,以及数据是如何一步步封装、传输、解封的。
评论