---
author: SK
category: 系统运维
comments_data:
- date: '2015-03-26 14:03:01'
  message: '@有道云笔记收藏'
  postip: 42.120.161.52
  username: 微博评论
- date: '2015-03-26 14:33:04'
  message: 很基本的知识，但实用，经常遇到
  postip: 58.216.139.42
  username: 微博评论
- date: '2015-03-26 14:33:04'
  message: 把设备作为文本文件来配置的Linux就是这么方便。不服弄个瘟逗死配置多地址或虚拟网卡试试？[doge]
  postip: 58.216.139.42
  username: 微博评论
- date: '2015-03-26 15:03:01'
  message: '[可怜]  该用mncli了，竟然还在用network。。。。'
  postip: 112.25.210.144
  username: 微博评论
- date: '2015-03-26 15:03:01'
  message: '@我的印象笔记'
  postip: 112.25.210.144
  username: 微博评论
- date: '2015-03-26 15:03:01'
  message: '@我的印象笔记'
  postip: 112.25.210.144
  username: 微博评论
- date: '2015-03-26 15:22:20'
  message: mark，好文章！！！
  postip: 113.106.106.98
  username: jbiaojerry
- date: '2015-03-26 16:03:01'
  message: '@我的印象笔记'
  postip: 180.153.206.33
  username: 微博评论
- date: '2015-03-26 16:34:41'
  message: Windows 配置多个 IP 地址很容易吧？
  postip: 222.173.107.116
  username: 绿色圣光
- date: '2015-03-26 17:33:01'
  message: '@有道云笔记收藏'
  postip: 218.30.103.250
  username: 微博评论
- date: '2015-03-26 20:33:02'
  message: Repost
  postip: 222.42.42.108
  username: 微博评论
- date: '2015-03-26 20:33:02'
  message: linux是不是可以说明中国现状？人民代表大会制度，资本主义管理？叉树制度，多线程层次管理？[笑cry]
  postip: 222.42.42.108
  username: 微博评论
- date: '2015-03-26 21:03:02'
  message: '@我的印象笔记'
  postip: 221.7.7.127
  username: 微博评论
- date: '2015-03-26 22:03:04'
  message: 备用
  postip: 171.223.103.116
  username: 微博评论
- date: '2015-03-26 23:33:02'
  message: Windows单接口多IP很简单，只是不能自主选择源IP很蛋疼。//@公民迈克:把设备作为文本文件来配置的Linux就是这么方便。不服弄个瘟逗死配置多地址或虚拟网卡试试？[doge]
  postip: 182.48.101.2
  username: 微博评论
- date: '2016-01-10 14:34:30'
  message: 最后一句话，不是一个系统里面只能配置一个默认网关吗？
  postip: 115.182.105.68
  username: NOZUONOHIGH [Chrome 45.0|Windows 10]
- date: '2016-09-27 14:36:52'
  message: "PREFIX0 对应IPADDR0<br />\r\nPREFIX1 对应IPADDR1<br />\r\nPREFIX3 对应IPADDR3<br
    />\r\n原文有错误，译文也没有更正。"
  postip: 218.29.137.76
  username: 来自河南郑州的 Chrome 50.0|Windows 10 用户
- date: '2016-09-27 23:59:57'
  message: 我没有机器试验，我觉得是 PREFIX0 会作为 PREFIX1 之类的默认值。
  postip: 123.112.140.251
  username: linux [Chrome 53.0|Mac 10.11]
- date: '2019-07-20 18:51:46'
  message: "window 不是更简单吗&nbsp; &nbsp; <br />\r\n<br />\r\n有鼠标的话"
  postip: 125.88.177.115
  username: 来自广东广州的 Chrome 75.0|Windows 7 用户
count:
  commentnum: 19
  favtimes: 9
  likes: 0
  sharetimes: 21
  viewnum: 53430
date: '2015-03-26 13:58:00'
editorchoice: false
excerpt: '有时你也许想要给一个网卡多个地址。你该怎么做呢？另外买一个网卡来分配地址？在小型网络中其实不用这么做。我们现在可以在CentOS/RHEL 7中给一个网卡分配多个ip地址。想知道怎么做么？好的，跟随我，这并不难。  首先，让我们找到网卡的IP地址。在我的CentOS
  7服务器中，我只使用了一个网卡。 用root特权运行下面的命令： ip addr  示例输出： 1: lo: LOOPBACK,UP,LOWER_UP mtu
  65536 qdisc noqueue state UNKNOWN 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_'
fromurl: http://www.unixmen.com/linux-basics-assign-multiple-ip-addresses-single-network-interface-card-centos-7/
id: 5127
islctt: true
largepic: /images/p/201503/26/101151p4cwwf5fr9wf4rtv.jpg
permalink: /article-5127-1.html
pic: /images/p/201503/26/101151p4cwwf5fr9wf4rtv.jpg.thumb.jpg
related:
- displayorder: 0
  raid: 6847
reviewer: ''
selector: ''
summary: '有时你也许想要给一个网卡多个地址。你该怎么做呢？另外买一个网卡来分配地址？在小型网络中其实不用这么做。我们现在可以在CentOS/RHEL 7中给一个网卡分配多个ip地址。想知道怎么做么？好的，跟随我，这并不难。  首先，让我们找到网卡的IP地址。在我的CentOS
  7服务器中，我只使用了一个网卡。 用root特权运行下面的命令： ip addr  示例输出： 1: lo: LOOPBACK,UP,LOWER_UP mtu
  65536 qdisc noqueue state UNKNOWN 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_'
tags:
- IP地址
thumb: false
title: 在CentOS 7上给一个网卡分配多个IP地址
titlepic: false
translator: geekpi
updated: '2015-03-26 13:58:00'
---

有时你也许想要给一个网卡多个地址。你该怎么做呢？另外买一个网卡来分配地址？在小型网络中其实不用这么做。我们现在可以在CentOS/RHEL 7中给一个网卡分配多个ip地址。想知道怎么做么？好的，跟随我，这并不难。


![](/images/p/201503/26/101151p4cwwf5fr9wf4rtv.jpg)


首先，让我们找到网卡的IP地址。在我的CentOS 7服务器中，我只使用了一个网卡。


用root特权运行下面的命令：



```
ip addr

```

示例输出：



```
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    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 qlen 1000
    link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3
       valid_lft forever preferred_lft forever

```

如上所见，我的网卡名是enp0s3，ip地址是192.168.1.150。


如你所知，网卡的配置文件存储在 **/etc/sysconfig/network-scripts/** 目录下。每个网卡的详细内容将会以不同的名字存储，比如**ifcfg-enp0s3**。


让我们看下**ifcfg-enp0s3**的细节。



```
cat /etc/sysconfig/network-scripts/ifcfg-enp0s3

```

示例输出：



```
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="e9f9caef-cb9e-4a19-aace-767c6ee6f849"
ONBOOT="yes"
HWADDR="08:00:27:80:63:19"
IPADDR0="192.168.1.150"
PREFIX0="24"
GATEWAY0="192.168.1.1"
DNS1="192.168.1.1"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"

```

好的，现在我们将在相同的子网中分配多个地址了。


编辑文件 **/etc/sysconfig/network-scripts/ifcfg-enp0s3**：



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

```

像下面那样加入额外的IP地址。



```
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"
ONBOOT="yes"
HWADDR="08:00:27:3F:AB:68"
IPADDR0="192.168.1.150"
IPADDR1="192.168.1.151"
IPADDR2="192.168.1.152"
PREFIX0="24"
GATEWAY0="192.168.1.1"
DNS1="192.168.1.1"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"

```

如你所见，我已经加了两个IP地址：**IPADDR1=”192.168.1.151″ & IPADDR2=”192.168.1.152″**


类似地，你可以加入更多的ip地址。


最后，保存并退出文件。重启网络服务来使更改生效。



```
systemctl restart network

```

现在，让我们检查是否已经加入了ip地址。



```
ip addr

```

示例输出：



```
: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    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 qlen 1000
    link/ether 08:00:27:3f:ab:68 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.1.151/24 brd 192.168.1.255 scope global secondary enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.1.152/24 brd 192.168.1.255 scope global secondary enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe3f:ab68/64 scope link 
       valid_lft forever preferred_lft forever

```

如你所见，单个网卡已经有3个ip地址了。


让我们ping一下新增的IP地址：



```
ping -c 4 192.168.1.151

```

示例输出：



```
PING 192.168.1.151 (192.168.1.151) 56(84) bytes of data.
64 bytes from 192.168.1.151: icmp_seq=1 ttl=64 time=0.048 ms
64 bytes from 192.168.1.151: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 192.168.1.151: icmp_seq=3 ttl=64 time=0.077 ms
64 bytes from 192.168.1.151: icmp_seq=4 ttl=64 time=0.077 ms

--- 192.168.1.151 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.048/0.069/0.077/0.013 ms

```



---



```
ping -c 4 192.168.1.152

```

示例输出：



```
PING 192.168.1.152 (192.168.1.152) 56(84) bytes of data.
64 bytes from 192.168.1.152: icmp_seq=1 ttl=64 time=0.034 ms
64 bytes from 192.168.1.152: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 192.168.1.152: icmp_seq=3 ttl=64 time=0.073 ms
64 bytes from 192.168.1.152: icmp_seq=4 ttl=64 time=0.075 ms

--- 192.168.1.152 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.034/0.064/0.075/0.018 ms

```

如果你想要使用**不同的子网**，你要改变**PREFIX0=24**成不同的子网，比如 **PREFIX1=16**。


比如，我想要添加一个A类地址（\**比如10.0.0.1*）到我的网卡中。



```
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"
ONBOOT="yes"
HWADDR="08:00:27:3F:AB:68"
IPADDR0="192.168.1.150"
IPADDR1="192.168.1.151"
IPADDR2="192.168.1.152"
IPADDR3="10.0.0.1"
PREFIX0="24"
PREFIX1=16
GATEWAY0="192.168.1.1"
DNS1="192.168.1.1"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"

```

你可以看到我已经添加一个A类地址(10.0.0.1)并且前缀是16。


保存并退出文件。重启网络服务，接着，ping新增的地址：



```
ping -c 4 10.0.0.1

```

示例输出：



```
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.097 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.073 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.074 ms
64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=0.075 ms

--- 10.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.073/0.079/0.097/0.014 ms

```

相似地，你可以添加不同的网关。


就是这样。




---


via: <http://www.unixmen.com/linux-basics-assign-multiple-ip-addresses-single-network-interface-card-centos-7/>


作者：[SK](http://www.unixmen.com/author/sk/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出