如何(通过CLI)将多个IP地址分配给一个接口?


43

在我的服务器上,我想为一个NIC分配多个IP地址,但不使用已弃用ifconfig或过时的“别名”表示法(如eth0:0),/etc/network/interfaces因为在IP别名(在www.kernel.org上)中,您可以阅读

IP别名是一种过时的方法,用于管理每个接口的多个IP地址/掩码


ifconfig已弃用?我不知道
Mahesh

@Mahesh是的,ifconfig是SysV时代的产物。“ iproute2”是更现代的工具。在各种发行版中,ifconfig会出现一段时间,但是,是不推荐使用的;“不赞成使用”只是一种口语化,我们过去曾用它来表示“寻找较新的东西”。
David Betz

Answers:


48
  1. 如果目前仅需要其他IP地址,则可以使用以下方法将其添加到计算机上的任何接口中:

     sudo ip address add <ip-address>/<netmask> dev <interface>
    

    例如

     sudo ip address add 172.16.100.17/24 dev eth0
    

    172.16.100.17使用24位网络掩码添加到为您配置的地址列表中eth0

    您可以使用

    ip address show eth0
    

    您可以使用再次删除该地址

    sudo ip address del 172.16.100.17/24 dev eth0
    

    当然,当您重新启动计算机时,这些更改会丢失。

  2. 要使其他地址成为永久地址,您可以/etc/network/interfaces通过添加尽可能多的表格节来编辑文件

    iface eth0 static
        address 172.16.100.17/24
    

    这样看起来

    iface eth0 inet dhcp
    
    iface eth0 inet static
        address 172.16.100.17/24
    
    iface eth0 inet static
        address 172.16.24.11/24
    

    您甚至可以将保留dhcp为主要地址。

    要在不重新启动使用激活这些设置ifdown/ifup

    sudo ifdown eth0 && sudo ifup eth0
    

    这是至关重要的把那两个命令放到一个行,如果你是远程处理到服务器,因为第一个会放弃你的连接!通过这种方式,ssh会话将继续存在。


您可以通过从软件管理器进行安装,使一个VPN地址多于一个IP地址。
2014年

添加或删除IP后,无需在Ubuntu 16.04.3 LTS上重新启动
Daniel F

1
似乎在较新的Ubuntu版本中不建议使用ifdown。
Sajuuk

20

使用新的工具箱,与添加旧的IP地址一样容易:

ip addr add 192.168.1.1/24 dev eth0

当寻找ip addr show再次,你看到分配给该接口的第二个IP地址:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global eth0
    inet 192.168.1.1/24 scope global eth0
    inet6 fe80::223:54ff:fe45:f307/64 scope link
       valid_lft forever preferred_lft forever

使用以下命令删除该IP地址:

ip addr del 192.168.1.1/24 dev eth0

iproute2套件:

iproute2套件是用于通过netlink协议在内核和用户空间之间进行进程间通信的通信套件。它应该替代整个标准的网络工具。这是它们替换的内容:

  • ifconfig-> ip addrip link
  • route -> ip route
  • arp -> ip neigh
  • iptunnel -> ip tunnel
  • ipmaddr -> ip maddr
  • netstat -> ss

Thx用于提供匹配的命令。
贡伯特2014年

thx @chaos,那么我可以拥有比系统上没有接口更多的ip吗?
lazarus 2014年

@jazzz是的,正如您在上述界面的输出中所看到的,为它分配了2个IP地址(192.168.0.100和192.168.1.1)。您可以根据需要添加另一个。
混乱

@chaos,但我如何使用它们,一个实例我想创建一个组组播,,我可形成从他们一组,,你可以请参阅我的问题askubuntu.com/questions/547105/...
拉扎勒斯

1
@chaos我接受我自己的答案,而不是您的出色答案,因为您的答案缺乏我希望在服务器配置上使用的“永久性”。
guntbert

0

一种方法是:

sudo ip addr add 192.168.0.2/24 dev eth1
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.