Linux一块网卡完全可以设置多个IP地址,配置方法多样,包括修改配置文件、使用nmcli或ip命令,应用场景丰富,如虚拟主机部署、负载均衡、网络测试及服务隔离,这种方法能有效利用硬件资源,满足多样化的网络需求。
在Linux系统的网络配置中,一个非常常见且实用的问题是:一块网卡(物理接口)能否设置多个IP地址?
答案是肯定的,这不仅完全可行,而且是Linux网络管理中非常基础且强大的功能,通过在一块物理网卡上绑定多个逻辑IP地址(通常称为“多IP”或“虚拟IP”),我们可以实现多种网络需求,而无需增加额外的硬件成本。
核心概念:物理接口与虚拟接口

要理解这一配置,首先需要明白“物理接口”和“虚拟接口”的区别。
- 物理接口:如
eth0、ens33、ens160等,这是网卡硬件在系统中的真实标识。 - 虚拟接口:在物理接口后面加冒号 ,后面跟数字,
eth0:0、ens33:1,这实际上是在同一块物理硬件上创建的多个逻辑网络入口。
常见的配置方法
根据Linux发行版的不同,配置多IP地址的方法也有所差异,以下是几种主流的方式。
使用 ip 命令(最通用、推荐)
ip 命令是现代Linux系统中最强大的网络配置工具,几乎所有发行版都支持。
-
添加IP地址: 语法:
ip addr add [IP地址]/[子网掩码] dev [网卡名称]示例: 在网卡eth0上添加一个IP地址168.1.100,掩码为24(即255.255.0)。ip addr add 192.168.1.100/24 dev eth0
-
删除IP地址:
ip addr del 192.168.1.100/24 dev eth0
-
查看当前状态: 添加成功后,使用
ip addr show或ip a可以看到eth0下面出现了eth0:1的条目。
使用 ifconfig 命令(传统方式)
ifconfig 是早期的网络配置工具,虽然在新版Linux中已被 ip 命令部分取代,但在很多老旧系统或脚本中依然广泛使用。
- 添加IP地址:
语法:
ifconfig [网卡名称]:[编号] [IP地址] netmask [子网掩码] up示例:ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 up
使用 netplan(适用于 Ubuntu 18.04+ / Debian 10+)
对于Ubuntu Server等使用Netplan的系统,推荐使用YAML配置文件来管理网络,这种方式重启后依然有效。
- 编辑配置文件,通常位于
/etc/netplan/目录下(01-netcfg.yaml)。 - 配置如下:
network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.100/24 - 192.168.1.101/24 # 添加第二个IP gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] - 应用配置:
sudo netplan apply
使用 nmcli(NetworkManager工具)
如果你使用的是带有图形界面的Linux系统(如GNOME桌面版),或者依赖NetworkManager管理网络,可以使用 nmcli。
- 添加IP:
sudo nm

