Linux服務器單網卡如何配置多個的IP地址?

在 Linux 服務器上,即使只有一個網卡,也可以為其配置多個 IP 地址。這種配置方式通常用于支持多站點部署、虛擬主機、站群或其他需要多個 IP 地址的場景。以下是詳細的配置方法,包括永久性和臨時性配置的步驟。
1. 配置多個 IP 地址的方式
Linux 系統支持兩種方式為單個網卡配置多個 IP 地址:
- 別名 IP(Alias IP):為網卡創建別名,例如
eth0:1。 - 直接綁定多個 IP:直接將多個 IP 地址綁定到網卡(推薦方式)。
2. 臨時配置多個 IP 地址
臨時配置的 IP 地址在服務器重啟后會失效,適合測試或臨時使用。
2.1 使用 ip 命令
-
添加一個新 IP 地址:
baship addr add 192.168.1.101/24 dev eth0- 192.168.1.101/24:新添加的 IP 地址和子網掩碼。
- eth0:網卡名稱(可以用
ip link show查看網卡名稱)。
-
添加多個 IP 地址:
baship addr add 192.168.1.102/24 dev eth0 ip addr add 192.168.1.103/24 dev eth0 -
驗證配置:
baship addr show eth0輸出示例:
plaintext2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.101/24 scope global secondary eth0 inet 192.168.1.102/24 scope global secondary eth0 -
刪除一個 IP 地址:
baship addr del 192.168.1.101/24 dev eth0
2.2 使用 ifconfig 命令
-
添加一個別名 IP:
bashifconfig eth0:1 192.168.1.101 netmask 255.255.255.0 up- eth0:1:表示網卡別名。
- 192.168.1.101:新添加的 IP 地址。
-
添加多個別名 IP:
bashifconfig eth0:2 192.168.1.102 netmask 255.255.255.0 up ifconfig eth0:3 192.168.1.103 netmask 255.255.255.0 up -
查看當前配置:
bashifconfig -
刪除別名 IP:
bashifconfig eth0:1 down
3. 永久配置多個 IP 地址
永久配置可以使 IP 地址在服務器重啟后仍然生效。以下是針對不同 Linux 發行版的配置方法。
3.1 配置文件路徑簡介
- RHEL/CentOS/Rocky Linux:
/etc/sysconfig/network-scripts/ - Debian/Ubuntu:
/etc/network/interfaces - 其他發行版:可能有類似路徑,但需要查閱對應文檔。
3.2 RHEL/CentOS 系列(NetworkManager 配置)
方法 1:使用配置文件
-
編輯網卡主配置文件:
bashnano /etc/sysconfig/network-scripts/ifcfg-eth0 -
配置多個 IP 地址:
在文件中添加以下內容:plaintextDEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 # 添加多個 IP 地址 IPADDR1=192.168.1.101 NETMASK1=255.255.255.0 IPADDR2=192.168.1.102 NETMASK2=255.255.255.0 -
重啟網絡服務:
bashsystemctl restart network
方法 2:使用別名配置文件
-
為每個 IP 地址創建一個別名配置文件:
- 主配置文件:
ifcfg-eth0 - 別名配置文件:
ifcfg-eth0:1,ifcfg-eth0:2
- 主配置文件:
-
示例配置:
主網卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0:plaintextDEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1別名配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0:1:plaintextDEVICE=eth0:1 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.101 NETMASK=255.255.255.0別名配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0:2:plaintextDEVICE=eth0:2 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.102 NETMASK=255.255.255.0 -
重啟網絡:
bashsystemctl restart network
3.3 Debian/Ubuntu 系列
-
編輯網絡接口配置文件:
bashnano /etc/network/interfaces -
添加多個 IP 地址:
plaintextauto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 # 添加額外的 IP 地址 iface eth0:1 inet static address 192.168.1.101 netmask 255.255.255.0 iface eth0:2 inet static address 192.168.1.102 netmask 255.255.255.0 -
重啟網絡服務:
bashsystemctl restart networking
3.4 使用 nmcli 工具(適用于 NetworkManager)
-
為網卡添加額外的 IP 地址:
bashnmcli connection modify eth0 +ipv4.addresses 192.168.1.101/24 nmcli connection modify eth0 +ipv4.addresses 192.168.1.102/24 -
重新加載配置:
bashnmcli connection up eth0 -
驗證配置:
bashnmcli device show eth0
4. 驗證配置是否成功
4.1 使用 ip addr 檢查
執行以下命令,查看網卡是否綁定了多個 IP 地址:
bash
ip addr show eth0
4.2 測試網絡連通性
- 測試每個 IP 地址是否可以正常訪問:
bash
ping -c 3 192.168.1.100 ping -c 3 192.168.1.101 ping -c 3 192.168.1.102
4.3 使用 curl 測試服務
- 如果為每個 IP 地址配置了服務(如 Web 服務),可以使用
curl測試:bashcurl http://192.168.1.101
5. 注意事項
-
避免 IP 沖突:
- 確保分配的多個 IP 地址在同一網段中是唯一的,避免 IP 沖突。
-
網關配置:
- 通常只為主 IP 地址配置默認網關,額外的 IP 地址無需配置網關。
-
防火墻配置:
- 如果使用防火墻(如
iptables或ufw),需要為每個 IP 地址開放對應的服務端口。
- 如果使用防火墻(如
-
重啟后生效:
- 確保永久配置正確,否則重啟服務器后可能丟失配置。
通過以上方法,您可以在單網卡的 Linux 服務器上成功配置多個 IP 地址,滿足多站點部署、站群優化或其他業務需求。

浙公網安備 33010602011771號