Linux 系统管理与运维 - 第 61 课:网络接口配置 ip / ifconfig
学习目标
完成本课学习后,你将能够:
- 理解 Linux 系统中网络接口的基本概念(如
eth0,ens33,lo)。 - 使用
ifconfig和ip命令查看和临时配置网络接口的 IP 地址、子网掩码等。 - 区分 临时网络配置(重启失效)与永久网络配置(通过配置文件)。
- 掌握 启用/禁用网络接口的基本方法。
核心概念
1. 什么是网络接口?
在 Linux 中,网络接口就像是计算机连接到网络(或网络内部通信)的“门”。每个接口都有一个名字(如 eth0, ens33, wlan0),代表一个物理或虚拟的网络连接点。
lo:回环接口 (loopback),用于本机内部通信,IP 地址固定为127.0.0.1。eth0,ens33,enp0s3等:通常是物理有线网卡。wlan0:通常是无线网卡。docker0,virbr0等:虚拟接口,由容器或虚拟化软件创建。
2. 传统工具:ifconfig
ifconfig (interface configuration) 是较早的网络配置工具。虽然在许多新系统中已被 ip 命令取代,但了解它仍然有用,因为许多脚本和文档中还在使用。
- 查看所有接口信息:
ifconfig - 查看指定接口信息:
ifconfig eth0 - 临时设置接口 IP:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
3. 现代工具:ip
ip 命令是 iproute2 软件包的一部分,功能更强大、更统一。它采用对象模型:ip [选项] 对象 { 命令 | help }。
- 查看所有接口:
ip addr show或简写ip a - 查看指定接口:
ip addr show dev eth0 - 临时添加 IP 地址:
sudo ip addr add 192.168.1.100/24 dev eth0 - 删除 IP 地址:
sudo ip addr del 192.168.1.100/24 dev eth0 - 启用/禁用接口:
sudo ip link set eth0 up/sudo ip link set eth0 down
关键区别:
ifconfig使用传统的网络掩码格式(如netmask 255.255.255.0)。ip使用 CIDR (无类别域间路由) 表示法(如192.168.1.100/24,其中/24等同于255.255.255.0)。ip命令修改立即生效,但重启后同样会丢失(除非写入配置文件)。
代码示例
示例 1:使用 ifconfig 查看与临时配置
# 1. 查看系统上所有活动的网络接口及其 IP 信息
ifconfig
# 2. 只查看 `eth0` 接口的详细信息(MAC地址、IP、数据包统计等)
ifconfig eth0
# 3. 临时为 `eth0` 接口分配一个新的 IP 地址 (需要root权限)
# 注意:此配置在系统重启或网络服务重启后会丢失!
sudo ifconfig eth0 192.168.1.150 netmask 255.255.255.0 up
# 4. 验证新 IP 地址是否已生效
ifconfig eth0 | grep "inet addr" # 传统格式查看
# 或使用更通用的方式
ip addr show dev eth0
示例 2:使用 ip 命令查看与临时配置
# 1. 以简洁模式查看所有接口的 IP 地址信息
ip -brief addr show
# 2. 查看 `eth0` 接口的完整信息(状态、MAC、IP等)
ip addr show dev eth0
# 3. 为 `eth0` 添加一个辅助的 IP 地址(同一个接口可以拥有多个IP)
sudo ip addr add 192.168.1.200/24 dev eth0
# 4. 再次查看,确认新 IP 已添加(会看到两个 inet 条目)
ip addr show dev eth0
# 5. 删除刚才添加的辅助 IP 地址
sudo ip addr del 192.168.1.200/24 dev eth0
# 6. 禁用 `eth0` 接口 (通常用于故障排查)
sudo ip link set eth0 down
# 禁用后,使用 `ip link show` 会看到 state DOWN
# 7. 再次启用 `eth0` 接口
sudo ip link set eth0 up
示例 3:理解永久配置(配置文件)
临时配置重启后失效。永久配置需要编辑网络接口的配置文件。路径因发行版而异:
- Debian/Ubuntu:
/etc/network/interfaces - CentOS/RHEL 7 及更早:
/etc/sysconfig/network-scripts/ifcfg-eth0 - CentOS/RHEL 8+/Fedora:使用
NetworkManager,配置可能在/etc/NetworkManager/system-connections/或通过nmcli工具管理。
以 CentOS 7 的 ifcfg-eth0 文件为例:
# 查看当前配置文件
cat /etc/sysconfig/network-scripts/ifcfg-eth0
# 典型内容如下:
TYPE=Ethernet
BOOTPROTO=static # "dhcp" 表示自动获取IP,"static" 表示手动设置
NAME=eth0
DEVICE=eth0
ONBOOT=yes # 系统启动时是否激活此接口
IPADDR=192.168.1.100 # 你的静态IP地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.1.1 # 默认网关
DNS1=8.8.8.8 # 首选DNS服务器
DNS2=8.8.4.4 # 备用DNS服务器
# 修改后,需要重启网络服务使配置生效
sudo systemctl restart network # CentOS 7/RHEL 7
# 或使用 nmcli (如果NetworkManager是活跃的)
sudo nmcli connection reload
sudo nmcli connection up eth0
实践练习
练习 1:基础查看
- 任务:使用
ip命令查看你系统中的网络接口,并找出有 IP 地址的非回环 (lo) 接口名称及其 IPv4 地址。 - 要求:使用一条
ip命令完成查看。 - 预期输出:类似以下格式(接口名和IP地址会不同):
提示:可以使用
eth0 UP 192.168.1.105/24ip -brief addr show命令。
练习 2:临时配置与验证
- 任务:假设你有一台测试机,网络接口为
ens33。请为它临时添加一个额外的 IP 地址10.0.0.1/24。 - 步骤:
- 步骤 1:使用
ip addr add命令添加地址。 - 步骤 2:使用命令验证该地址是否已成功添加到
ens33接口。
- 步骤 1:使用
- 清理:练习完成后,记得使用
ip addr del命令移除这个临时地址。
练习 3:探索配置文件
- 任务:找到并查看你当前主要网络接口(如
eth0或ens33)的永久配置文件。 - 要求:
- 判断该接口当前是使用 DHCP 动态获取 IP,还是使用静态 IP?
- 如果使用静态 IP,记录下 IPADDR、NETMASK 和 GATEWAY 的值。
- 提示:根据你的 Linux 发行版,查看对应的配置文件路径(见“核心概念”部分)。
常见错误
-
权限不足:
- 错误信息:
RTNETLINK answers: Operation not permitted - 原因:修改网络配置需要 root 权限。
- 解决:命令前加
sudo。
- 错误信息:
-
接口名称错误:
- 错误信息:
Cannot find device "eth0" - 原因:接口名可能不是
eth0,可能是ens33,enp0s3等。 - 解决:先使用
ip link show或ifconfig -a确认正确的接口名称。
- 错误信息:
-
配置文件语法错误:
- 现象:修改配置文件后,
systemctl restart network失败。 - 原因:配置文件拼写错误(如
NETWASK写错)、缺少必要字段等。 - 解决:仔细检查配置文件,确保每行格式正确,并检查服务日志
journalctl -xe获取具体错误信息。
- 现象:修改配置文件后,
-
配置未生效:
- 现象:修改了配置文件并重启服务,但
ip addr显示的 IP 没变。 - 原因:可能 NetworkManager 和 network 服务冲突,或者配置的接口名不正确。
- 解决:尝试使用
nmcli管理,或重启整个系统(sudo reboot)进行最终测试。
- 现象:修改了配置文件并重启服务,但
小结
本课我们学习了管理和配置 Linux 网络接口的核心技能:
- 两大工具:
ifconfig(经典) 和ip(现代、推荐)。优先使用ip命令。 - 基本操作:查看 (
ip a,ifconfig)、临时配置 IP (ip addr add,ifconfig ... netmask ...)、启用/禁用接口 (ip link set ... up/down)。 - 配置持久化:临时命令仅对当前会话有效。永久配置需要编辑系统网络配置文件(路径因发行版而异),并重启网络服务。
- 关键概念:理解接口名称、IP 地址、子网掩码/CIDR 表示法,以及动态(DHCP)与静态 IP 的区别。
掌握了这些基础配置技能,你就能在服务器部署、网络故障排查时,自信地查看和调整网络连接了。下一课,我们将学习如何查看当前的网络连接状态和监听端口。
练习编辑器
rust
Loading...