在服务器上配置两个IP地址的核心方法,就是在系统的网络配置文件中为同一块物理网卡添加多个IP地址,操作路径非常明确,几分钟就能完成。
这个需求在实际工作中很常见,比如一台服务器同时承载网站和数据库、需要SSL证书独立IP、或者做端口分离和流量负载,下面直接从Linux和Windows最主流的两种系统讲起,把每一步命令和配置文件都写清楚。
为什么需要给服务器配置两个IP地址
服务器默认只有一张网卡、一个IP,但现实场景里,单IP往往不够用,常见的情况有三个:
- 业务隔离:网站跑在一个IP上,后台管理系统跑在另一个IP上,互不干扰,安全审计也更清晰。
- SSL证书绑定:有些老旧系统要求一个IP对应一个证书,多个域名就需要多个IP。
- 网络策略差异:一个IP用于内网通信,走内网带宽;另一个IP用于公网访问,走公网出口。
行业共识认为,合理规划服务器IP地址,是机房运维的基础工作之一,很多云服务商的控制台也支持直接给实例绑定多个私网IP,但如果是物理服务器或自建机房,就需要手动在系统里配置。
Linux服务器配置多个IP:图形界面和命令行都能做
Linux系统下配置两个IP,最简单的方式是修改网卡配置文件,也可以用命令行工具直接添加,下面所有命令都以最常见的CentOS 7/8和Ubuntu 20.04/22.04为例。
CentOS/RHEL系列:修改网卡配置文件
登录服务器后,先查看当前网卡名称,输入命令:
ip addr
一般情况下,第一块网卡叫ens33、eth0或enp0s3,记下这个名称,然后进入网络配置目录:
cd /etc/sysconfig/network-scripts/
用ls查看目录下有哪些文件,通常会看到ifcfg-ens33这样的文件。编辑这个文件前,建议先备份一份:
cp ifcfg-ens33 ifcfg-ens33.bak
然后用vi或nano编辑ifcfg-ens33,核心配置内容大致如下:
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=223.5.5.5
这里IPADDR是第一个IP,要加第二个IP,就在文件末尾追加以下内容:
IPADDR1=192.168.1.101
NETMASK1=255.255.255.0
注意,第二IP的变量名是IPADDR1和NETMASK1,以此类推,再要加第三个就是IPADDR2,保存退出后,重启网络服务让配置生效:
systemctl restart network
或者直接重启网卡:
ifdown ens33 && ifup ens33
执行完用ip addr show ens33查看,就能看到两块IP同时存在于同一张网卡上了。
Ubuntu/Debian系列:netplan配置方式
Ubuntu从18.04开始默认使用netplan管理网络,配置文件在/etc/netplan/目录下,是一个.yaml文件,用命令查看:
ls /etc/netplan/
一般是00-installer-config.yaml或者01-network-manager-all.yaml,编辑这个文件,典型配置如下:
network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses:
- 192.168.1.100/24
- 192.168.1.101/24
gateway4: 192.168.1.1
nameservers:
addresses: [223.5.5.5, 8.8.8.8]
关键在于addresses这个列表,它是YAML格式的数组,把两个IP地址和掩码都列在里面,用符号开头表示列表项,保存后应用配置:
netplan apply
然后查看是否生效:
ip addr show ens33
不用改配置文件:命令行临时添加
如果只是想临时加一个IP来测试,不需要重启网络服务,可以直接用ip命令:
ip addr add 192.168.1.102/24 dev ens33
这个命令立即生效,但重启服务器后就失效了,如果确认配置没问题,需要把它写进配置文件里持久化。
Windows服务器怎么添加第二个IP
Windows Server相比较Linux,图形化操作更直观,以Windows Server 2016/2019/2026为例。
图形化界面操作步骤
打开“控制面板” → “网络和共享中心” → “更改适配器设置”,或者直接在任务栏右键网络图标,进入“网络和Internet设置” → “更改适配器选项”。
找到“以太网”网卡,右键点击,选择“属性”,在列表中找到“Internet协议版本4(TCP/IPv4)”,选中后点击“属性”。
在常规选项卡里,选择“使用下面的IP地址”,填入第一个IP、子网掩码和默认网关,关键一步来了:点击下方的“高级”按钮。
在弹出的“高级TCP/IP设置”窗口中,在IP地址区域点击“添加”,填入第二个IP和对应的子网掩码,点击“添加”确认,然后一路点“确定”关闭所有窗口。
此时打开命令行,输入ipconfig,就能看到同一块网卡下挂了两个IP地址。
命令行配置方式
习惯用命令行的运维,也可以直接用netsh命令完成操作,以管理员身份打开PowerShell或CMD,先查看当前网卡名称:
netsh interface ip show config
记下“以太网”这个名称,然后执行以下命令:
netsh interface ip add address "以太网" 192.168.1.103 255.255.255.0
这条命令的含义是为名为“以太网”的网卡添加IP地址168.1.103,掩码为255.255.0,执行后直接在CMD里输入ipconfig验证。
配置两个IP后要做的验证和检查
添加完IP不等于万事大吉,有几件事必须确认。无论如何都要先检查IP是否生效:
- Linux下执行
ip addr show,Windows下执行ipconfig,确认两个IP都显示为UP状态。 - 用
ping命令测试两个IP的连通性,注意,在服务器本机ping自己有时会走loopback,建议从另一台机器分别ping这两个IP。
再检查路由表:
- Linux执行
ip route,Windows执行route print,确认默认路由指向正确的网关,避免两个IP抢默认路由导致网络异常。
如果第二IP是公网IP,还要确认机房或云平台的安全组、防火墙策略是否放通了对应的端口,很多时候服务器内部配置没问题,但外部访问不了,问题就出在上一层防火墙规则上。
多IP配置的注意事项和常见坑
下面几个情况是实际操作中经常遇到的。
默认网关冲突
如果两个IP设置了不同的网关,系统可能只会保留一个默认路由,解决办法是只让主IP配置默认网关,第二IP不填网关,或者手动添加策略路由。
对外访问的源地址
服务器主动对外发起连接(比如访问数据库、调用外部API)时,系统默认使用主IP作为源地址,如果希望特定应用走特定IP,需要用iptables做SNAT规则,或者给应用配置绑定IP参数。
多网卡 vs 单网卡多IP
给一台服务器配两个IP,有两种做法:一是单网卡多IP,二是多网卡各配一个IP,两者的区别在于:
- 单网卡多IP成本低,配置简单,但带宽共享,故障点集中。
- 多网卡多IP可以实现带宽叠加和链路冗余,物理隔离更好,但需要服务器有多个网口。
预算充足且对可靠性要求高的场景,建议优先用多网卡方案。
服务器配置两个IP的常见问题解答
Q:Linux下怎么查看服务器已经配置了哪些IP地址?
直接用命令ip addr show,或者ifconfig -a,输出结果里,inet后面的地址就是配置好的所有IP,同时也能看到这些IP绑定在哪块网卡上。
Q:配置了第二个IP地址后,从外部访问不通是什么原因?
排查顺序如下:先确认IP是否成功绑定,再检查系统防火墙是否放行,然后检查机房防火墙或云安全组规则,最后检查是否需要配置端口转发或路由策略,多数情况下,问题出在外部防火墙而非系统内部。
Q:云服务器和物理服务器配置多IP的方法一样吗?
底层原理一致,但操作入口不同,云服务器可以在控制台直接添加私网IP并绑定到实例,不需要登录系统操作;物理服务器则必须登录系统,在网卡配置里添加,具体操作请参考对应云厂商文档或机房运维手册。
给服务器配置两个IP地址,本质上是网络层面的一个小操作,但涉及的知识点不少,掌握Linux的网卡配置文件和netplan,以及Windows的图形化入口和netsh命令,就能应对绝大多数场景,配置完成后,务必逐一验证IP连通性、路由走向和防火墙放行状态,一套服务器多IP的规划,在项目初期就把IP使用规范和防火墙策略定义清楚,会省去后期很多麻烦。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%a6%82%e4%bd%95%e9%85%8d%e7%bd%ae%e4%b8%a4%e4%b8%aaip%e5%9c%b0%e5%9d%80%ef%bc%9f%ef%bc%8c%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%8f%8cip%e9%85%8d%e7%bd%ae%e6%96%b9%e6%b3%95/


