Как из консоли в Linux добавить второй IP-адрес?

На работе недавно потребовалось установить одному сетевому интерфейсу 2 IP-адреса. На операционной системе Windows сделать это проще простого и все это знают, но как же быть с Linux. Вопрос оказывается тоже простой и решается несколькими строчками кода.

В Linux, также как и в Windows добавить ip адрес очень просто. Давайте не будем откладывать это в долгий ящик и прямо сейчас всё сделаем.

Пред. история

На моей рабочей флешке пропали все данные и их нужно было как-то восстановить, но никакого софта для её восстановления под рукой не было, но был интернет в другой подсети. И вот для этого мне все это и понадобилось. Программа для восстановления данных с флешки нужна была проприетарная GetDataBack, которая умеет быстро и скрупулезно восстанавливать данные и к тому же отлично работает под Wine.

Установка

Чтобы не лить много воды, хочу сразу разделить все операционные системы Linux на 2 условные группы: основанные на RedHat (Fedore, CentOS, ASPLinux и так далее) и все остальные. Такое условное разделение на группы здесь не случайно, так как у RedHat и похожих на него операционных систем, есть одно явное отличие в настройке сетевых интерфейсов. У обычных Linux систем (вторая группы) все настройки сетевых интерфейсов, кроме исполняемых скриптов, лежат в /etc/network/, а у RedHat они исторически размещаются в /etc/sysconfig/network-scripts. Синтаксис и структура конфигурационных файлов также сильно отличается.

Добавить второй IP-адрес в RedHat/CentOS/ASPLinux и т.д.

В этих ОС конфигурации каждого интерфейса отведен отдельный файл. Если открыть директорию /etc/sysconfig/network-scripts, то можно их увидеть. Они имеют вид ifcfg-eth0, ifcfg-eth1 и т.д.

Чтобы добавить к существующему интерфейсу еще 1 IP-адрес, нам нужно создать новый файл ifcfg-eth0:1 с новыми настройками:

nano /etc/sysconfig/network-scripts/ifcfg-eth0:1

и в него поместить код:
REALDEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.2.1
NETMASK=255.255.255.0
ONBOOT=yes

Адрес и маска у Вас конечно же должны быть свои.

Добавить второй IP-адрес в Debian/Ubuntu и т.д.

Для этого необходимо открыть конфиг. /etc/network/interfaces:

sudo nano /etc/network/interfaces

В нем скорее всего будут уже настройки вашего интерфейса eth0. На моем подопытном сервере было так:
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
auto eth0

Для того, чтобы у этого интерфейса появился дополнительно второй IP-адрес, наш конфигурационный файл должен выглядеть так:

iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
auto eth0
iface eth0:1 inet static
address 192.168.2.1
netmask 255.255.255.0
auto eth0:1

Всё!

В примере получается, что одному сетевому интерфейсу было присвоено два IP-адреса с разных подсетей.

Комментарии:

  1. Дмитрий опубликовал комментарий 24 Июль 2013, 13:56 #

    Здравствуйте, Иван. Я – ваш коллега, администратор сайта http://litl-admin.ru. Хотел бы обменяться ссылками с вашим сайтом. E-mail для связи у вас есть! информация об обмене у меня на сайте в разделе “Обмен ссылками”

    | Ответить
    • itshaman опубликовал комментарий 14 Декабрь 2013, 19:56 #

      Но обмен не виду, из-за нехватки времени. Можете предложить статью для размещения на этом блоге, я размещу ее с вашей ссылкой. Сразу скажу, что статья нужна полезная.

      | Ответить
  2. tulun-admin опубликовал комментарий 3 Декабрь 2013, 10:14 #

    Скажите как такая настройка работает , стабильно ? То есть имеется ввиду при одновременном обращении клиентов из разных подсетей.

    | Ответить
    • itshaman опубликовал комментарий 14 Декабрь 2013, 19:55 #

      Работает идеально

      | Ответить
Имя
e-mail
Сайт
Текст комментария: