Linux多IP绑定需四层联动实现业务隔离:①同网段临时/永久绑定IP;②跨网段配策略路由隔离流量;③服务显式绑定指定IP避免监听冲突;④防火墙按IP精细化控制。任一层缺失均导致隔离失效。
Linux多IP绑定不是简单地给网卡加几个地址,关键在业务隔离——让不同服务走不同IP、不同路由、互不干扰。配置错一步,可能引发端口冲突、流量误导或安全暴露。
适用于Web、FTP等需要多个公网IP对外提供服务的场景,所有IP在同一子网内。
以ens33为例,主IP为192.168.1.10/24,新增192.168.1.11和192.168.1.12:
ip addr add 192.168.1.11/24 dev ens33
ip addr add 192.168.1.12/24 dev ens33
DEVICE=ens33:0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.11
NETMASK=255.255.255.0
- 192.168.1.11/24
- 192.168.1.12/24
当不同业务需走不同出口(如:监控走专线、用户访问走BGP、后台API走内网),仅绑IP不够,必须配合策略路由(policy routing)。
假设:
• 主网卡ens33:192.168.1.10/24(默认路由)
• 新增IP10.10.20.5/24(属10.10.20.0/24网段)
• 该网段网关为10.10.20.1,专用于后台服务通信
ip addr add 10.10.20.5/24 dev ens33
200 admin_rt
ip route add 10.10.20.0/24 dev ens33 src 10.10.20.5 table admin_rt
ip route add default via 10.10.20.1 table admin_rt
ip rule add from 10.10.20.5/32 table admin_rt
ip rule add to 10.10.20.5/32 table admin_rt
多IP不等于服务自动分流。Nginx、MySQL、SSH等必须显式指定监听地址,否则默认监
听0.0.0.0,所有IP都响应,失去隔离意义。
listen 192.168.1.11:80;,而非listen 80;
bind-address = 10.10.20.5,只允许后台系统通过该IP连接ListenAddress 192.168.1.10(运维管理IP),禁用其他IP接入ss -tlnp | grep :80 查看监听的是哪个IPIP绑定+策略路由+服务绑定后,还需iptables/nftables按源/目标IP做访问控制,实现真正业务隔离。
iptables -A INPUT -d 10.10.20.5 -p tcp --dport 22 -s 10.10.10.0/24 -j ACCEPT
iptables -A INPUT -d 10.10.20.5 -p tcp --dport 22 -j DROP
iptables -A FORWARD -s 192.168.1.0/24 -d 10.10.20.0/24 -j REJECT
业务隔离不是堆IP,而是IP、路由、服务配置、防火墙四层联动。每层漏一个,隔离就形同虚设。实际部署时,建议先用tcpdump -i ens33 host 10.10.20.5验证流量路径,再上线服务。