Як я можу (від CLI) призначити кілька IP-адрес одному інтерфейсу?


43

На своєму сервері я хочу призначити декілька IP-адрес одному NIC, але без використання застарілої ifconfigабо застарілої нотації "псевдонім" (як eth0:0) у /etc/network/interfacesтому, що в IP Aliasing (на www.kernel.org) ви можете читати

Псевдоніми IP - це застарілий спосіб управління декількома IP-адресами / масками в інтерфейсі


ifconfig застарілий? Я не знав.
Махеш

@Mahesh Так, ifconfig - артефакт епохи SysV. 'iproute2' - більш сучасний інструмент. ifconfig деякий час буде навколо різних дистрибутивів, але так, це застаріло; "застарілий" - це просто розмовна робота, яку ми позначали як "шукати щось нове для використання".
Девід Бетц

Відповіді:


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-адресою, встановивши з менеджера програмного забезпечення.
Майкл

Не потрібно перезавантажувати Ubuntu 16.04.3 LTS після додавання або видалення IP
Daniel F

1
схоже, що в нових версіях Ubuntu застарілий придушення.
Саджук

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 addrіip link
  • route -> ip route
  • arp -> ip neigh
  • iptunnel -> ip tunnel
  • ipmaddr -> ip maddr
  • netstat -> ss

Thx для надання відповідних команд.
guntbert

thx @chaos, ну чи можу я мати більше IP-адрес, ніж немає інтерфейсів у своїй системі ??
лазар

@jazzz так, як ви бачите на виході мого інтерфейсу вище, є два ip адреси, призначені йому (192.168.0.100 та 192.168.1.1). Ви можете додати ще одну, якщо бажаєте.
хаос

@chaos, але як я можу їх використовувати, наприклад, я хочу створити групу для багатоадресної передачі, чи можу я сформувати з них групу, чи можете ви зверніться до мого запитання askubuntu.com/questions/547105/…
lazarus

1
@chaos Я приймаю власну відповідь замість вашої чудової, тому що вашій бракує "стійкості", якої я очікую на конфігурації сервера.
guntbert

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.