问题描述
在管理 Linux VPS 服务器时,经常需要进行 IP 地址的相关操作,例如为服务器添加额外的 IP 地址、将多个 IP 绑定到同一网卡,或在不再需要时删除多余的 IP。这些操作在多站点托管、隔离服务、SSL 证书部署等场景中尤为常见。
本文将针对主流的 Linux 发行版(包括 CentOS/RHEL、Ubuntu/Debian 以及使用 NetworkManager 或 netplan 的系统),详细介绍 IP 地址的添加、绑定和删除操作方法。
解决方案
一、查看当前 IP 配置信息
在进行任何 IP 操作之前,首先确认当前的网络配置状态:
ip addr show
或者使用旧版命令:
ifconfig -a
查看默认网关:
ip route show
查看当前 DNS 配置:
cat /etc/resolv.conf
二、临时添加 IP 地址(重启后失效)
使用 ip 命令可以快速临时添加一个 IP 地址到指定网卡:
ip addr add 192.168.1.100/24 dev eth0
其中:
192.168.1.100/24为要添加的 IP 地址及子网掩码(CIDR 格式)eth0为目标网卡名称(可通过ip link show查看实际网卡名)
验证是否添加成功:
ip addr show dev eth0
注意:此方法添加的 IP 在服务器重启后将丢失,适合临时测试使用。
三、永久添加 IP 地址(重启后保留)
方法一:CentOS/RHEL 系统(使用 ifcfg 配置文件)
1. 进入网络配置目录:
cd /etc/sysconfig/network-scripts/
2. 创建或编辑网卡的别名配置文件。例如,为 eth0 添加第二个 IP:
vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
3. 写入以下内容:
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
4. 重启网络服务使配置生效:
systemctl restart network
方法二:Ubuntu 18.04+ / Debian 10+(使用 netplan)
1. 编辑 netplan 配置文件:
vi /etc/netplan/01-netcfg.yaml
2. 修改配置,在 addresses 列表中添加新 IP:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.50/24
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
3. 应用配置:
netplan apply
方法三:Ubuntu 16.04 / 较旧的 Debian(使用 interfaces 文件)
1. 编辑网络配置文件:
vi /etc/network/interfaces
2. 添加以下内容:
auto eth0:0
iface eth0:0 inet static
address 192.168.1.100
netmask 255.255.255.0
3. 重启网络服务:
systemctl restart networking
四、删除 IP 地址
临时删除(立即生效)
ip addr del 192.168.1.100/24 dev eth0
验证删除结果:
ip addr show dev eth0
永久删除
根据您的系统类型,执行以下操作:
- CentOS/RHEL:删除对应的
ifcfg-eth0:X配置文件,然后重启网络服务 - Ubuntu netplan:从
addresses列表中移除对应 IP,然后执行netplan apply - Ubuntu/Debian interfaces:注释或删除
/etc/network/interfaces中对应的虚拟网卡配置段,然后重启网络服务
五、验证 IP 配置与连通性
完成 IP 操作后,请依次执行以下验证步骤:
- 确认 IP 已绑定成功:
ip addr show - 测试本地回环:
ping -c 4 127.0.0.1 - 测试新 IP 的外部连通性:
ping -c 4 -I 192.168.1.100 8.8.8.8 - 从外部设备测试新 IP 的可达性:
ping 192.168.1.100 - 检查端口监听状态:
ss -tlnp确认服务(如 Nginx、Apache)已监听新 IP 地址。
六、配置服务绑定特定 IP
添加 IP 后,通常还需要让具体的服务监听新 IP:
Nginx 示例
在 Nginx 配置文件的 server 块中指定监听 IP:
server {
listen 192.168.1.100:80;
server_name example.com;
...
}
Apache 示例
在 Apache 虚拟主机配置中使用 VirtualHost 指定 IP:
ServerName example.com
DocumentRoot /var/www/example
...
修改配置后,重启对应服务使更改生效。
附加提示
- 操作前备份配置文件:在修改任何网络配置文件之前,建议先创建备份,例如
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak,以便出错时快速恢复。 - 确认 IP 分配权限:确保您要添加的 IP 地址已由您的服务提供商分配给您。未经授权使用 IP 地址可能导致网络冲突或被封禁。
- 注意子网掩码格式:
ip addr命令使用 CIDR 格式(如/24),而传统配置文件使用点分十进制格式(如255.255.255.0),请根据配置方式选择正确格式。 - 保持 SSH 连接:在远程修改网络配置时,建议保留当前 SSH 会话不要关闭,同时开启一个新的终端窗口来测试新配置。如果配置错误,可以通过原会话进行修复。
- NetworkManager 用户:如果系统使用 NetworkManager 管理网络,推荐使用
nmcli工具进行 IP 管理,例如nmcli connection modify eth0 +ipv4.addresses "192.168.1.100/24",然后执行nmcli connection up eth0使配置生效。 - 防火墙配置:添加新 IP 后,别忘了检查防火墙规则(如
firewalld或iptables),确保新 IP 的相关端口已放行。 - 云平台安全组:如果您的 VPS 部署在云平台上(如 AWS、阿里云、腾讯云等),还需要在云控制台的安全组/防火墙规则中放行新 IP 的访问。