我如何(从 CLI)为一个接口分配多个 IP 地址?

我如何(从 CLI)为一个接口分配多个 IP 地址?

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

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

答案1

  1. 如果你暂时需要一个额外的 IP 地址,你可以将它添加到你机器上的任何接口

     sudo ip address add <ip-address>/<prefix-length> dev <interface>
    

    例如

     sudo ip address add 172.16.100.17/24 dev eth0
    

    将添加172.16.100.17使用 24 位网络前缀列表的地址配置为您的 ip 地址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 会话将得以保留。

答案2

使用新工具包,添加新 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

答案3

一种方法是:

sudo ip addr add 192.168.0.2/24 dev eth1

相关内容