在 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

addrbr 是缩写 addressbroadcast 分别。

确认二级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 如果您已安装网络管理器包,则可用。

发射 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 系统上创建永久 IP 地址,使用 netplan 管理网络接口,则可以进行如下操作;

检查接口的当前 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

Save 并退出配置并重新启动网络;

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 地址