ESC

開始輸入,可搜尋發票、服務、域名、工單,以及 更多...

搜尋... Ctrl+K
站群與多 IP

站群伺服器 Linux 批次繫結 /24 整段 IP 教程:迴圈指令碼、Netplan、nmcli 與開機持久化

7 個步驟 6 分鐘閱讀 22 次閱讀 0
本文目錄

站群伺服器通常附帶一個或多個 /24(C 段)IP,一段就有 253 個以上可用地址,逐個手動新增既慢又容易出錯。本文介紹在站群伺服器 Linux 批次繫結 /24 整段 IP的方法:用迴圈指令碼快速繫結、寫入 Netplan 或 NetworkManager 實現持久化、用 systemd 開機自動繫結,並批次驗證。適用於 Ubuntu、Debian、CentOS/Rocky/AlmaLinux。

請先在客戶中心或交付郵件中確認 IP 段、可用範圍、字首長度和閘道器:登入客戶中心 → 我的產品與服務 → 選擇伺服器 → 管理;如找不到可提交工單。不同線路的可用範圍可能不同(例如網路地址、閘道器、廣播地址不可用),下文以 203.0.113.2–254/24 為例,請按實際分配修改。

步驟 1:確認網絡卡名稱與主 IP

先確認主網絡卡和預設路由,下文用 eth0 表示:

ip -br addr show
ip route show default

步驟 2:使用迴圈指令碼批次繫結 /24 IP(臨時)

一條 for 迴圈即可把整段 IP 繫結到網絡卡上,適合先測試是否全部可用。重啟後會失效:

for i in $(seq 2 254); do
  ip addr add 203.0.113.$i/24 dev eth0
done

只需新增地址,不要為附加 IP 段再新增預設閘道器,以免出現多條預設路由。

步驟 3:Ubuntu 使用 Netplan addresses 列表持久化

253 個地址手寫容易出錯,可以用命令生成 YAML 列錶行,再貼上到 /etc/netplan/ 配置檔案的 addresses 下:

for i in $(seq 2 254); do echo "        - 203.0.113.$i/24"; done

貼上後的結構類似:

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 198.51.100.5/24
        - 203.0.113.2/24
        - 203.0.113.3/24
        # ... 203.0.113.254/24
      routes:
        - to: default
          via: 198.51.100.1
netplan try
netplan apply
YAML 縮排必須使用空格且對齊一致。修改前請備份原檔案,並確認可以通過 VNC 控制臺登入,避免配置錯誤導致失聯。

步驟 4:CentOS / Rocky / AlmaLinux 使用 nmcli 批次持久化

NetworkManager 會把地址儲存到連線配置中,重啟後自動生效:

for i in $(seq 2 254); do
  nmcli connection modify eth0 +ipv4.addresses 203.0.113.$i/24
done
nmcli connection up eth0

批次修改可能需要一兩分鐘,執行期間請勿中斷。

步驟 5:Debian 或通用方案:systemd 開機自動繫結

對於 Debian(ifupdown)或不想改動網路配置檔案的場景,可以寫一個指令碼,由 systemd 在開機後執行。建立 /usr/local/bin/bind-ips.sh:

#!/bin/bash
# /usr/local/bin/bind-ips.sh
DEV=eth0
NET=203.0.113
for i in $(seq 2 254); do
  ip addr add ${NET}.${i}/24 dev ${DEV} 2>/dev/null
done
exit 0

再建立 /etc/systemd/system/bind-ips.service:

[Unit]
Description=Bind extra IPv4 block
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/bind-ips.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

賦予執行許可權並啟用:

chmod +x /usr/local/bin/bind-ips.sh
systemctl daemon-reload
systemctl enable --now bind-ips.service

使用 nmcli 管理網路的系統建議優先用步驟 4,避免 NetworkManager 重新啟用連線時清除指令碼新增的地址。

步驟 6:批次驗證 /24 IP 是否繫結成功

統計已繫結的數量,並抽樣測試出站 IP:

ip -4 addr show dev eth0 | grep -c "inet 203.0.113."
for i in 2 100 254; do curl -s --interface 203.0.113.$i https://ifconfig.me; echo; done

第一條命令應輸出 253(按實際數量)。curl 返回對應 IP 即說明該地址可正常出站。建議重啟一次確認持久化。

步驟 7:批次刪除整段 IP

for i in $(seq 2 254); do
  ip addr del 203.0.113.$i/24 dev eth0
done

持久化配置也需同步刪除:移除 Netplan 中的地址行、用 nmcli -ipv4.addresses 刪除,或停用 bind-ips.service。

常見問題

字首應該寫 /24 還是 /32?

取決於 IP 段是與主 IP 處於同一二層網路,還是路由到主 IP 上。請以交付資訊為準,不確定時提交工單確認。

部分 IP ping 不通怎麼辦?

先確認該 IP 在可用範圍內,並檢查防火牆;可用 arping 或 curl --interface 單獨測試。若仍不通,請將 IP 列表提交工單排查。

繫結大量 IP 會影響效能嗎?

幾百個地址對核心幾乎沒有影響,但 Netplan 應用時間會略長,屬正常現象。

如仍無法解決,可提交工單聯絡 IMIDC 7×24 技術支援。

這篇文章有幫助嗎?

相關教程