你们中有些人可能想知道为什么我们要为单个网卡分配多个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.105和192.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被永久分配。
在基于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地址。
保存并关闭文件。
使用以下命令重新启动网络服务:
#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
保存并关闭文件。
运行以下命令以使更改生效。
$ sudo ifdown enp0s3 && sudo ifup enp0s3
使用以下命令检查是否已添加新IP:
$ ip addr
样本输出:
使用以下命令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)相同。
保存并关闭文件。重新启动网络服务以使更改生效。
#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系列。