“一机多IP”已成为不少业务场景的刚需配置,可以用于不同业务访问。不论你是架设Nginx反向代理集群,还是部署高可用数据库,虚拟IP都是关键技术之一。虚拟IP是指绑定在某个物理网卡上的附加逻辑IP地址。它不依赖网卡的MAC地址或物理连接,而是系统软件层面创建的“虚拟接口”。本文将系统地讲清楚Linux中虚拟IP配置的全过程。
配置虚拟IP可以为同一服务器绑定多个公网或私网IP,实现高可用漂移,优化出站通信策略、分担带宽压力。Linux服务器配置前需要确认环境与网卡状态。
查看当前网卡与IP配置
ip addr show
输出示例:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
确认你要在哪张网卡上增加虚拟IP,通常为eth0。
Linux上配置虚拟IP的三种方式:
方法一:命令行临时添加虚拟IP(立即生效,重启失效)
sudo ip addr add 192.168.1.100/24 dev eth0 label eth0:1
label eth0:1
创建一个虚拟网卡别名
验证:
ip a | grep 192.168.1.100
删除方法:
sudo ip addr del 192.168.1.100/24 dev eth0
适合:临时测试、多IP通信、实验场景
方法二:修改配置文件(重启后仍生效)
对于 CentOS/RHEL 系统:
创建新配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0:1
:
DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
重启网络服务:
sudo systemctl restart network
对于Ubuntu/Debian 系统:
编辑 /etc/network/interfaces
:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.100
netmask 255.255.255.0
然后:
sudo systemctl restart networking
适合:生产环境下永久绑定虚拟IP。
方法三:使用 nmcli
配置(推荐在新系统中使用)
nmcli connection modify eth0 +ipv4.addresses 192.168.1.100/24
nmcli connection up eth0
适合:CentOS 8、RHEL 9、Rocky Linux、AlmaLinux 等使用 NetworkManager 的系统。
多IP绑定的使用案例—多域名部署多站点
在Nginx中使用不同虚拟IP监听不同网站:
server {
listen 192.168.1.100:80;
server_name siteA.com;
...
}
server {
listen 192.168.1.101:80;
server_name siteB.com;
...
}
实现不同IP访问不同网站,提高隔离性与安全性。
注意事项:
如果ping不到虚拟IP?原因可能是路由未生效/防火墙拦截,需要确保虚拟IP所在网段是否正确,检查firewalld
、iptables
虚拟IP失效的情况可能是因为临时添加未持久化,建议使用配置文件持久绑定,或写入开机脚本
多IP冲突可能是子网中VIP被他人占用,需要确保地址未被占用,或设置为/32单主机可用
虚拟IP是Linux网络管理的必修技能,不仅是“多一个地址”,更是现代服务器高可用、负载均衡、独立部署的核心工具。你可以用它为服务器搭建多站点,解决容灾切换问题,提高出站通信策略的灵活性。它不仅是“多一个地址”,更是现代服务器高可用、负载均衡、独立部署的核心工具。