第 10/30 天
网络是 Linux 系统的命脉。无论是桌面办公、开发测试,还是生产服务器,网络配置的正确性与稳定性直接决定了系统的可用性。Ubuntu 作为最流行的 Linux 发行版之一,其网络管理工具链经历了从 ifconfig/route 到 ip/ss、从 /etc/network/interfaces 到 netplan 的重大演进。
今天,我们将系统学习 Ubuntu 网络配置的核心工具:netplan(网络配置管理)、ip(网络接口与路由)、ss(网络连接诊断)和 ufw(防火墙管理)。掌握这些工具,你就掌握了 Ubuntu 网络的”方向盘”。
二、实战步骤
2.1 查看当前网络状态
首先,我们用 ip 命令全面了解系统网络状态:
# 查看所有网络接口(相当于 ifconfig -a)
ip addr show
# 或简写
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
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:ab:cd:ef brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feab:cdef/64 scope link
valid_lft forever preferred_lft forever
关键信息解读:
– lo:回环接口,IP 127.0.0.1
– ens33:物理网卡,IP 192.168.1.100/24
– UP:接口已启用
– state UP:运行状态正常
查看路由表:
ip route show
# 或简写
ip r
输出示例:
default via 192.168.1.1 dev ens33 proto static
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.100
default:默认网关 192.168.1.1192.168.1.0/24:本地子网路由
2.2 使用 ss 诊断网络连接
ss(socket statistics)是诊断网络连接的首选工具,比 netstat 快数倍:
# 查看所有 TCP 连接
ss -t
# 查看所有监听端口(最常用)
ss -tuln
# 查看详细的 TCP 连接信息(含进程)
ss -tup
# 按状态过滤连接
ss -t state established
输出示例:
$ ss -tuln
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:53 0.0.0.0:*
tcp LISTEN 0 128 [::]:22 [::]:*
udp LISTEN 0 256 127.0.0.1:53 0.0.0.0:*
参数说明:
– -t:TCP 连接
– -u:UDP 连接
– -l:仅显示监听状态的 socket
– -n:不解析服务名,直接显示端口号
– -p:显示进程名和 PID
2.3 netplan 配置静态 IP
netplan 的配置文件位于 /etc/netplan/,通常名为 01-netcfg.yaml 或 00-installer-config.yaml。
查看当前配置
cat /etc/netplan/00-installer-config.yaml
配置静态 IP 示例
# /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: false
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 114.114.114.114
应用配置
# 验证配置语法
sudo netplan try
# 直接应用(不等待确认)
sudo netplan apply
# 生成后端配置文件(调试用)
sudo netplan generate
⚠️ 重要:在生产环境中,务必先使用
netplan try验证,它会等待 120 秒确认。如果 SSH 连接断开,配置会自动回滚,避免”把自己锁在外面”的惨剧。
2.4 ufw 防火墙配置
UFW(Uncomplicated Firewall)是 Ubuntu 默认的防火墙管理工具,基于 iptables 但极大简化了规则配置。
基础操作
# 查看防火墙状态
sudo ufw status
# 启用详细输出
sudo ufw status verbose
# 启用防火墙
sudo ufw enable
# 禁用防火墙
sudo ufw disable
常用规则配置
# 允许 SSH(默认端口 22)
sudo ufw allow ssh
# 或指定端口
sudo ufw allow 22/tcp
# 允许 HTTP 和 HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 允许特定 IP 访问
sudo ufw allow from 192.168.1.50 to any port 22
# 拒绝某 IP
sudo ufw deny from 10.0.0.100
# 删除规则(按编号)
sudo ufw status numbered
sudo ufw delete 3
完整配置示例
# 从头配置一个 Web 服务器的防火墙
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow from 10.0.0.0/8 to any port 3306
sudo ufw enable
sudo ufw status verbose
输出示例:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
3306 ALLOW IN 10.0.0.0/8
22/tcp (v6) ALLOW IN Anywhere (v6)
80/tcp (v6) ALLOW IN Anywhere (v6)
443/tcp (v6) ALLOW IN Anywhere (v6)
2.5 临时网络调试命令
除了上述工具,以下命令在日常排障中不可或缺:
# 测试网络连通性
ping -c 4 8.8.8.8
# DNS 解析测试
nslookup google.com
dig google.com
# 追踪路由路径
traceroute 8.8.8.8
# 查看 ARP 表
ip neigh
三、常见问题
Q1:应用 netplan 后 SSH 断开怎么办?
现象:配置静态 IP 时写错了网关,导致 SSH 连接中断。
解决方案:如果使用 netplan try,配置会在 120 秒后自动回滚,只需等待即可。如果直接用了 netplan apply,需要通过服务器管理面板(如 IPMI、iDRAC、VNC)进入系统,手动修正配置文件,或直接插入 Ubuntu Live CD 挂载磁盘修复。
Q2:ufw 启用后 SSH 连接断开?
原因:在 ufw 启用前没有添加 SSH 允许规则。
解决:通过服务器管理面板控制台连接,执行:
sudo ufw allow ssh
Q3:ss 和 netstat 有什么区别?
ss 直接从内核的 /proc/net/tcp 等文件读取 socket 信息,而 netstat 需要遍历 /proc 下的每个进程。在连接数较多(如 1000+)的服务器上,ss 的速度优势极为明显,建议全面改用 ss。
Q4:如何查看网卡速率和双工模式?
# 查看 ethtool 信息
sudo ethtool ens33
输出包含 Speed、Duplex、Link detected 等关键信息,可用于诊断物理链路问题。
四、总结
今天我们学习了 Ubuntu 网络配置的四大核心工具:
| 工具 | 用途 | 关键命令 |
|---|---|---|
| netplan | 网络配置管理 | netplan apply, netplan try |
| ip | 接口与路由管理 | ip addr, ip route, ip link |
| ss | 网络连接诊断 | ss -tuln, ss -tup |
| ufw | 防火墙管理 | ufw enable, ufw allow, ufw status |
网络管理是 Ubuntu 运维的基础技能,也是排查大部分系统问题的第一道关卡。建议你动手实践所有命令,特别是 netplan try 的安全机制——它曾经救过无数运维工程师的”命”。
下期预告
第 11 天:进程管理与系统监控——ps、top、htop、systemd 资源控制
进程是 Linux 系统中一切活动的载体。明天,我们将深入进程管理,学习如何用 ps 和 top 监控系统运行状态,用 htop 交互式管理进程,并通过 systemd 的 cgroup 机制精确控制资源分配。你将掌握系统性能的第一道防线。
Ubuntu 系统系列目录
| 天数 | 主题 | 链接 |
|---|---|---|
| 第 1 天 | Ubuntu 简介与版本选择 | 阅读 |
| 第 2 天 | 手把手安装 Ubuntu | 阅读 |
| 第 3 天 | Ubuntu 桌面环境初探 | 阅读 |
| 第 4 天 | Ubuntu 终端基础 | 阅读 |
| 第 5 天 | 用户与权限管理 | 阅读 |
| 第 6 天 | 软件包管理 | 阅读 |
| 第 7 天 | 文件与文本操作 | 阅读 |
| 第 8 天 | 系统服务管理 | 阅读 |
| 第 9 天 | 磁盘与文件系统管理 | 阅读 |
| 第 10 天 | 网络配置与管理 | ← 今日发布 |
| 第 11 天 | 进程管理与系统监控 | 敬请期待 |
| 第 12 天 | 日志管理与审计 | 敬请期待 |
| 第 13 天 | 计划任务与自动化 | 敬请期待 |
| 第 14 天 | Shell 脚本编程基础 | 敬请期待 |
| 第 15 天 | 系统备份与恢复 | 敬请期待 |
| 第 16 天 | 远程访问与 SSH 配置 | 敬请期待 |
| 第 17 天 | Web 服务器搭建(Nginx/Apache) | 敬请期待 |
| 第 18 天 | 数据库安装与配置(MySQL/PostgreSQL) | 敬请期待 |
| 第 19 天 | DNS 与域名解析 | 敬请期待 |
| 第 20 天 | 安全加固与入侵检测 | 敬请期待 |
| 第 21 天 | 性能监控与调优 | 敬请期待 |
| 第 22 天 | 容器技术入门(Docker) | 敬请期待 |
| 第 23 天 | 容器编排入门(Docker Compose) | 敬请期待 |
| 第 24 天 | 虚拟化技术(KVM/QEMU) | 敬请期待 |
| 第 25 天 | 存储管理进阶(NFS/iSCSI) | 敬请期待 |
| 第 26 天 | 高可用与负载均衡 | 敬请期待 |
| 第 27 天 | 自动化运维(Ansible 入门) | 敬请期待 |
| 第 28 天 | 系统升级与迁移 | 敬请期待 |
| 第 29 天 | 故障排查实战 | 敬请期待 |
| 第 30 天 | Ubuntu 专家之路 | 敬请期待 |















暂无评论内容