Несколько ip адресов на одном интерфейсе centos
Практика настройки нескольких IP адресов на конкретном сетевом интерфейсе называется IP алиасинг (назначение псевдонимов IP). IP алиасинг полезен, когда вы устанавливаете несколько сайтов на виртуальных веб-хостинг на одним интерфейсе, или поддерживаете несколько соединений к сети, каждое из которых обслуживает разные цели. Вы можете назначить несколько IP адресов на один сетевой интерфейс из одной подсети или из полностью разных подсетей
Все существующие дистрибутивы Linux, включая CentOS, поддерживают IP алиасинг. Вот как связать несколько IP адресов с одним сетевым интерфейсом на CentOS.
3 января стартует курс «SQL-injection Master» © от команды The Codeby
За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.
На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.
Запись на курс до 10 января. Подробнее .
Если вы хотите настроить IP алиасинг на лету, есть два способа сделать это. Первый — это использовать ifconfig, а другой метод — это использовать команду ip. Используя эти два метода, позвольте мне показать вам, как добавить два дополнительных IP адреса к eth0.
Используя первый метод:
Используя второй метод:
Для просмотра списка всех IP адресов, назначенных на eth0 с использованием какого-либо из этих методов, запустите следующую команду.
Если вы использовали ifconfig для создания IP псевдонимов, вы также можете использовать ту же самую команду для их просмотра.
Если вы хотите навсегда назначить несколько IP адресов на один интерфейс, создайте соответствующие файлы конфигурации в /etc/sysconfig/network-scripts.
После того, как вы создали столько файлов конфигурации, сколько IP адресов хотите назначить, перезапустите сеть для активации IP псевдонимов.
1 декабря стартует зимний поток курса " Тестирование Веб-Приложений на проникновение " от команды codeby . Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, активный фаззинг, уязвимости, пост-эксплуатация, инструментальные средства, Social Engeneering и многое другое. На курс можно записаться до 10 декабря включительно. Подробнее .
One thought to “Как назначить несколько IP-адресов на один сетевой интерфейс на CentOS”
У меня вопрос такой, как на одной сетевой карте запустить несколько пограммных интерфейсов с dhcp
В данной статье мы рассмотрим способы настройки сети в системах Linux CentOS 7/8, покажем, как настраивать сетевых интерфейсов через конфигурационные файлы, основные утилиты для настройки сети и многое другое. Это актуальная тема, так как изначально настройка любого сервера начинается с настройки на нем сети.
В статье мы покажем особенности настройки сети в CentOS 7 с помощью стандартного сервиса network. Посмотрим, как использовать для настройки сети NetworkManager (NM), который предлагается по-умолчанию в CentOS 8.
Именование сетевых интерфейсов в CentOS
Классическая схема именования сетевых интерфейсов в Linux присваивает имена eth0, eth1 и так далее по порядку. Но эти имена не привязываются жестко к интерфейсам и после перезагрузки при наличии нескольких сетевых интерфейсов, эти имена могут поменяться. Это может доставлять некоторые проблемы, при настройке, например, межсетевого экрана через firewalld или iptables. В связи с этим начиная с RedHat 7 и CentOS 7, решено было назначать имена сетевых интерфейсов на основе иерархии различных схем именования. По умолчанию systemd будет поочередно применять схемы именования, остановившись на первой доступной и применимой. Имена присваиваются в автоматическом режиме, остаются неизменными даже если аппаратные средства добавлены или изменены. С другой стороны, такие имена интерфейсов менее читабельны, например, enp5s0 или ens3, чем традиционные eth0 и eth1.
Можно вернуться к стандартному имени интерфейса Linux с помощью следующих действий.
Отредактируйте файл /etc/default/grub:
В строку GRUB_CMDLINE_LINUX нужно добавить:
Пример полной строки:
Обновите конфигурацию grub:
Переименуйте конфигурационный файл сетевого интерфейса:
И заменить значение DEVICE:
Сохраните файл, перезагрузите сервер и проверьте все ли в порядке:
Интерфейс теперь называется eth0.
Первоначальная настройка сети при установке CentOS
Изначально при установке CentOS Linux, вы можете настроить сетевой интерфейс в графическом режиме в пункте меню “Network & Hostname”. В данном пункте вы указываете имя сервера, добавляете нужный IP адрес и шлюз, DNS и многое другое. Более подробную настройку на данном шаге, вы можете посмотреть в статье по ссылке выше.
Ручная настройка конфигурационного файла сетевого интерфейса в CentOS
Выведем список доступных сетевых интерфейсов в системе:
Файлы конфигурации сети вашего сервера хранятся в каталоге /etc/sysconfig/network-scripts. Эти файлы создает демон NetworkManager для каждого сетевого интерфейса. В нашем случае файл конфигурации называется ifcfg-eth0 (у вас может отличаться в зависимости от схемы именования сетевого интерфейса).
Рассмотрим основные параметры:
Исходя из этой информации, настроим сетевой интерфейс.
Настройка статического IP адреса в CentOS
Откроем файл для редактирования:
В этом примере я указал статический IP адрес, маску подсети, шлюз и несколько DNS серверов. Включаем автозапуск интерфейса:
После всех модификаций, нужно выполнить рестарт сервиса network. Если все в порядке, вы получите такой листинг:
Также можно просто перезапустить все профили подключений :
Получение динамического IP адреса для интерфейса через DHCP
Если ваш сервер должен получить IP адрес от DHCP севера, откройте конфигурационный файл интерфейса и измените настройки:
То есть мы убрали все настройки, связанные с IP-адресами и маской, а так же поменяли способ назначения IP-адреcа на dhcp (BOOTPROTO=”dhcp”). После всех изменений, не забываем выполнять перезагрузку network.
Как отключить IPv6 в CentOS?
На время написания статьи активного использования ipv6 в России нет, да и зачастую если таковая возможность имеется, администраторы предпочитают протокол ipv4. Поэтому если вы все же не используете данный протокол, его нужно отключить на сервере. Если вы точно уверены, что ни один из сервисов не настроен под работу с ipv6, можете сразу перейти к настройке сетевого интерфейса, если же нет, то начните с проверки. Нам нужно проверить, какие сервисы используют ipv6 и отключить данный протокол в конфигурации сервиса. Запустим команду:
У меня сервер тестовый, поэтому ipv6 используется только для sshd и cronyd. Это можно определить по “. ”.
Чтобы не возникало проблем после отключения ipv6 в конфигурации сети, отключите данный протокол в сервисах, в которых они используются на вашем сервере. Например для sshd, нужно открыть конфигурационный файл:
И раскомментируйте строки:
После чего перезапустите сервис:
Как видим, для sshd протокол ipv6 теперь недоступен. Проделайте аналогичные настройки со всеми сервисами.
Перейдем к отключению протокола ipv6 в настройках сети. Откройте файл /etc/sysctl.conf:
Сохраните файл и примените через:
Перейдем к файлу /etc/sysconfig/network. Добавьте в него следующую конфигурацию:
Из файла конфигурации сетевого интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0 удалите строку:
И наконец добавим запрет на работу ipv6 в grub:
В конец строки GRUB_CMDLINE_LINUX, добавляем:
После всех настроек, сохраните файл и обновите grub:
Выполните перезагрузку сервера и проверьте конфигурацию сети:
Протокол ipv6 на сервере отключен.
Как указать DNS сервера для сетевого интерфейса в CentOS?
Настроить DNS-сервера для вашего сервера, вы можете с помощью файла /etc/resolv.conf или указать их в настройках сетевого интерфейса. При настройке static конфигурации для сетевого интерфейса, мы уже указывали DNS-сервера, через параметры:
Установите нужные вам DNS-сервера и перезагрузите сервис network.
В файл /etc/resolv.conf, DNS-сервера прописываются автоматически при перезагрузке сервера, забирая их с файла конфигурации сети. Если же вы не указали DNS-сервера при настройке сети, пропишите их вручную в файл /etc/resolv.conf:
Как настроить несколько IP адресов на одном сетевом интерфейсе CentOS?
Если вам нужно использовать несколько IP-адресов на одном сетевом интерфейсе, настройку можно выполнить через алиас интерфейса или же добавив дополнительный IP-адрес в основной файл конфигурации.
И измените его следующим образом:
IPADDR1 — первый IP-адрес
IPADDR2 — второй IP-адрес
GATEWAY — основной шлюз
Либо создайте alias к вашему основному файлу конфигурации:
И добавьте несколько строк, без основного шлюза:
После всех настроек нужно выполнить перезапуск сети:
В Windows тоже можно настроить несколько IP адресов (алиасов) на одном интерфейсе.Настройка VLAN (802.1Q) в CentOS
Подробнее о настройке нескольких VLAN для одного сетевого интерфейса в CentOS мы говорили в статье: Настройка VLAN на сетевом интерфейсе в CentOS.
Настройка нескольких сетевых интерфейсов в CentOS
Если у вас на сервере несколько сетевых интерфейсов, для них можно указать разные IP-адреса. Разберемся как это сделать. Если у вас на сервере более одного сетевого интерфейса, команда “ip a” должна отобразить эту информацию:
Чтобы сконфигурировать второй интерфейс, нужно создать для него файл:
И добавьте следующую конфигурацию:
После этого на сервере нужно установить шлюз по умолчанию. Проверим какой шлюз установлен в данный момент и при необходимости поменяем его:
В качестве основного шлюза у нас выступает интерфейс eth1. Я же хочу использовать eth0, для этого изменим его:
Если вы хотите, чтобы данная настройка сохранилась после перезагрузки сервера, добавьте эти команды в rc.local (см. статью об автозагрузке сервисов в CentOS).
Полезные команды по работе с сетью в CentOS
Утилиты администрирования сети в CentOS
Если сервер уже работает некоторое время или же настройкой занимались вообще не вы, первое действие которое нужно сделать, это узнать какие интерфейсы присутствуют на сервере. Для удобства установите необходимые инструменты из базового репозитория:
После установки, можно воспользоваться утилитой ifconfig:
Как видим, имя нашего сетевого интерфейса eth0.
Без установки пакета net-tools, вы можете проверить ваши интерфейсы с помощью следующей команды:
Результат будет практически тот же:
Управление сетью с помощью NetworkManager в CentOS 8
В CentOS 8 для настройки сети рекомендуется использовать только NetworkManager. Эта служба управление сетевыми подключениями, контролирует настройки и применяет изменения к сетевым адаптерам.
Чтобы проверить статус NM, используйте команду:
В CentOS предлагается использовать для настройки сети командную консоль nmcli или графическую утилиту nmtui.
Чтобы перейти в режим настройк сети, введите команду:
При выборе первого пункта, у вас откроется окно с выбором сетевого интерфейса для редактирования:
Выбираем нужный нам интерфейс и редактируем:
Нам доступно редактирование имени, IP-адреса, Шлюза, DNS-серверов. Так же в интерактивном меню NM, мы можем изменить способ назначения IP адреса, на DHCP:
Замените “manual” на “automatic”:
После чего сохраните настройки. С помощью nmtui в графическом режиме, вы можете выполнить любые настройки, которые выполняете вручную через конфигурационные файлы. Если вы предпочитаете использовать командную строку для настройки интерфейсов, можете использовать nmcli. Например, следующие команды изменят IP адрес, щлюз и DNS сервера для интерефейса eth1.
Для применения изменений, перезагрузите интерфейс:
Если же вам удобнее работать с файлами конфигурации, установите через yum отдельный пакет network-scripts (в CentOS 8 по умолчанию его нет):
После установки данного пакета, вы можете редактировать настройки сети, как мы описывали ранее, через конфигурационные файлы:
Для эффективного разграничения разных подсетей придумано огромное количество решений, начиная от vlan`ов с динамической маршрутизацией и заканчивая физическим развязыванием локальных сетей между собой. Каждый решает как ему проще и дешевле.
Продвинутые профи, которые много времени посвятили администрированию RedHat систем и имеют корпоративные тарифы Билайн, знают, что сетевые настройки этого семейства операционных систем находятся немного не там, где обычно.
Исторически сложилось так, что все настройки сети в CentOS хранятся в директории /etc/sysconfig/network-scripts. В этой директории есть файлы ifcfg-eth0, ifcfg-eth1. в которых находятся настройки сети по каждому интерфейсу.
Если открыть один из этих файлов, то можно увидеть настройки. К примеру так у меня выглядит файл ifcfg-eth0:
BOOTPROTO =static
IPADDR =192.168.0.1
NETMASK =255.255.255.0
ONBOOT =yes
Эти настройки оставляем как есть. Нам необходимо создать другой файл с именем ifcfg-eth0:1 и содержимым:
BOOTPROTO =static
IPADDR =192.168.1.1
NETMASK =255.255.255.0
ONBOOT =yes
Думаю, это не создаст дополнительных трудностей. После создания файла, требуется запустить новое соединение командой:
После этого шаманства Вы получите 2 IP-адреса на одном сетевом интерфейсе. Если у Вас используется не CentOS, а какая-то другая операционная система, то как добавить ip адрес можно узнать на сайте AdminWay. Можно просто пробежаться глазами для того чтобы знать.
- Ключи репозитория в Ubuntu
- Ускоряем свою работу в терминале
- Как изменить имя интерфейса с eth0 на eth1 в Debian?
- Проблемы при работе с Virtualbox
- Планета на рабочем столе или динамические обои в Linux
- Создание, редактирование и удаление SWAP в Linux
- Как установить новый пакет значков в Ubuntu?
и получим два device:
REALDEVICE =eth0
и
REALDEVICE =eth0:1
В данной статье мы рассмотрим способы настройки сети в системах Linux CentOS 7/8, покажем, как настраивать сетевых интерфейсов через конфигурационные файлы, основные утилиты для настройки сети и многое другое. Это актуальная тема, так как изначально настройка любого сервера начинается с настройки на нем сети.
В статье мы покажем особенности настройки сети в CentOS 7 с помощью стандартного сервиса network. Посмотрим, как использовать для настройки сети NetworkManager (NM), который предлагается по-умолчанию в CentOS 8.
Именование сетевых интерфейсов в CentOS
Классическая схема именования сетевых интерфейсов в Linux присваивает имена eth0, eth1 и так далее по порядку. Но эти имена не привязываются жестко к интерфейсам и после перезагрузки при наличии нескольких сетевых интерфейсов, эти имена могут поменяться. Это может доставлять некоторые проблемы, при настройке, например, межсетевого экрана через firewalld или iptables. В связи с этим начиная с RedHat 7 и CentOS 7, решено было назначать имена сетевых интерфейсов на основе иерархии различных схем именования. По умолчанию systemd будет поочередно применять схемы именования, остановившись на первой доступной и применимой. Имена присваиваются в автоматическом режиме, остаются неизменными даже если аппаратные средства добавлены или изменены. С другой стороны, такие имена интерфейсов менее читабельны, например, enp5s0 или ens3, чем традиционные eth0 и eth1.
Можно вернуться к стандартному имени интерфейса Linux с помощью следующих действий.
Отредактируйте файл /etc/default/grub:
В строку GRUB_CMDLINE_LINUX нужно добавить:
Пример полной строки:
Обновите конфигурацию grub:
Переименуйте конфигурационный файл сетевого интерфейса:
И заменить значение DEVICE:
Сохраните файл, перезагрузите сервер и проверьте все ли в порядке:
Интерфейс теперь называется eth0.
Первоначальная настройка сети при установке CentOS
Изначально при установке CentOS Linux, вы можете настроить сетевой интерфейс в графическом режиме в пункте меню “Network & Hostname”. В данном пункте вы указываете имя сервера, добавляете нужный IP адрес и шлюз, DNS и многое другое. Более подробную настройку на данном шаге, вы можете посмотреть в статье по ссылке выше.
Ручная настройка конфигурационного файла сетевого интерфейса в CentOS
Выведем список доступных сетевых интерфейсов в системе:
Файлы конфигурации сети вашего сервера хранятся в каталоге /etc/sysconfig/network-scripts. Эти файлы создает демон NetworkManager для каждого сетевого интерфейса. В нашем случае файл конфигурации называется ifcfg-eth0 (у вас может отличаться в зависимости от схемы именования сетевого интерфейса).
Рассмотрим основные параметры:
- DEVICE – имя сетевого адаптера, совпадает с именем в системе, у нас это eht0
- BOOTPROTO – способ назначения IP-адреса (static — статическое значение, указываем в ручную. dhcp — получить адрес автоматически)
- IPADDR – IP-адрес
- NETMASK – маска подсети
- GATEWAY – шлюз по умолчанию
- DNS1 – Основной DNS-сервер
- DNS2 — альтернативный DNS-сервер
- ONBOOT — способ запуска сетевого интерфейса (yes – автоматически, no – вручную)
- UUID – уникальный идентификатор сетевого интерфейса. Можно сгенерировать самостоятельно командой uuidgen.
- IPV4_FAILURE_FATAL – отключение сетевого интерфейса с IP-адресом v4, если он имеет неверную конфигурацию (yes – отключить, no – не отключать)
- IPV6_FAILURE_FATAL – отключение сетевого интерфейса с IP-адресом v6, если он имеет неверную конфигурацию (yes – отключить, no – не отключать)
- IPV6_AUTOCONF – разрешает или запрещает автоконфигурирование Ipv6 с помощью протокола
- IPV6_INIT – включение возможности использования адресации Ipv6(yes – адресация может использоваться, no – не используется)
- PEERROUTES – устанавливает приоритет настройки шлюза по умолчанию, при использовании DHCP
- IPV6_PEERROUTES — устанавливает приоритет настройки шлюза по умолчанию, при использовании DHCP для IPv6
Исходя из этой информации, настроим сетевой интерфейс.
Настройка статического IP адреса в CentOS
Откроем файл для редактирования:
В этом примере я указал статический IP адрес, маску подсети, шлюз и несколько DNS серверов. Включаем автозапуск интерфейса:
После всех модификаций, нужно выполнить рестарт сервиса network. Если все в порядке, вы получите такой листинг:
Также можно просто перезапустить все профили подключений :
Получение динамического IP адреса для интерфейса через DHCP
Если ваш сервер должен получить IP адрес от DHCP севера, откройте конфигурационный файл интерфейса и измените настройки:
То есть мы убрали все настройки, связанные с IP-адресами и маской, а так же поменяли способ назначения IP-адреcа на dhcp (BOOTPROTO=”dhcp”). После всех изменений, не забываем выполнять перезагрузку network.
Как отключить IPv6 в CentOS?
На время написания статьи активного использования ipv6 в России нет, да и зачастую если таковая возможность имеется, администраторы предпочитают протокол ipv4. Поэтому если вы все же не используете данный протокол, его нужно отключить на сервере. Если вы точно уверены, что ни один из сервисов не настроен под работу с ipv6, можете сразу перейти к настройке сетевого интерфейса, если же нет, то начните с проверки. Нам нужно проверить, какие сервисы используют ipv6 и отключить данный протокол в конфигурации сервиса. Запустим команду:
У меня сервер тестовый, поэтому ipv6 используется только для sshd и cronyd. Это можно определить по “. ”.
Чтобы не возникало проблем после отключения ipv6 в конфигурации сети, отключите данный протокол в сервисах, в которых они используются на вашем сервере. Например для sshd, нужно открыть конфигурационный файл:
И раскомментируйте строки:
После чего перезапустите сервис:
Как видим, для sshd протокол ipv6 теперь недоступен. Проделайте аналогичные настройки со всеми сервисами.
Перейдем к отключению протокола ipv6 в настройках сети. Откройте файл /etc/sysctl.conf:
Сохраните файл и примените через:
Перейдем к файлу /etc/sysconfig/network. Добавьте в него следующую конфигурацию:
Из файла конфигурации сетевого интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0 удалите строку:
И наконец добавим запрет на работу ipv6 в grub:
В конец строки GRUB_CMDLINE_LINUX, добавляем:
После всех настроек, сохраните файл и обновите grub:
Выполните перезагрузку сервера и проверьте конфигурацию сети:
Протокол ipv6 на сервере отключен.
Как указать DNS сервера для сетевого интерфейса в CentOS?
Настроить DNS-сервера для вашего сервера, вы можете с помощью файла /etc/resolv.conf или указать их в настройках сетевого интерфейса. При настройке static конфигурации для сетевого интерфейса, мы уже указывали DNS-сервера, через параметры:
Установите нужные вам DNS-сервера и перезагрузите сервис network.
В файл /etc/resolv.conf, DNS-сервера прописываются автоматически при перезагрузке сервера, забирая их с файла конфигурации сети. Если же вы не указали DNS-сервера при настройке сети, пропишите их вручную в файл /etc/resolv.conf:
Как настроить несколько IP адресов на одном сетевом интерфейсе CentOS?
Если вам нужно использовать несколько IP-адресов на одном сетевом интерфейсе, настройку можно выполнить через алиас интерфейса или же добавив дополнительный IP-адрес в основной файл конфигурации.
И измените его следующим образом:
IPADDR1 — первый IP-адрес
IPADDR2 — второй IP-адрес
GATEWAY — основной шлюз
Либо создайте alias к вашему основному файлу конфигурации:
И добавьте несколько строк, без основного шлюза:
После всех настроек нужно выполнить перезапуск сети:
Настройка VLAN (802.1Q) в CentOS
Подробнее о настройке нескольких VLAN для одного сетевого интерфейса в CentOS мы говорили в статье: Настройка VLAN на сетевом интерфейсе в CentOS.
Настройка нескольких сетевых интерфейсов в CentOS
Если у вас на сервере несколько сетевых интерфейсов, для них можно указать разные IP-адреса. Разберемся как это сделать. Если у вас на сервере более одного сетевого интерфейса, команда “ip a” должна отобразить эту информацию:
Чтобы сконфигурировать второй интерфейс, нужно создать для него файл:
И добавьте следующую конфигурацию:
После этого на сервере нужно установить шлюз по умолчанию. Проверим какой шлюз установлен в данный момент и при необходимости поменяем его:
В качестве основного шлюза у нас выступает интерфейс eth1. Я же хочу использовать eth0, для этого изменим его:
Если вы хотите, чтобы данная настройка сохранилась после перезагрузки сервера, добавьте эти команды в rc.local (см. статью об автозагрузке сервисов в CentOS).
Полезные команды по работе с сетью в CentOS
- ifdown eth1 — отключить указанный сетевой интерфейс.
- ifup eth1 – поднять указанный сетевой интерфейс.
- ifconfig – проверить информацию о всех интерфейсах.
- ifconfig -a | grep ether | gawk '' — команда для вывода MAC-адресов интерфейсов
- ip a | grep ether | gawk '' — тоже самое, только через утилиту ip a
- service network restart или systemctl restart network – перезапустить сервис network с помощью systemctl
- systemctl restart NetworkManager.service – перезапустить NM
- ip route или ip route show — посмотреть таблицу маршрутизации
- ping host – пропинговать указанный хост
- whois domain – получить информацию whois для домена
- dig domain – получить DNS информацию о домене
Утилиты администрирования сети в CentOS
Если сервер уже работает некоторое время или же настройкой занимались вообще не вы, первое действие которое нужно сделать, это узнать какие интерфейсы присутствуют на сервере. Для удобства установите необходимые инструменты из базового репозитория:
После установки, можно воспользоваться утилитой ifconfig:
Как видим, имя нашего сетевого интерфейса eth0.
Без установки пакета net-tools, вы можете проверить ваши интерфейсы с помощью следующей команды:
Результат будет практически тот же:
Управление сетью с помощью NetworkManager в CentOS 8
В CentOS 8 для настройки сети рекомендуется использовать только NetworkManager. Эта служба управление сетевыми подключениями, контролирует настройки и применяет изменения к сетевым адаптерам.
Чтобы проверить статус NM, используйте команду:
В CentOS предлагается использовать для настройки сети командную консоль nmcli или графическую утилиту nmtui.
Чтобы перейти в режим настройк сети, введите команду:
При выборе первого пункта, у вас откроется окно с выбором сетевого интерфейса для редактирования:
Выбираем нужный нам интерфейс и редактируем:
Нам доступно редактирование имени, IP-адреса, Шлюза, DNS-серверов. Так же в интерактивном меню NM, мы можем изменить способ назначения IP адреса, на DHCP:
Замените “manual” на “automatic”:
После чего сохраните настройки. С помощью nmtui в графическом режиме, вы можете выполнить любые настройки, которые выполняете вручную через конфигурационные файлы. Если вы предпочитаете использовать командную строку для настройки интерфейсов, можете использовать nmcli. Например, следующие команды изменят IP адрес, щлюз и DNS сервера для интерефейса eth1.
Для применения изменений, перезагрузите интерфейс:
Если же вам удобнее работать с файлами конфигурации, установите через yum отдельный пакет network-scripts (в CentOS 8 по умолчанию его нет):
После установки данного пакета, вы можете редактировать настройки сети, как мы описывали ранее, через конфигурационные файлы:
Сетевые настройки — первое, что нужно сделать после создания сервера для его взаимодействия с внешним миром. В этой статье детально рассмотрим как настраивать сеть в CentOS 7.
Сетевые настройки в CentOS могут выполняться как в графическом интерфейсе, так и через командную строку. Ниже разберем настройку сетевых компонентов путем ввода команд в терминале.
Для примера используем выделенный сервер. Выделенные серверы заказываются в представлении «Серверы и оборудование».
После нажатия на кнопку «Заказать сервер» появится представление с характеристиками заказываемого сервера. Можно настроить свои параметры или выбрать готовую конфигурацию. Для демонстрации выберем готовую конфигурацию.
После выбора готового сервера останется выбрать устанавливаемую операционную систему. Настройку сети будем выполнять в CentOS 7.
О включении сервера можно узнать при получении письма с параметрами доступа или в интерфейсе веб-консоли управления Selectel. Созданный сервер имеет приведенные ниже характеристики.
Теперь можно подключиться к серверу по SSH и просмотреть сетевые интерфейсы, созданные по умолчанию. В выводе команды ip address получим нумерованный список интерфейсов.
Внешний сетевой интерфейс, через который было выполнено текущее SSH-подключение, имеет порядковый номер 2 и называется eno1. Интерфейсу для примера был присвоен статический ip-адрес 82.148.21.49.
Далее мы расскажем об изменении конфигурации сети в CentOS 7.
Статический IP-адрес в CentOS 7
Конфигурация сетевого интерфейса хранится в /etc/sysconfig/network-scripts в соответствующем файле с префиксом ifcfg (там же конфигурационные файлы других интерфейсов). Посмотрим на него.
Что можно понять из этих характеристик? Ниже расскажем о каждом параметре.
- NAME — имя сетевого адаптера, оно такое же, как и имя в операционной системе.
- ONBOOT — указание на тип запуска сетевого интерфейса. При текущих настройках сетевой интерфейс запускается автоматически. В случае со значением no интерфейс нужно будет запускать вручную.
- BOOTPROTO — указание на тип назначения IP-адреса. В текущих настройках static, но возможны опции dhcp, none или пустое значение.
- HWADDR — переменная, хранящая MAC-адрес.
- IPADDR — установленный на интерфейсе IP-адрес.
- NETMASK — установленная на интерфейсе маска подсети.
- GATEWAY — указание на шлюз.
- TYPE — тип интерфейса. В нашем случае — Ethernet.
Отредактируем значение поля IPADDR:
После внесения изменений перезагрузим сетевой сервис. Иначе изменения применятся только после рестарта сервера.
После выполнения этой команды сетевое подключение отключится. Снова выполняем подключение по SSH по новому IP-адресу и проверяем новые настройки:
Статический IP-адрес настроен, сервер доступен по новому адресу.
Настройки DHCP в CentOS 7
Чтобы настроить получение анонсов по DHCP, в /etc/sysconfig/network-scripts/ifcfg-eno1 необходимо удалить переменные IPADDR, NETMASK, GATEWAY, а в BOOTPROTO указать значение «dhcp».
Перезагружаем сетевой сервис:
Сетевое соединение по SSH отключится. Чтобы посмотреть новый IP-адрес сервера, подключимся к нему через веб-консоль KVM Selectel. Нажимаем на иконку консоли.
В новой вкладке браузера вводим учетные данные сервера и выполняем уже знакомую команду ip address. В выводе команды напротив интерфейса eno1 будет его динамический IP-адрес.
Теперь можно подключаться по SSH по новому IP-адресу.
Настройки DNS в CentOS 7
Чтобы настроить DNS, изменим /etc/sysconfig/network-scripts/ifcfg-eno1 и пропишем туда переменную DNS1 (если нужно добавить дополнительные DNS-серверы, допускается добавление переменных DNS2, DNS3 и т.д.)
Следом перезагрузим сеть:
По итогам перезагрузки адрес DNS-сервера должен автоматически оказаться в /etc/resolv.conf:
Наличие в файле заданного DNS-сервера говорит о корректности его настройки.
Перезапуск сетевого сервиса в CentOS 7
Перезапуск сети выполняется одной командой:
После изменения сетевых настроек и для вступления их в силу необходимо выполнить эту команду.
Изменение имени сервера (hostname) в CentOS 7
После создания сервера через панель управления Selectel ему присваивается имя localhost.localdomain, при аренде выделенного сервера в Selectel имя ему присвоено автоматически:
Сверим примененные настройки:
Имя хоста изменено.
Настройки шлюза в CentOS 7
За соответствующие настройки отвечает переменная GATEWAY в /etc/sysconfig/network-scripts/ifcfg-eno1. Чтобы изменить адрес шлюза, достаточно изменить значение этой переменной и перезагрузить сетевую службу:
Вызов команды netstat -nr вернет актуальный адрес используемого шлюза:
Таким образом, мы задали адрес сетевого шлюза.
Настройки сети из консоли
Кроме модификации файлов с конфигурацией, настройки сети могут быть изменены командами в консоли. Консольные настройки выполняются для проведения тестов и будут работать только до перезагрузки системы. Для выполнения всех консольных сетевых настроек используется уже известная команда ip address (или ее сокращенная версия ip a).
Применим к eno2 новый IP-адрес и проверим:
Изменим маску подсети и снова проверим:
Добавим маршрут по умолчанию:
Удалим маршрут по умолчанию:
Удалим привязанный ранее IP-адрес и проверим:
Еще раз обращаем внимание, что все приведенные в этом разделе настройки действуют до перезагрузки сервера.
Исключение IPv6 в CentOS 7
IPv6-адресация на текущий момент используется редко, хотя и было много разговоров об исчерпании емкостей адресов IPv4. Отключение IPv6 помогает экономить ресурсы и избежать путаницы. В этом разделе расскажем, как отключить на сервере поддержку этого протокола.
Начнем настройку с изменений в файле /etc/sysctl.conf. Внесем в него две дополнительных строки:
Следующий шаг — применение конфигурационных изменений:
В /etc/sysconfig/network прибавим 2 строки:
В конфигурационный файл /etc/default/grub к концу строки GRUB_CMDLINE_LINUX нужно добавить ipv6.disable=1
После выполнения изменений нужно сохранить файл и обновить GRUB:
Далее — перезагрузка сервера:
После перезагрузки проверим конфигурацию, значения с префиксом inet6 должны пропасть:
Протокол IPv6 успешно отключен.
Несколько IP адресов на одном интерфейсе в CentOS 7
Для настройки нескольких IP-адресов на одном интерфейсе внесем изменения в /etc/sysconfig/network-scripts/ifcfg-eno1, добавив переменные IPADDR1 и IPADDR2 и удалив IPADDR:
После перезагрузки сетевого сервиса изменения вступят в силу:
Еще один IP-адрес может понадобиться для поддержки нескольких сервисов в рамках одного сервера.
Настройки нескольких сетевых интерфейсов в CentOS 7
Команда ip a вернет состояние всех имеющихся сетевых интерфейсов:
В этом выводе можно видеть три интерфейса: служебный lo, а также интерфейсы eno1 и eno2.
В /etc/sysconfig/network-scripts в соответствующих файлах хранится конфигурация каждого интерфейса:
Для управления каждым из них вносятся значения переменных в соответствующий конфигурационный файл:
Чтобы добавить новый интерфейс, достаточно создать в этой же директории соответствующий конфигурационный файл, внести в него настройки и выполнить перезапуск сетевой службы:
Таким образом, мы создали дополнительный интерфейс.
Настройки интерфейсов в CentOS 7 через Network Manager (утилиты nmtui и nmcli)
Еще одним способом настроить сеть в CentOS 7 является настройка через утилиту Network Manager. Она может выполняться в GUI и через CLI. Для вызова графического интерфейса необходимо выполнить команду nmtui. Откроется псевдо-GUI интерфейс, в котором можно выполнять те же настройки, что и в командной строке:
Network Manager через CLI управляется при помощи утилиты nmcli. Ниже приведены команды для изменения IP-адреса, шлюза и DNS-сервера для сетевого интерфейса eno1:
Утилита Network Manager имеет широкий функционал и может использоваться как полная замена штатным инструментам для настройки сети в CentOS 7.
Заключение
Мы рассказали о различных подходах к настройке сети в CentOS 7. Этого достаточно для базовой настройки коммуникации сервера с внешними устройствами.
При заказе сервера у облачного провайдера важно проверить сетевые настройки и иметь понимание структуры конфигурационных файлов и их содержимого. Это будет полезно для тонкой настройки сетевых компонентов сервера на базе CentOS 7 для решения поставленных задач.
Читайте также: