)
很多时候做多 IP 业务、代理、容器、云测试环境时需要给一张网卡绑定大量 IP。如果直接手动ip addr add重启后会失效而且部分网络环境下使用netplan apply还会导致 IP 丢失。这里记录一种比较稳定的方案使用 Shell 脚本批量添加 IP使用 systemd 开机自动恢复避免修改复杂网络配置适合 Ubuntu / Debian / CentOS 等 Linux 系统一、创建批量添加 IP 脚本先创建脚本sudo vi /usr/local/bin/add_ips.sh写入以下内容根据自己的 IP 段修改#!/bin/bash IFACEeth0 # 第一组/24 段从 .2 到 .255 for BASE in 38.127.245; do for i in $(seq 2 255); do ip addr add $BASE.$i/24 dev $IFACE || true done done # 第二组/26 段从 .2 到 .64 for BASE in 156.240.216 156.240.217 156.240.218 156.240.219; do for i in $(seq 2 64); do ip addr add $BASE.$i/26 dev $IFACE || true done done echo 所有 IP 添加完毕。二、赋予脚本执行权限sudo chmod x /usr/local/bin/add_ips.sh三、创建 systemd 服务创建服务文件sudo vi /etc/systemd/system/ipalias.service写入以下内容[Unit] DescriptionAdd additional IP addresses Afternetwork-online.target Wantsnetwork-online.target [Service] Typeoneshot ExecStart/usr/local/bin/add_ips.sh RemainAfterExittrue [Install] WantedBymulti-user.target四、重新加载 systemd 并启动服务执行sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable ipalias.service sudo systemctl start ipalias.service五、检查 IP 是否添加成功查看网卡ip a如果看到大量新增 IP说明成功。六、重启测试如果 IP 仍然存在说明 systemd 自动恢复成功。七、重要注意事项1. 网卡名称可能不是 eth0现在很多系统网卡名类似ens3ens18enp1s0先查看真实网卡ip a2. 不建议使用netplan apply某些环境执行会清空手动添加 IP重置网卡导致业务掉线尤其是海外 VPS多 IP 代理环境云服务器NAT 网络比较容易出现问题。所以这里直接使用ip addr addsystemd 持久化。八、适用场景这个方案适合多 IP 服务器Socks5 / HTTP 代理IP 池测试环境容器环境海外云服务器大量 IP 漂移业务九、删除 IP 的方法如果需要删除ip addr del 38.127.245.2/24 dev eth0批量删除可以写一个对应的 remove 脚本。十、总结相比直接修改网络配置文件更简单更直观更容易批量化更适合大量 IPsystemd 自动恢复也比较稳定核心思路其实就是启动后自动执行 ip addr add如果后面有需要还可以继续扩展自动生成 IP随机 IP 调度多网卡绑定IPv6 批量添加开机自动检测修复配合代理程序自动分配出口 IP都可以继续玩。实在不会可以这样1.sudo vi /usr/local/bin/add_ips.sh创建批量添加脚本以下是脚本内容需要根据实际ip进行更改-----------------------------------------------------------------------------#!/bin/bashIFACEeth0# 第一组/24 段从 .2 到 .255for BASE in 38.127.245; dofor i in $(seq 2 255); doip addr add $BASE.$i/24 dev $IFACE || truedonedone# 第二组/26 段从 .2 到 .64for BASE in 156.240.216 156.240.217 156.240.218 156.240.219; dofor i in $(seq 2 64); doip addr add $BASE.$i/26 dev $IFACE || truedonedoneecho 所有 IP 添加完毕。---------------------------------------------------------------------2.sudo chmod x /usr/local/bin/add_ips.sh赋予脚本执行权限3.sudo vi /etc/systemd/system/ipalias.service创建 systemd 服务文件以下是脚本内容----------------------------------------------------------------------[Unit]DescriptionAdd additional IP addressesAfternetwork-online.targetWantsnetwork-online.target[Service]TypeoneshotExecStart/usr/local/bin/add_ips.shRemainAfterExittrue[Install]WantedBymulti-user.target------------------------------------------------------------------------4.sudo systemctl daemon-reexecsudo systemctl daemon-reloadsudo systemctl enable ipalias.servicesudo systemctl start ipalias.service重新加载 systemd 并启动服务5.ip a查看最后重启查看会不会掉不能用netplay apply 这个命令刷新网卡否则会掉帮我配置下ipcento或者ubantu系统xxx.xxx.xxx.x-xxx其中xxx.xxx.xxx.xxx是主ip这样喂给ai就可以直接一步一步复制了