如何在Linux中为单个网卡分配多个IP地址

你们中有些人可能想知道为什么我们要为单个网卡分配多个IP地址。可能有很多原因。举例来说,您正在Linux盒子上进行一些需要两个或更多网卡的测试。你会买新的吗?不,没有必要!您可以为网卡设置多个IP系列,例如192.168.1.0、192.168.2.0、192.168.3.0等,并同时使用所有IP系列。听起来有用吗?当然是的!设置Internet共享服务器(如Squid代理)时,此方法可能会有所帮助。几年前,我已经为一位客户做到了这一点。他们的网络中有不同IP系列的计算机实验室,只有一台Squid代理服务器。因此,我在鱿鱼代理服务器中创建了多个IP系列,并将Internet共享到不同的网络。如果您曾经遇到过这样的情况,

在基于DEB的系统中为单个网卡分配多个IP地址

我在Ubuntu 16.04 LTS服务器版本上测试了本指南。但是,这将在Debian和其他基于DEB的系统上运行,例如Linux Mint,Elementary OS等。

您可能已经知道,我们可以使用以下命令在Ubuntu中找到IP地址:

$ ifconfig

要么

$ ip addr

样本输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host 
 valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 link/ether 08:00:27:12:f8:c1 brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.105/24 brd 192.168.1.255 scope global enp0s3
 valid_lft forever preferred_lft forever
 inet6 fe80::a00:27ff:fe12:f8c1/64 scope link 
 valid_lft forever preferred_lft forever

如上所示,我的网卡enp0s3的IP地址   是  192.168.1.105

很明显,我已经为网络卡分配了A类IP系列,即192.168.1.0。如果我需要其他系列,例如192.168.2.0怎么办?

只需运行以下命令来设置额外的IP。

$ sudo ip addr add 192.168.2.105/24 dev enp0s3

这里24表示网络掩码,即255.255.255.0。

现在,让我们检查是否已分配了新IP。

$ ip addr

样本输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host 
 valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 link/ether 08:00:27:12:f8:c1 brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.105/24 brd 192.168.1.255 scope global enp0s3
 valid_lft forever preferred_lft forever
 inet 192.168.2.105/24 scope global enp0s3
 valid_lft forever preferred_lft forever
 inet6 fe80::a00:27ff:fe12:f8c1/64 scope link 
 valid_lft forever preferred_lft forever

如您在上面的输出中看到的,我的网卡现在具有两个IP,即192.168.1.105192.168.2.105。同样,您可以根据需要分配任意数量的其他IP,例如192.168.3.105、192.168.4.105等。

让我们ping新的IP地址:

$ sudo ping -c 3 192.168.2.105

样本输出:

PING 192.168.2.105(192.168.2.105)56(84)个字节的数据。
来自192.168.2.105的64个字节:icmp_seq = 1 ttl = 64时间= 0.040 ms
来自192.168.2.105的64个字节:icmp_seq = 2 ttl = 64时间= 0.067 ms
来自192.168.2.105的64个字节:icmp_seq = 3 ttl = 64时间= 0.066 ms

-192.168.2.105 ping统计信息-
传输3个数据包,接收3个数据包,0%数据包丢失,时间2000ms
rtt最小值/平均值/最大值/ mdev = 0.040 / 0.057 / 0.067 / 0.015 ms

恭喜你!工作正常!

等等,我还没结束。到目前为止,我们所做的是暂时分配了新IP。重新启动系统后,新IP将消失。您如何永久制作?这也很简单。

永久分配多个IP地址:

编辑  /etc/network/interfaces文件:

$ sudo nano /etc/network/interfaces

现在,如下所示添加其他IP地址:

iface enp0s3 inet static
  address 192.168.2.105/24

保存并关闭文件。

运行以下命令以使保存的更改生效。

$ sudo ifdown enp0s3 && sudo ifup enp0s3

样本输出:

杀死了旧客户程序
Internet系统联盟DHCP客户端4.3.3
版权所有2004-2015 Internet系统联盟。
版权所有。
有关信息,请访问https://www.isc.org/software/dhcp/

在LPF / enp0s3 / 08:00:27:12:f8:c1上收听
在LPF / enp0s3 / 08:00:27:12:f8:c1上发送
发送套接字/后备
在enp0s3上的DHCPRELEASE到192.168.1.1端口67(xid = 0xe3877d4)
RTNETLINK答案:无法分配请求的地址
Internet系统联盟DHCP客户端4.3.3
版权所有2004-2015 Internet系统联盟。
版权所有。
有关信息,请访问https://www.isc.org/software/dhcp/

在LPF / enp0s3 / 08:00:27:12:f8:c1上收听
在LPF / enp0s3 / 08:00:27:12:f8:c1上发送
发送套接字/后备
enp0s3上的DHCPDISCOVER到255.255.255.255端口67间隔3(xid = 0x3080e44d)
enp0s3上的DHCPDISCOVER到255.255.255.255端口67间隔7(xid = 0x3080e44d)
enp0s3上的192.168.1.105的DHCPREQUEST到255.255.255.255端口67(xid = 0x4de48030)
来自192.168.1.1的192.168.1.105的DHCPOFFER
来自192.168.1.1的192.168.1.105的DHCPACK
绑定到192.168.1.105-在42937秒内更新。

现在,让我们运行以下命令来检查是否已分配了新的IP地址。

$ ip addr

样本输出:

分配多个IP地址1

在Ubuntu中分配多个IP地址

而已。另外,您可以在重启系统后进行检查。您将看到新IP被永久分配。

在基于RPM的系统中为单个网卡分配多个IP地址

我在CentOS 7 64位服务器版本上对此进行了测试。但是,相同的步骤也应在其他基于RPM的系统上运行,例如Fedora,Red hat Linux和Scientific Linux。

只需运行以下命令即可临时添加其他IP。

$ sudo ip addr addr 192.168.2.150/24 dev enp0s3

您可以立即开始使用新IP。

要永久添加IP地址,只需以root用户身份编辑网卡配置文件:

#vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

如下所示添加新的IP地址。

IPADDR1 ="192.168.2.150"

对于其他IP地址,添加“ IPADDR2 =” 192.168.3.150”行。您可以一一添加任意数量的IP地址。

分配多个IP地址2

在CentOS中分配多个IP地址

保存并关闭文件。

使用以下命令重新启动网络服务:

#systemctl restart network

使用以下命令验证新的IP地址:

#ip addr

样本输出:

1:lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc无队列状态UNKNOWN 
 链接/环回00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8范围主机lo
 永久有效_lft永久首选_lft
 inet6 :: 1/128作用域主机 
 永久有效_lft永久首选_lft
2:enp0s3:<广播,多播,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast状态UP qlen 1000
 链接/以太08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff:ff
 inet 192.168.1.150/24 brd 192.168.1.255作用域全局enp0s3
 永久有效_lft永久首选_lft
 inet 192.168.2.150/24 brd 192.168.2.255作用域全局enp0s3
 永久有效_lft永久首选_lft
 inet6 fe80 :: a00:27ff:fe80:6319/64作用域链接 
 永久有效_lft永久首选_lft

同样,添加任意数量的IP。

分配不同的班级IP地址

有五类可用的IP范围,即:A类,B类,C类,D类和E类。通常使用A,B和C类。

地址范围支持
A级1.0.0.1至126.255.255.254在127个网络中的每个网络上支持1600万个主机。
B级128.1.0.1至191.255.255.254在16,000个网络中的每个网络上支持65,000个主机。
C级192.0.1.1至223.255.254.254在200万个网络中的每一个上支持254个主机。
D级224.0.0.0至239.255.255.255为多播组保留。
E级240.0.0.0至254.255.255.254保留以供将来使用或研发目的。

资料来源: http : //www.computerhope.com/jargon/i/ip.htm

您可能会注意到,我在本指南中一直使用A类类型地址。

我想分配一个不同的IP类,例如A类(1.0.0.0系列)。可能吗?当然是的。

只需在网卡配置文件中添加您选择的IP地址即可。

在基于Ubuntu / Debian的系统中分配不同的类IP地址:

在基于DEB的系统中,编辑  /etc/network/interfaces文件:

$ sudo nano /etc/network/interfaces

添加IP地址:

iface enp0s3 inet static
  address 10.0.0.105/16
分配不同的类别IP地址3

在Ubuntu中分配不同的类IP地址

保存并关闭文件。

运行以下命令以使更改生效。

$ sudo ifdown enp0s3 && sudo ifup enp0s3

使用以下命令检查是否已添加新IP:

$ ip addr

样本输出:

分配多个IP地址4

使用以下命令Ping新的IP地址:

$ sudo ping -c 3 10.0.0.105

样本输出:

PING 10.0.0.105(10.0.0.105)56(84)个字节的数据。
从10.0.0.105开始的64个字节:icmp_seq = 1 ttl = 64时间= 0.042 ms
从10.0.0.105开始的64个字节:icmp_seq = 2 ttl = 64时间= 0.070 ms
从10.0.0.105开始的64个字节:icmp_seq = 3 ttl = 64时间= 0.055 ms

-10.0.0.105 ping统计信息-
传输3个数据包,接收3个数据包,0%数据包丢失,时间2000ms
rtt最小值/平均值/最大值/ mdev = 0.042 / 0.055 / 0.070 / 0.014 ms

像这样,我们可以在Ubuntu,Debian和Linux Mint和Elementary OS等派生产品中为单个网卡添加多个IP。

在基于CentOS / RHEL / Scientific Linux的系统中分配不同的类IP地址:

root用户身份编辑网卡配置文件:

#vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

如下所示添加新的IP地址。请注意,您必须为每个类别IP范围添加正确的前缀(网络掩码)。

让我们添加一个A类IP。例如10.0.0.150。

IPADDR2="10.0.0.150"
[...]
PREFIX2=16

确保每个网络的IPADDR编号(IPADDR 2)和PREFIX编号(PREFIX 2)相同。

在CentOS中分配不同的类IP地址

在CentOS中分配不同的类IP地址

保存并关闭文件。重新启动网络服务以使更改生效。

#systemctl restart network

使用以下命令检查新的IP:

#ip addr

样本输出:

1:lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc无队列状态UNKNOWN 
 链接/环回00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8范围主机lo
 永久有效_lft永久首选_lft
 inet6 :: 1/128作用域主机 
 永久有效_lft永久首选_lft
2:enp0s3:<广播,多播,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast状态UP qlen 1000
 链接/以太08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff:ff
 inet 192.168.1.150/24 brd 192.168.1.255作用域全局enp0s3
 永久有效_lft永久首选_lft
 inet 192.168.2.150/24 brd 192.168.255.255作用域全局enp0s3
 永久有效_lft永久首选_lft
 inet 10.0.0.150/16 brd 10.255.255.255作用域全局enp0s3
 永久有效_lft永久首选_lft
 inet6 fe80 :: a00:27ff:fe80:6319/64作用域链接 
 永久有效_lft永久首选_lft

让我们ping IP:

#ping -c 3 10.0.0.150

样本输出:

PING 10.0.0.150(10.0.0.150)56(84)字节数据。
从10.0.0.150开始的64个字节:icmp_seq = 1 ttl = 64时间= 0.097 ms
从10.0.0.150开始的64字节:icmp_seq = 2 ttl = 64时间= 0.100 ms
从10.0.0.150开始的64字节:icmp_seq = 3 ttl = 64时间= 0.105 ms

--- 10.0.0.150 ping统计信息---
传输3个数据包,接收3个数据包,0%数据包丢失,时间1999ms
rtt最小值/平均值/最大值/ mdev = 0.097 / 0.100 / 0.105 / 0.012 ms

新的IP地址已添加,并且可以正常工作。无需购买新卡,进行一些复杂的路由器配置或任何其他操作。使用这种方法,我们可以在几分钟内轻松添加多个不同的IP系列。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值