Як додати додаткову IP-адресу до / etc / network / interface?


42

У мене на сервері доступна додаткова IP-адреса, і тому мені потрібно призначити її у файлі інтерфейсів. На даний момент у мене є таке:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address aaa.aaa.aaa.aaa
netmask 255.255.254.0
gateway bbb.bbb.bbb.bbb
dns-nameservers ccc.ccc.ccc.ccc ddd.ddd.ddd.ddd eee.eee.eee.eee
dns-search vps-number.com

Що додати, щоб призначити свою нову IP-адресу (fff.fff.fff.fff)? І як потім перезапустити його, щоб прийняти нову конфігурацію?


Який набір символів це? Де ти це знайшов?
Зелений

Відповіді:


55
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address aaa.aaa.aaa.aaa
  netmask 255.255.254.0
  gateway bbb.bbb.bbb.bbb
  dns-nameservers ccc.ccc.ccc.ccc ddd.ddd.ddd.ddd eee.eee.eee.eee
  dns-search vps-number.com

auto eth0:0
iface eth0:0 inet static
  address fff.fff.fff.fff
  netmask 255.255.254.0

Тоді ви можете бігти, sudo ifup eth0:0щоб піднести його і sudo ifdown eth0:0збити.


4
Це застарілий варіант із псевдонімами. Використовуйте нижче один із "ip addr" замість цього.
Олександр Кім

5
Він може бути старим (а може бути і застарілим), але немає нічого поганого у використанні цього методу, оскільки він не був позначений "застарілим" і не планується його видалення найближчим часом. ІМХО цей метод чистіший і безпечніший за інші (див . Відповідь Вілмера та його коментарі).
Ерік Карвальо

PS Якщо використання auto eth1(це не було на AWS) не працює, як у прикладі auto eth0:0.
IvRRimUm

Старе рішення для мене не працювало на Debian Stretch, і я закінчився лише другим IP-адресою. Дивіться iproute2метод , він спрацював.
x-yuri

24

Для додаткової IP-адреси я зазвичай додаю:

up ip addr add fff.fff.fff.fff/prefixlen dev eth0

внизу iface eth0 inet staticстрофи для майбутніх перезавантажень, а потім знову запустіть команду sudo ip addr add fff.fff.fff.fff/prefixlen dev eth0вручну, щоб активувати її безпосередньо.

Якщо ваша мережна маска, 255.255.254.0то prefixlenповинна бути 23для вас.

Я хотів би дізнатися, чи є кращий спосіб.


велике спасибі, прийнятий підхід не працює для зв’язування ( ifenslave ), але це так!
mekkanizer

upпроблематично, оскільки network-online.target не чекає цього. такі системні сервіси, як nginx, не зможуть прив’язатись до IP, доданого upу час запуску
sdaffa23fdsf

Для Debian Stretch / Ubuntu 16.04 Xenial або новішої версії є офіційне рішення .
x-yuri

22

Як зазначає Хейхачі, використання псевдонімів etx: x застаріло. Однак ip addrрішення гірше. Це некрасиво і неповно, оскільки вам доведеться також додати downваріант або ifdownне буде працювати дуже чисто.

Див. Https://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_Interface для кращого рішення: Тепер ви можете просто повторити строки iface для того ж інтерфейсу. Тож просто рішення вище, але киньте :xсуфікс.


2
З документації за вашим посиланням, що розповідає про найсучасніший метод виконання дій (званий iproute2): Однак зауважте, що цей метод небезпечний ! Деякі комбінації драйверів та апаратних засобів іноді не можуть налагодити посилання, якщо для інтерфейсів псевдоніму не присвоєні мітки. Враховуючи, що це офіційна документація, яка говорить про те, що новий спосіб не такий надійний, я вважаю за краще дотримуватися робочого застарілого.
realnice

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

2
@reallynice Розумна точка, хоча IMHO, якщо це викликає проблеми в системі, яка мені звучить як баггі ядро ​​/ драйвер. Я використовував декілька IP-адрес на одному інтерфейсі без негарних псевдонімів 0 /: 1 / і т. Д. (Також я впевнений, що рішення з Вікі функціонально еквівалентно рішенням Роббі вище.)
Вілмер

@Wilmer У мене є пристрій vmxnet3 (VMware ESXi 6.5) на Ubuntu 16.04, і я міг лише отримати новий спосіб підняти перший пристрій. Видалення суфікса: x явно не було для мене кращим. Документація усунула помилку, яку я отримував із суфіксом: x.
jbo5112

Останнє відоме питання з iproute2методом було у 2015 році . І застарілий метод (ви помітили ім'я?) Не працював для мене на Debian Stretch. Здавалося, пізніші варіанти (від eth0:0) переосмислили попередні ( from eth0). Тобто після того, як systemctl restart networkingя закінчився лише з другим IP (перший IP був від'єднаний).
x-yuri
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.