Как добавить дополнительный IP-адрес в / etc / network / interfaces?

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)? И как мне затем перезапустить его, чтобы принять новую конфигурацию?

babbaggeii
источник
Что это за набор символов? Где вы это нашли?
Зеленый

Ответы:

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метод , он работал.
х-юрий
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 не ждет этого. Сервисы systemd, такие как nginx, не смогут связываться с IP, добавленными upво время запуска
sdaffa23fdsf
Для Debian Stretch / Ubuntu 16.04 Xenial или более поздней версии есть официальное решение .
х-юрий
22

Как указывает Хейхачи, использование ethx: x aliases устарело. Однако ip addrрешение хуже. Это некрасиво и неполно, так как вам придется добавить downвариант или ifdownон не будет работать очень чисто.

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

Вилмер
источник
2
Из документации по вашей ссылке, говоря о самом современном методе выполнения действий (называемом iproute2): обратите внимание, однако, что этот метод опасен ! Определенные комбинации драйверов и оборудования могут иногда не вызывать связь, если для интерфейсов псевдонимов не назначены метки. Учитывая, что это официальная документация о том, что новый способ не такой надежный, я бы предпочел придерживаться устаревшего.
действительно
1
Upvote из-за официальной и точной ссылки на документацию, но не для «лучшего решения», поскольку в официальной документации это помечено как опасное.
действительно хорошо
2
@reallynice Разумная точка зрения, хотя ИМХО, если это вызывает проблемы в системе, которая звучит для меня как глючное ядро ​​/ драйвер. Я годами использую несколько IP-адресов на одном интерфейсе без уродливых псевдонимов: 0 /: 1 / etc (также я почти уверен, что решение из вики функционально эквивалентно решению Робби, описанному выше)
Уилмер
@ 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-адрес был отключен).
х-юрий