跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

如何在Linux利用Ip-Addr命令实现单网卡多IP绑定以支持多业务虚拟主机部署

推荐使用ip addr而非ifconfig或eth0:x别名,因其是现代Linux默认工具集iproute2的官方方式,将多IP视为主网卡的secondary地址,统一管理、无依赖失效风险,且更适配Web虚拟主机等场景。 可以直接用
ip addr
命令为单网卡快速添加多个 IP,无需创建虚拟子接口,适合多业务虚拟主机这类需要稳定、灵活、易维护的场景。 为什么推荐用 ip addr 而不是 ifconfig 或 eth0:x 别名 现代 Linux 发行版(如 CentOS 7+/RHEL 8+、Ubuntu 18.04+)默认使用
iproute2
工具集,
ip addr
是官方推荐方式。它把多个 IP 视为主网卡的“辅助地址”(secondary),统一管理、无依赖关系——不像
eth0:1
这类别名,一旦主接口 down,所有别名自动失效。 对 Web 服务尤其友好:Apache/Nginx 监听
0.0.0.0
时,所有绑定在该网卡上的 IP 都能正常响应请求;若需基于 IP 区分站点(如
192.168.1.10
托管 A 站,
192.168.1.11
托管 B 站),直接配置 ServerName 或 VirtualHost 即可,无需额外路由或监听限制。 临时添加多个 IP(测试或快速上线) 以网卡
ens33
为例,执行以下命令: Docker Desktop(linux) 当前 Docker 最新稳定版本之一,主要针对稳定性和兼容性进行了修复优化,适合生产环境与日常开发使用。该版本继续强化 AI 开发支持、容器日志管理以及 Docker Engine 的安全能力,对 Windows/macOS/Linux 平台兼容性进行了进一步优化。 下载
ip addr add 192.168.1.10/24 dev ens33
ip addr add 192.168.1.11/24 dev ens33
ip addr add 2001:db8::10/64 dev ens33
(支持 IPv6) 验证是否生效:
ip addr show ens33
。输出中带
secondary
标记的即为后加的 IP。这些地址重启后会丢失,仅用于调试或应急部署。 永久保存配置(生产环境必须) 不同发行版写法略有差异,但核心逻辑一致:把
ip addr add
的操作固化到网络服务启动流程中。 RHEL/CentOS 7+/Rocky/AlmaLinux :编辑
/etc/sysconfig/network-scripts/ifcfg-ens33
,追加两行:
IPADDR1=192.168.1.10
NETMASK1=255.255.255.0
还可继续加
IPADDR2
、
NETMASK2
…… 注意不要写
GATEWAY
多次,仅主配置保留网关。 Ubuntu/Debian(netplan) :修改
/etc/netplan/*.yaml
,在对应网卡下添加
addresses
列表:
addresses: [192.168.1.10/24, 192.168.1.11/24]
配置完务必执行
sudo systemctl restart networking
(Debian)或
sudo systemctl restart NetworkManager
(RHEL 系)使新 IP 生效。 配合虚拟主机使用的注意事项 添加多个 IP 后,还需确认服务层面的支持: Apache:启用
NameVirtualHost *:80
(旧版)或直接用
显式绑定,避免端口冲突。 Nginx:每个
server
块用
listen 192.168.1.10:80
指定监听 IP,比
server_name
更可靠。 防火墙:确保
ufw
或
firewalld
允许对应 IP 的流量,例如
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.10" accept'
。 反向代理或 CDN 场景下,注意源 IP 获取逻辑(如
X-Forwarded-For
),避免日志记录失真。

相关文章