在 Linux 接口上創建虛擬/輔助 IP 地址


按照本教程了解如何在 Linux 中為接口創建虛擬/輔助 IP 地址。這允許您將多個 IP 地址分配給單個接口。

在 Linux 接口上創建虛擬/輔助 IP 地址

您可以為 Linux 中的接口臨時或永久創建虛擬/輔助 IP 地址。

為 Linux 接口創建臨時虛擬/輔助 IP 地址

要為 Linux 中的接口創建臨時虛擬/輔助 IP 地址,您可以使用以下內容: ip, ifconfig.

利用 ip 使用該命令為接口創建/添加輔助 IP 地址。請參見下面的示例。

本例中的服務器有一個名為 enp0s8.

顯示接口的當前 IP 地址。

ip add show dev enp0s8
3: enp0s8:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:c4:23:c9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.108/24 brd 192.168.56.255 scope global noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::d524:3777:b321:5ed/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
,multicast,up,lower_up>

分配給接口的主 IP 地址是 192.168.56.108.

假設您要臨時分配一個輔助 IP 地址。 192.168.56.109, 利用 ip 命令;

ip addr add 192.168.56.109/24 br 192.168.56.255 dev enp0s8

這個 addr 什麼時候 br 是縮寫 address 什麼時候 broadcast 分別。

檢查輔助 IP 地址分配。

ip add show dev enp0s8
3: enp0s8:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:c4:23:c9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.108/24 brd 192.168.56.255 scope global dynamic noprefixroute enp0s8
       valid_lft 394sec preferred_lft 394sec
    inet 192.168.56.109/24 brd 192.168.56.255 scope global secondary enp0s8 
       valid_lft forever preferred_lft forever
    inet6 fe80::d524:3777:b321:5ed/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
,multicast,up,lower_up>

如果您重新啟動網絡、關閉接口或重新啟動服務器,您將丟失分配的 IP 地址。

為 Linux 接口創建永久虛擬/輔助 IP 地址

在 CentOS 和類似的 RHEL 衍生產品上創建輔助 IP 地址。

使用 nmcli 命令創建輔助 IP 地址

CentOS 和類似的衍生產品上提供了一個簡單的 NetworkManager 命令行工具。 nmcli.

默認情況下,此命令在 Ubuntu/Debian 系統上可能不可用。如果是這樣,如果您想使用它,請安裝網絡管理器包(network-manager)。

首先檢查接口連接名稱。

nmcli con show

con 是縮寫 connection.

樣本輸出;

NAME                UUID                                  TYPE      DEVICE 
enp0s8              e59e1c2f-bda2-4704-9f4a-67e8cce636d9  ethernet  enp0s8 
Wired connection 1  a7d294d4-05d9-3724-832e-6b80dc288a24  ethernet  enp0s3

在這種情況下,將虛擬/輔助 IP 添加到接口。 enp0s8連接名稱 enp0s8.

這個可以用 nmcli 命令是:消息 plus(+)ipv4.addresses.

nmcli con mod enp0s8 +ipv4.addresses 192.168.56.109/24

mod 是縮寫 modify.

刪除並啟動界面。 我假設您直接從控制台登錄 而不是通過 ssh。

nmcli con down enp0s8 && nmcli con up enp0s8

檢查輔助 IP 地址分配。

ip add show dev enp0s8
3: enp0s8:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:c4:23:c9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.108/24 brd 192.168.56.255 scope global noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet 192.168.56.109/24 brd 192.168.56.255 scope global secondary noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::d524:3777:b321:5ed/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
,multicast,up,lower_up>

使用 nmcli 命令刪除輔助 IP 地址: minus(-)ipv4.addresses.

nmcli con mod enp0s8 -ipv4.addresses 192.168.56.109/24
nmcli con down enp0s8 && nmcli con up enp0s8

使用 nmtui(網絡管理器 GUI)創建輔助 IP 地址

nmtui 如果您安裝了 Network Manager 軟件包,則可用。

發布 nmtui 從終端(您可以使用 Tab 鍵瀏覽設置);

nmtui

選擇 編輯鏈接 然後點擊 好的.

選擇要編輯的接口。在這種情況下 enp0s8 然後點擊 編輯;

[IPV4 構成]向下滾動並單擊。 添加 輸入您的 IP 地址。

然後點擊 好的 底部 > 返回 > 啟用連接 > 好的.

選擇一個接口以將其停用。

選擇接口並重新激活它。

選擇 返回 > 結束.

檢查 IP 地址分配。

ip add show dev enp0s8
ip add show dev enp0s8
3: enp0s8:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:c4:23:c9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.108/24 brd 192.168.56.255 scope global noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet 192.168.56.109/24 brd 192.168.56.255 scope global secondary noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::d524:3777:b321:5ed/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
,multicast,up,lower_up>

同樣,可以使用 nmcli 命令或直接從 nmtui 工具中刪除它。

在 Ubuntu 18.04/Ubuntu 20.04 系統上創建輔助 IP 地址

要在 Ubuntu 18.04/Ubuntu 20.04 系統上使用 netplan 創建永久 IP 地址並管理網絡接口,請執行以下步驟:

檢查接口的當前IP地址。

ip add show dev enp0s8
3: enp0s8:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:56:39:94 brd ff:ff:ff:ff:ff:ff
    inet 192.168.59.14/24 brd 192.168.59.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe56:3994/64 scope link 
       valid_lft forever preferred_lft forever
,multicast,up,lower_up>

接口的當前網絡規劃配置。

cat /etc/netplan/00-installer-config.yaml
network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: no
      addresses: [192.168.59.14/24]
      routes:
              - to: 0.0.0.0/0
                via: 192.168.59.1
                metric: 101
      nameservers:
              addresses: [8.8.8.8]
  version: 2

編輯配置文件以向接口添加輔助 IP 地址。

cp /etc/netplan/00-installer-config.yaml{,.old}
vim /etc/netplan/00-installer-config.yaml

更新行。

addresses: [192.168.59.14/24]

它可能看起來像這樣。

addresses: [192.168.59.14/24, 192.168.59.15/24]

配置如下所示:

network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: no
      addresses: [192.168.59.14/24, 192.168.59.15/24]
      routes:
              - to: 0.0.0.0/0
                via: 192.168.59.1
                metric: 101
      nameservers:
              addresses: [8.8.8.8]
  version: 2

應用配置更改。

netplan apply

檢查 IP 地址分配

ip add show dev enp0s8

在您的 Debian 系統上創建輔助 IP 地址

同樣,更新接口以添加輔助 IP 地址,如下所示:

示例接口配置。

cat /etc/network/interfaces
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp

auto enp0s8
iface enp0s8 inet static
	address 192.168.58.22
	netmask 255.255.255.0
	gateway 192.168.58.1
	broadcast 192.168.58.255
	dns-nameservers 8.8.8.8

添加輔助 IP 地址。

cp /etc/network/interfaces{,.old}

按如下方式更新您的配置

vim /etc/network/interfaces
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp

auto enp0s8
iface enp0s8 inet static
	address 192.168.58.22
	netmask 255.255.255.0
	gateway 192.168.58.1
	broadcast 192.168.58.255
	dns-nameservers 8.8.8.8
auto enp0s8:0
iface enp0s8:0 inet static
	address 192.168.58.23
	netmask 255.255.255.0

查看添加的配置。

auto enp0s8:0
iface enp0s8:0 inet static
	address 192.168.58.23
	netmask 255.255.255.0

保存設置,退出並重新啟動網絡。

systemctl restart networking

檢查您的 IP 地址。

ip add show dev enp0s8
3: enp0s8:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:2b:b4:61 brd ff:ff:ff:ff:ff:ff
    inet 192.168.58.22/24 brd 192.168.58.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet 192.168.58.23/24 brd 192.168.58.255 scope global secondary enp0s8:0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe2b:b461/64 scope link 
       valid_lft forever preferred_lft forever
,multicast,up,lower_up>

這是在 Linux 的接口上創建虛擬/輔助 IP 地址的方法。

在 Linux 中使用 NMCLI 命令連接到 WiFi

為 OpenVPN 客戶端分配靜態 IP 地址

在 Ubuntu 20.04/18.04 上使用 Netplan 配置靜態 IP 地址