升级「尔湾公寓」节点 7 月 16 日–26 日陆续升级:更换运营商与 AT&T 开发版光猫,实测稳定性提升 80% 以上。受影响线路将短暂离线 5–10 分钟(洛杉矶时间 9:00–20:00)。 服务状态 →
返回博客

📘 教程:配置 VPS 使用多个不同网段公网 IP(跨网段适配方案)

必备知识 2025-05-31 08:21 2487 阅读 约 8 分钟

🧩 Debian 多网段公网 IP 配置教程(策略路由 + ARP 广播)

如果遇到这个问题可以联系客服 帮你操作 也可以按照教程操作

本教程适用于 VPS 有多个公网 IP,且这些 IP 属于 不同网段 的情况。
如果所有 IP 都在一个网段内,则无需进行以下操作


📘 系统说明

Debian 默认只允许一个主网关。如果你绑定多个不同网段的 IP,要让它们都能出网、被访问,就需要:

  • 为每个 IP 设置专属的路由表(策略路由)
  • 启动 ARP 广播,让网关识别这些非主 IP

✅ 示例环境

公网 IP 网关 用途
10.0.1.2/26 10.0.1.1 主 IP,默认出网
192.168.1.2/26 192.168.1.1 第二个 IP,需策略
192.168.2.2/26 192.168.2.1 第三个 IP,需策略

🟢 第一步:安装依赖工具

apt update
apt install -y curl arping iproute2

🟢 第二步:添加路由表(只执行一次)

echo "100 gw1" >> /etc/iproute2/rt_tables
echo "101 gw2" >> /etc/iproute2/rt_tables

🟢 第三步:创建路由配置脚本

保存为 /usr/local/sbin/setup-multi-ip.sh

cat > /usr/local/sbin/setup-multi-ip.sh << 'EOF'
#!/bin/bash

# 策略路由规则
ip rule add from 192.168.1.2 table gw1 || true
ip rule add from 192.168.2.2 table gw2 || true

# 每张表的默认网关
ip route replace default via 192.168.1.1 dev eth0 table gw1
ip route replace default via 192.168.2.1 dev eth0 table gw2

# 主默认网关(可选)
ip route replace default via 10.0.1.1 dev eth0

# 通告 ARP,确保入站可达
arping -c 3 -A -I eth0 192.168.1.2 || true
arping -c 3 -A -I eth0 192.168.2.2 || true
EOF

赋予执行权限并执行一次:

chmod +x /usr/local/sbin/setup-multi-ip.sh
bash /usr/local/sbin/setup-multi-ip.sh

🟢 第四步:设置开机启动服务

创建文件 /etc/systemd/system/multi-ip.service

cat > /etc/systemd/system/multi-ip.service << 'EOF'
[Unit]
Description=配置多网段 IP 的路由
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/setup-multi-ip.sh
RemainAfterExit=true

[Install]
WantedBy=multi-user.target
EOF

🟢 第五步:启用服务自动启动

systemctl daemon-reexec
systemctl daemon-reload
systemctl enable multi-ip.service
systemctl start multi-ip.service

✅ 验证配置是否成功

ip rule show
ip route show table gw1
ip route show table gw2

# 测试 IP 是否能出网
curl --interface 192.168.1.2 http://ifconfig.me
curl --interface 192.168.2.2 http://ifconfig.me

ℹ️ 补充说明

  • 每个 IP 使用独立路由表,确保能独立出网
  • arping 是广播 IP 存在的必要步骤,让网关知道这个 IP 存在于当前机器
  • 所有配置在重启后会自动恢复,无需每次手动设置

➕ 如何添加更多 IP?

只需在脚本中追加:

ip rule add from 新IP table 新表名
ip route replace default via 新网关 dev eth0 table 新表名
arping -c 3 -A -I eth0 新IP

即可支持更多不同网段的公网 IP。