Настройка сети в CentOS и Rocky Linux

Обновлено: 25.08.2022 Опубликовано: 06.07.2016
Что такое CentOS простыми словами. Инструкция применима к Rocky Linux, CentOS версий 7 и 8, CentOS mini (минимальная сборка), Fedora.
Базовая настройка сети
Смотрим все установленные сетевые адаптеры в системе:
В результате получаем что-то подобное:
1: lo:
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens32: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:50:56:81:28:3c brd ff:ff:ff:ff:ff:ff
inet 192.168.156.22/22 brd 192.168.159.255 scope global ens32
valid_lft forever preferred_lft forever
3: ens34: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:50:56:81:3f:22 brd ff:ff:ff:ff:ff:ff
inet 10.243.254.68/26 brd 10.243.254.127 scope global ens34
valid_lft forever preferred_lft forever
* Из примера видно, что в моем CentOS есть 3 сетевых карты — lo (локальная петля), ens32 и ens34 — сетевые Ethernet адаптеры. Если нужно настроить сеть для адаптера ens32, открываем на редактирование следующий конфигурационный файл:
vi /etc/sysconfig/network-scripts/ifcfg-ens32
И приводим его к следующему виду:
DEVICE=ens32
BOOTPROTO=static
IPADDR=192.168.0.155
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.54
DNS2=192.168.0.11
ONBOOT=yes
. а также для CentOS 8 добавим:
NM_CONTROLLED=yes
Основные опции
| Опция | Описание | Возможные значения |
|---|---|---|
| DEVICE | Имя сетевого адаптера | Должно совпадать с именем в системе. В данном примере ens32 |
| BOOTPROTO | способ назначения IP-адреса | static: ручное назначение IP, dhcp: автоматическое получение IP |
| IPADDR | IP-адрес | адрес, соответствующий вашей сети |
| NETMASK | Сетевая маска | должна соответствовать вашей сети |
| GATEWAY | Шлюз по умолчанию | IP-адрес сетевого шлюза |
| DNS1 | Основной DNS-сервер | IP-адрес сервера имен |
| DNS2 | Альтернативный DNS-сервер | IP-адрес сервера имен |
| ONBOOT | Способ запуска сетевого интерфейса | yes: автоматически при старте сервера, no: запускать вручную командой |
| NM_CONTROLLED | Указываем, должен ли интерфейс управляться с помощью NetworkManager | yes: управляется NetworkManager, no: не может управляться NetworkManager |
Чтобы настройки применились, перезапускаем сетевую службу. а) для CentOS 7:
systemctl restart network
б) для Rocky Linux и CentOS 8 вводим 2 команды:
systemctl restart NetworkManager
nmcli networking off; nmcli networking on
* в большей степени, это основное отличие версий 7 и 8. Чтобы команды смогли поменять настройки, для интерфейсов необходима настройка NM_CONTROLLED=yes.
Дополнительные опции (не обязательны для работы сети)
| Опция | Описание | Возможные значения |
|---|---|---|
| DOMAIN | Указываем домен, который необходимо добавлять к имени хостов, если он не указан в запросе явно. Несколько доменов можно указать в кавычках через пробелы. | Строковое значение, соответствующее имени домена. |
| IPV4_FAILURE_FATAL | Отключение сетевого интерфейса, если IP-адрес (v4) имеет неверную конфигурацию | yes: отключать, no: не отключать |
| IPV6_FAILURE_FATAL | Отключение сетевого интерфейса, если IP-адрес (v6) имеет неверную конфигурацию | yes: отключать, no: не отключать |
| IPV6_AUTOCONF | Разрешает или запрещает автоконфигурирование IPv6 с помощью протокола Neighbor Discovery | yes: разрешить автоконфигурирование, no: запретить |
| IPV6INIT | Говорит о возможности использовать сетевой интерфейс для адресации IPv6 | yes: адресация может использоваться, no: не используется |
| PEERROUTES | Задает приоритет настройки шлюза по умолчанию, полученного от DHCP | yes: маршрут от DHCP важнее, чем назначенный вручную, no: важнее маршрут, заданный вручную |
| IPV6_PEERROUTES | Задает приоритет настройки шлюза по умолчанию, полученного от DHCP (для IPv6) | |
| UUID | Уникальный идентификатор сетевого интерфейса. Его можно сгенерировать самостоятельно командой uuidgen | Строка из 32-х символов в формате 8-4-4-4-12. Например: fca8cc84-6f21-4bac-9ccb-36f281321ba4 |
Настройка сети из консоли (командами)
Настройка из консоли будет работать только до перезагрузки системы. Ее удобно применять для временного конфигурирования или проведения тестов. Назначение IP-адреса или добавление дополнительного к имеющемуся:
ip a add 192.168.0.156/24 dev ens32
* в данном примере к сетевому интерфейсу ens32 будет добавлен IP 192.168.0.156. Изменение IP-адреса:
ip a change 192.168.0.157/24 dev ens32
* однако, по факту, команда отработает также, как add. Удаление адреса:
ip a del 192.168.163.157/24 dev ens32
Добавление маршрута по умолчанию:
ip r add default via 192.168.0.1
Добавление статического маршрута:
ip r add 192.168.1.0/24 via 192.168.0.18
Удаление маршрутов:
ip r del default via 192.168.160.1
ip r del 192.168.1.0/24 via 192.168.0.18
Подробнее про управление маршрутами в CentOS.
Команда ifconfig
В новых версиях CentOS утилита ifconfig не установлена и при вводе одноименной команды можно увидеть ошибку «Команда не найдена». Необходимо либо воспользоваться командой ip (ip address), либо установить утилиту ifconfig. а) в CentOS 7:
yum install ifconfig
а) в CentOS 8:
yum install net-tools
Настройка WiFi
Принцип настройки беспроводной сети на CentOS не сильно отличается от проводной. Создаем конфигурационный файл со следующим содержимым:
vi /etc/sysconfig/network-scripts/ifcfg-dmoskwifi
ESSID=»dmoskwifi»
MODE=Managed
KEY_MGMT=WPA-PSK
TYPE=Wireless
BOOTPROTO=none
NAME=dmoskwifi
ONBOOT=yes
IPADDR=192.168.1.50
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=77.88.8.8
* где dmoskwifi — название WiFi сети (SSID).
Несколько IP на одном сетевом адаптере
- Псевдонимов — создание нового виртуального интерфейса с названием :.
- Добавлением IPADDRx и NETMASKx в конфигурационном файле.
Рассмотрим оба варианта подробнее.
Создание псевдонимов (более ранние версии CentOS 7 и ниже)
Создаем новый конфигурационный файл для сетевого интерфейса:
DEVICE=ens32:1
BOOTPROTO=static
IPADDR=192.168.0.156
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.54
DNS2=192.168.0.11
ONBOOT=yes
* где ens32 — имя физического интерфейса, :1 — виртуальный номер.
Перезапускаем сетевые службы.
Настройка конфигурационного файла (поздние версии CentOS 7 и выше)
Открываем конфигурационный файл для сетевого интерфейса, например:
DEVICE=ens32
BOOTPROTO=static
IPADDR=192.168.0.155
NETMASK=255.255.255.0
IPADDR1=192.168.0.156
NETMASK1=255.255.255.0
IPADDR2=192.168.0.157
NETMASK2=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.54
DNS2=192.168.0.11
ONBOOT=yes
* где ens32 — имя физического интерфейса, дополнительные адреса задаются с помощью опций IPADDR1, IPADDR2, NETMASK1, NETMASK2.
Перезапускаем сетевые службы.
DHCP
Для автоматического получения IP-адреса от сервера DHCP мы должны задать следующее значение для опции BOOTPROTO в конфигурационном файле:
* в наших примерах выше данный параметр имеет значение static.
Переопределение DNS с помощью dhclient.conf
Также мы можем переопределять настройки для DHCP с помощью конфигурационного файла. Например, если мы хотим, чтобы адреса DNS были заданы определенные, а не полученны от DHCP, открываем конфиг:
interface «enp0s3»
supersede domain-name-servers 8.8.8.8, 8.8.4.4;
>
* где enp0s3 — имя сетевого интерфейса, который будет получать адрес от сервера DHCP. 8.8.8.8, 8.8.4.4 — адреса, которые будут настоены на интерфейсе, независимо от того, какие предложит сервер DHCP.
Или мы можем использовать адреса от DHCP, но сделать приоритетными свои:
interface «enp0s3»
prepend domain-name-servers 127.0.0.1;
>
* в данном примере, мы зададим в качестве основного сервера DNS — 127.0.0.1.
Чтобы данный метод сработал в CentOS 8, необходимо открыть файл:
В раздел [main] добавить:
Переопределение DNS в NetworkManager (альтернативный способ)
Метод, описанный выше по переопределению DNS не подходит для NetworkManager без изменения настройки dhcp, так как адреса будут получены и обработаны с помощью встроенных методов. Выше, предоставлено решение в виде настройки dhcp=dhclient, однако мы рассмотрим альтернативный способ, на случай, если кому-то это пригодится.
sleep 1
rm -f /etc/resolv.conf
echo ‘# Generated by dispatcher’ > /etc/resolv.conf
echo ‘nameserver 127.0.0.1’ >> /etc/resolv.conf
echo » >> /etc/resolv.conf
cat /var/run/NetworkManager/resolv.conf >> /etc/resolv.conf
* в данном примере мы создали скрипт, который сначала добавит нужную нам запись в файл /etc/resolv.conf, а после добавит туда значения, полученные от DHCP. Обратите внимание, что в конкретном примере:
- адрес 127.0.0.1 задается в качестве приоритетного сервера DNS.
- остальные настройки получаем от DHCP, которые NetworkManager помещает в файл /var/run/NetworkManager/resolv.conf.
Разрешаем запуск скрипта:
chmod +x /etc/NetworkManager/dispatcher.d/99-resolv.conf.dhclient
systemctl restart NetworkManager
Через 2 секунды проверяем:
Читайте также
Другие статьи на тему сетевых настроен CentOS:
Как настроить сеть в CentOS
Настройте сеть в CentOS 6, CentOS 7, CentOS 8, CentOS Stream 8, чтобы приступить к работе с вашим сервером. В статье описана настройка сети CentOS (ОС на базе Linux) при установке операционной системы и в консоли с помощью конфигурационного файла.
Мы рассмотрим первоначальную настройку сети с помощью базовых параметров: IP-адреса, маски подсети, шлюза и DNS-серверов.
Основные CentOS-команды
Перед тем как перейти к пошаговой настройке сети, перечислим CentOS-команды консоли, которые понадобятся.
Для просмотра списка установленных сетевых интерфейсов:
ip a
ls /sys/class/net/
sudo systemctl restart networking
Для CentOS 8/Stream 8:
systemctl restart network
Как настроить сеть при установке
Обычно сеть нужно настраивать при первой установке дистрибутива CentOS.
В инструкции описана настройка сети CentOS 7. Инструкция также подойдет для CentOS 6, 8 и Stream 8.

При установке нажмите Сеть и имя узла:
Слева показан список подключенных сетевых интерфейсов. Выберите нужный и нажмите Настроить.
Обратите внимание
Чтобы включить сетевой интерфейс CentOS, нажмите на переключатель.


Перейдите на вкладку Параметры IPv4. Выберите метод Вручную и нажмите Добавить. Затем введите нужные параметры сети: статический IP-адрес, маску подсети, шлюз, серверы DNS. Нажмите Сохранить:
Готово, теперь вы знаете, как при установке CentOS настроить сеть. Далее продолжится установка операционной системы, после чего ваш сервер будет иметь необходимые сетевые настройки.
Как настроить сеть в консоли
Настроить сеть можно не только на этапе установки, но и после неё. Настройка сети CentOS через консоль пригодится, если вы пропустили этап настройки при установке или хотите изменить существующие параметры сети.
Как узнать, какие сетевые интерфейсы установлены
Чтобы посмотреть список установленных сетевых интерфейсов, перейдите в консоль через пользователя root и введите команду:
ip a
ls /sys/class/net/
Результат выполнения каждой из команд в консоли представлен ниже. В примере команда ip a показывает, что установлено два интерфейса — lo (локальная петля) и enp0s3 (сетевой адаптер Ethernet). Заметьте, что команда ls отображает только названия интерфейсов. Имена интерфейсам назначаются автоматически.

Как настроить сеть
Рассмотрим настройку сети для сетевого интерфейса, например, с названием enp0s3.
В CentOS в каталоге /etc/sysconfig/network-scripts/ хранятся конфигурационные файлы (Network Config) с настройками всех сетевых интерфейсов. Эти файлы начинаются с приставки ifcfg-. Так, для рассматриваемого сетевого интерфейса название файла ifcfg-enp0s3, а путь до него — /etc/sysconfig/network-scripts/ifcfg-enp0s3.
Чтобы настроить сеть для интерфейса:
Для начала вы можете посмотреть сетевые настройки с консоли. Откройте конфигурационный файл с помощью текстового редактора nano (вы можете использовать другой удобный вам редактор):
nano /etc/sysconfig/network-scripts/ifcfg-enp0s3

Где enp0s3 — название сетевого интерефейса. Содержимое конфигурационного файла зависит от сетевого интерфейса. В файле могут быть указаны разные параметры сети. Файл выглядит следующим образом:
Измените IP-адрес, маску подсети, шлюз и серверы DNS. Для этого замените или добавьте в файл соответствующие строки:
DEVICE=enp0s3 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.0.0 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 DNS1=8.8.8.8
Где: DEVICE — имя настраиваемого сетевого интерфейса; BOOTPROTO — способ назначения IP-адреса в CentOS: static (вручную), dhcp (автоматический) или none (не использовать dhcp); ONBOOT — запуск интерфейса при старте сервера: yes (запускать автоматически), no (запускать вручную); IPADDR — IP-адрес; NETMASK — маска подсети; GATEWAY — шлюз для доступа к интернету; DNS1 (а также DNS2, DNS3) — DNS-серверы — можно добавить несколько.
Сохраните изменения и выйдите из редактора. Для этого нажмите Ctrl+X, затем Y.
Затем необходимо перезапустить сеть. Если у вас CentOS 7, введите команду:
sudo systemctl restart networking
Как настроить сеть в CentOS: пошаговая инструкция
Каждый системный администратор должен знать, как выполняется настройка сети CentOS, поскольку это одна из самых популярных операционных систем для серверного оборудования. Благодаря открытому коду её легко адаптировать под нужды компании, в том числе для развертывания виртуальных или выделенных серверов. В этой статье мы рассмотрим базовые параметры, основные способы подключения к Интернету и дополнительные возможности для CentOS 6, 7 и 8.
Как работает сеть?
Чтобы корректно выполнить в CentOS сетевые настройки, сначала нужно понять, как сеть работает.
В основе лежит принцип обмена информацией между устройствами. Данные отправляются пакетами, в которых дополнительно указаны 2 типа адресов.
- IP-адрес – это уникальный числовой идентификатор. Его можно сравнить с номером телефона, который используют, когда нужно связаться с другим абонентам.
- MAC-адрес – физический адрес для связи по локальной сети. Его присваивают сетевой карте устройства еще на этапе производства.
Когда компьютер подключается к локальной сети, обмен данными выполняется через обращение к MAC-адресу. С другими компьютерами, подключённым к глобальной сети, он может связаться только после получения IP-адреса.
Получают его с помощью протокола DHCP – протокола динамической настройки узла. Процесс состоит из трёх этапов.
- От устройства исходит запрос в локальную сеть. Его принимает DHCP-сервер. Он отправляет в ответ IP-адрес из заданной области и оставляет запись о том, что он занят и не может использоваться другим устройством.
- Компьютер отправляет запрос IP маршрутизатору, который разрешает доступ к Интернету.
- От компьютера поступают запросы к DNS-серверам для получения стандартных сведений.
Таким образом, настройка Linux CentOS после установки предполагает налаживание и проверку нескольких параметров.
Основные CentOS-команды консоли
Управление в CentOS выполняется с помощью команд.
ip a – просмотр перечня установленных сетевых интерфейсов.
sudo systemctl restart networking – в 7 версии CentOS перезапуск сети.
systemctl restart network – в CentOS 8 или Stream 8 перезапуск сети.
Первая настройка сети
Пользователь может выполнить настройку сети уже при установке дистрибутива CentOS. Для этого нужно выбрать раздел «Сеть и имя узла».

В левой части экрана увидите список доступных интерфейсов и можете выбрать нужный. В правой части экрана нажмите кнопку «Настроить».

В следующем окне откройте вкладку «Параметры IPv4». Выбирайте метод «Вручную» и кликните по кнопке «Добавить». Введите подходящие параметры и нажмите «Сохранить».

Как выполняется в CentOS настройка сети из консоли
Для начала нужно понять, какие интерфейсы доступны. Для этого вводим команду «ip a» и получаем ответ.

В нашем случае доступно 2 интерфейса:
lo – локальная петля;
enp0s3 – сетевой адаптер Ethernet.
Дальше в CentOS настройка сетевого интерфейса выполняется через конфигурационные файлы, названия которых начинается с приставки «ifcfg». Найти их можно в каталоге /etc/sysconfig/network-scripts/
Рассмотрим процесс на примере файла ifcfg-enp0s3.
Откройте его в редакторе nano (при желании можно использовать другой редактор).

Увидите несколько параметров.
DEVICE — название сетевого интерфейса.
TYPE — тип интерфейса.
BOOTPROTO — способ назначения IP-адреса.
ONBOOT — запуск интерфейса при включении сервера.
Эти параметры нужно подкорректировать, укажите следующие значения.
Сохраните изменения с помощью сочетания клавиш «Ctrl+X», затем нажмите «Y». Перезапустите сеть.
Чтобы создать новый интерфейс, добавьте в конфигурационный файл их значения, а потом перезапустите службу.
# cp /etc/sysconfig/network-scripts/ifcfg-eno2 /etc/sysconfig/network-scripts/ifcfg-eno3
# systemctl restart network
Настройка основных параметров при подключении к сети CentOS
Чтобы наладить соединение и убедиться, что всё работает корректно, нужно проверить основные параметры.
IP-адрес
В данном случае мы уже задали статический IP-адрес в консоли. Чтобы его узнать или проверить, нужно ввести одну из двух команд.
# ifconfig | grep inet
# ifconfig | grep inet
Есть возможность настроить получение анонсов по DHCP. Для этого в конфигурационном файле поменяйте значение параметра BOOTPROTO на «dhcp» и перезагрузите интерфейс. Теперь для подключения можно зайти в веб-консоль. В разделе серверы и оборудование нажмите на значок консоли.

В следующей вкладке задайте значения сервера и введите команду «ip address». В строке с обозначением интерфейса eno1 увидите динамический IP-адрес.

В одном интерфейсе можно использовать несколько IP-адресов. Чтобы внести изменения, откройте /etc/sysconfig/network-scripts/ifcfg-eno1.
Удалите переменную IPADDR и добавьте вместо неё IPADDR1 и IPADDR2. Перезагрузите сервер.
DNS
DNS-серверов может использоваться несколько: основной будет называться DNS1, а дополнительные с добавлением переменных (DNS2, DNS3 и другие).
В CentOS настройка DNS выполняется в конфигурационном файле. Открываем /etc/sysconfig/network-scripts/ifcfg-eno1 и указываем DNS1=»82.148.21.1″. После перезагрузки адрес DNS-сервера можно посмотреть в «/etc/resolv.conf».
# grep «nameserver» /etc/resolv.conf
Если здесь содержатся данные о DNS-сервере, то настройка выполнена корректно.
Hostname
Обычно имя сервера присваивается автоматически – localhost.localdomain. Но допустимо задавать другие названия. Чтобы hostname изменить, нужно ввести
# hostname – это команда для проверки настроек. Если имя хоста совпадает, всё сделали правильно.
За настройку шлюза отвечает переменная GATEWAY. Мы уже рассматривали, как задать его вручную через консоль. А команда «netstat -nr» возвращает его первоначальный адрес.
IPv6
Чтобы сэкономить ресурсы, допустимо отключить протокол IPv6. Для этого откройте файл /etc/sysctl.conf и впишите дополнительные строки.
Изменения нужно применить.
В файле /etc/sysconfig/network тоже нужно дописать 2 строки.
Теперь откройте файл /etc/default/grub. В параметре GRUB_CMDLINE_LINUX допишите
Сохраните файл, обновите GRUB. Перезагрузите сервер.
Статический маршрут
Для управления маршрутизацией может возникнуть необходимость настроить статический маршрут, так называется заданный путь, по которому проходит информация в сети.
Проверить доступные маршруты можно через консоль с помощью команды
В результате система выдаст ответ.

В примере маршрут указан к адресу 0.0.0.0/0.0.0.0 и указан шлюз по умолчанию, а статические маршруты отсутствуют. Нужно его добавить, ориентируясь на подсеть и маску.
# route add -net 192.168.8.0/24 gw 192.168.159.5
Однако новые настройки сбрасываются в случае перезагрузки, поэтому их нужно прописывать в конфигурации. Для этого создаём файл с названием route-eth0 в папке /etc/sysconfig/network-scripts. Затем указываем параметры.
192.168.8.0/24 via 192.168.159.5
Выполняем перезагрузку и проверку.
Настройка сети в CentOS через Network Manager
В CentOS предусмотрена специальная утилита Network Manager для управления сетевыми соединениями. Её особенностью является графический интерфейс, благодаря которому упрощается процесс настройки.
Открывается Network Manager с помощью команды «nmtui». Откроется псевдо-GUI интерфейс, где можно задать актуальные настройки. То есть можно пользоваться не только клавиатурой, но ещё и мышью.

Кроме того, управление можно осуществлять с помощью утилиты CLI (интерфейс командной строки). Например, для интерфейса с названием «eno1» будут актуальны следующие команды для настройки IP-адреса, шлюза и DNS-сервера.
# nmcli con mod eno1 ipv4.addresses 82.148.21.49/24
# nmcli con mod eno1 ipv4.gateway 82.148.21.1
# nmcli con mod eno1 ipv4.dns «8.8.8.8
Заключение
Мы рассмотрели необходимые параметры для базовой настройки сети. Этого достаточно, чтобы начать работу и обеспечить корректный обмен данными через Интернет.
Настроить сеть можно через консоль или утилиту Network Manager. Процесс несложный даже для новичков. Но всё же для работы с CentOS желательно иметь хотя бы минимальные знания в области информационных технологий.
Установка и базовая настройка CentOS 8

05.02.2021

VyacheslavK

CentOS, Linux

комментариев 5
В этой статье мы рассмотрим чистую установку с нуля и в базовую настройку сервера CentOS 8 в минимальной конфигурации.
Что нового в CentOS 8?
24 сентября 2019 года, вышел релиз 8-ой версии CentOS. CentOS — дистрибутив Linux, основанный на коммерческом Red Hat Enterprise, компании Red Hat и совместимый с ним.
Рассмотрим наиболее крупные изменения в релизе CentOS 8:
- Используется ядро Linux kernel 4.18.
- Переход с пакетного менеджера yum на dnf. В данный момент yum существует как алиас к dnf.
- Выполнено разделение основного репозитория на 2 — это BaseOS и AppStream. Сделано это для того, чтобы у пользователя появилась возможность устанавливать разные версии пакетов на сервер. BaseOS работает как и раньше.
- Обновилось все ПО, в том числе и ядро. В базовом репозитории теперь устанавливается php версии 7.2 (наконец-то).
- Замена iptables на nftables. Лично я пока еще со вторым не работал напрямую, поэтому не могу сказать, хорошо это или плохо. Единственный момент, если нужно будет переносить какие-то проекты на новую ОС, придется разбираться с правилами, так как есть сервера с чистым iptables.
- network-skripts не используются по умолчанию для настройки сети, теперь управления сетью возложено на Network Manager.
- По умолчанию устаналивается веб-интерфейс управления сервером cockpit (удобно для новичков).
- Для управления контейнерами используется podman (вместо docker и mobdy).
- Новая версия стека TCP/IP 4.16 с улучшенной производительностью и поддержкой алгоритмов контроля BBR и NV.
- Новые версии дситрибутивов:
Установка CentOS 8 с помощью ISO-образа
Так как я проводил установку операционной системы на виртуальной машине KVM, предварительно я скачал установочный ISO-образ с одного из официальных зеркал (https://www.centos.org/download/mirrors/) и примонтировал его для установки на виртуальном сервере (при установке на физический сервер залейте установочный образ СentOS на USB флешку). Сразу скажу, процесс установки CentOS 8, не отличается от установки предыдущей версии и данная статья рассчитана на то, что будет служить помощником для пользователей, которые выполняют подобное впервые.
В рекомендуемых требования указано, что для установки CentOS 8 необходимо минимум 10 Гб места на диске и 512 Мб RAM на одно ядро процессора
Перезапустив виртуальную машину с примонтированным образом, я вошел в VNC-консоль. Первым шагом, вам будет предложено выбрать дальнейшие действия. Так как вы выполняем установку, нам интересен первый пункт меню:
Install CentOS Linux 8.0.1905

Выбрав его, у вас запустится процесс установки:

В процессе пока все необходимое ПО загружается, можно просто наблюдать за процессом, от вас не требуется никаких действий.
И когда черный экран сменится на интерактивный с логотипом CentOS, пора брать в руки мышь и клавиатуру.

В приветствии, система попросит вас выбрать язык, я всегда ставлю English (английский), потому что мне так удобнее работать (да и не понимаю, зачем вообще ставить русский язык на сервере). Нажмите кнопку “Continue”. В следующем меню нужно выбрать основные настройки для установки CentOS.

Для запуска установки, обязательно настроить только один пункт “Installation Destination”, там вы указываете разбивку диска, но я предпочитаю так же, сразу настроить сеть и дату со временем.

В зависимости от вашего часового пояса, вы устанавливаете свои параметры, для меня это Москва.
Чтобы настроить сеть, переходим в пункт “Network & Host Name”

В поле “Host Name” указываем имя сервера и для конфигурации сетевых интерфейсов нажимаем “Configure”

В главной вкладке, нужно отметить галочкой “Automatically connect to this network when it is available”, это нужно для того, чтобы сетевой интерфейс поднимался автоматически.
Перейдите во вкладку “IPv4 Settings” (либо IPv6 если вы используете данный протокол) настройте IP-адрес, маску подсети и шлюз:

Для ввода конкретного IP, нужно выбрать метод “Manual” и нажать кнопку “Add”, после чего у вас появится возможность ввести нужные данные. Сохранив все, мы вернемся к начальному окну настроек сети

Как можно увидеть на скриншоте, IP адрес добавился и сетевой интерфейс уже поднят (состояние Connected).
Следующим шагом мы перейдем к разбивке диска:

Для примера установки я воспользовался автоматической разбивкой от разработчиков CentOS. Если вы хотите разбить диск по-своему, нужно выбрать пункт “Custom”.
Если контроллер вашего сервера не поддерживает аппаратный RAID, в этом пункте меню вы можете собрать программный RAID из дисков сервера на базе mdadm .
Так как на моей виртуальной машине, ранее была установлена ОС, система установки увидела это. Я удалил разделы предыдущей операционной системы в последующих открывающихся меню:


Удалить разделы можно кнопкой “Delete all”, после чего потребуется нажать кнопку “Reclaim space”, чтобы размер дискового пространства стал актуальным.
Список пакетов для установки выбирается в пункте Software Selection. Если вы планируете использовать CentOS 8 в качестве сервера, достаточно выбрать Minimal Install, а из добавлений Standard и Guest Agents (если вы ставите гостевую ОС в виртуальной машине).
После вышеописанных действий, можно запускать установку кнопкой “Begin Installation”

В процессе уже самой распаковки и установки необходимых компонентов, вам потребуется указать пароль для root-пользователя и можно создать дополнительного пользователя, но это не обязательный пункт.

Нажмите на кнопку “Root Password”, введите и повторите пароль и нажмите “Done”, чтобы вернуться к установке:

Изначально я задаю простой пароль, чтобы в случае проблем с сетью, я мог легко его ввести в VNC-консоли и исправить проблемы. После того, как система будет установлена, пароль рекомендуется изменить на более сложный. Установка CentOS 8 у меня заняла порядка 5-7 минут и когда в окне установки загорится кнопка “Reboot”, это означает, что все было установлено и нужно перезапустить сервер.

На этом установка CentOS 8 завершена.
Базовая настройка CentOS 8 после установки
Базовая настройка CentOS 8 практически не отличается от настройки CentOS, я делаю базовые настройки одинаковые на всех серверах.
CentOS 8: Установка обновлений и инструментов администратора
Как уже отмечалось ранее, в CentOS 8 на замену yum, пришел dnf.
Dnf – это следующее поколение приложения YUM, менеджер пакетов для дистрибутивов Linux на основе RPM-пакетов. Ранее dnf использовался в дистрибутивах Fedora, а теперь и в CentOS 8.
Первое действие, которое я выполняю на вновь установленном сервере, это обновление системы:
Если образ свежий, то скорее всего у вас не будет пакетов для обновлений как в моем случае:
[root@centos var]# dnf update
Last metadata expiration check: 0:21:47 ago on Wed 09 Oct 2019 02:36:45 PM +06. Dependencies resolved. Nothing to do. Complete!
Если у вас обнаружатся обновления, обязательно их установите.
Следующим шагом, подключим репозиторий EPEL и установим необходимые утилиты для удобного администарирования сервера:
dnf install epel-release -y
dnf install mc wget screen nano net-tools bind-utils curl lsof vim -y
Мне для комфортного администрирования хватает этого набора утилит, вы можете установить свои привычные утилиты.
Автоматическое обновление системы я не включаю, так как всегда устанавливаю необходимые обновления вручную. Если вы хотите настроить автоматическое обновление, установите пакет dnf-automatic:
dnf install -y dnf-automatic
Чтобы проверить активные задания на обновления системы введите:
systemctl list-timers *dnf-*
Отключение SELinux
На начальном этапе я всегда отключаю SELinux (для применения изменения нужно перезагрузить сервер):
Отключение SELinux налету, можно выполнить командой:
Настройка сети в CentOS 8
Так как сеть я настроил на этапе установки системы, настройка ее в данный момент не требуется (подробная статья по настройке сети в CentOS). Хочу лишь сказать, что в CentOS 8, сеть управляется только через Network Manager и утилиту nmcl. Network-scripts по умолчанию не поддерживаются. Если честно, в своей работе я всегда отключал NM и не использовал, для меня это не удобный инструмент, теперь придется разбираться и с ним.
Проверка статуса сети:
[root@server ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-10-07 08:23:11 MSK; 3h 37min ago Docs: man:NetworkManager(8) Main PID: 870 (NetworkManager) Tasks: 3 (limit: 5060) Memory: 4.7M CGroup: /system.slice/NetworkManager.service └─870 /usr/sbin/NetworkManager --no-daemon
Установка и смена hostname
Если вы не задали корректный hostname сервера при установке или просто хотите изменить, это можно выполнить несколькими способами. Измените его в файле /etc/hostname или поменяйте с помощью команды:
hostnamectl set-hostname нужный_хостнейм
Настройка firewalld в CentOS 8
Добавим в доверенные зоны на firewalld, нужные для начальной работы сервисы (SSH и HTTP/HTTPS):
firewall-cmd –-add-service=ssh
firewall-cmd —permanent –-add-service=http
firewall-cmd —permanent –-add-service=https
Настройка времени и часового пояса (time-zone)
Чтобы посмотреть текущее время и time-zone, нужно ввести команду date:
[root@centos var]# date
Wed Oct 9 13:03:00 MSK 2019
Мы указали time-zone при установке самой системы, поэтому у нас время по Москве. Чтобы поменять time-zone, нужно воспользоваться соответствующей командой:
timedatectl set-timezone Europe/Moscow
Где вместо Europe/Moscow вы можете указать свой вариант, например:
[root@server network-scripts]# date
Mon Oct 7 12:46:09 MSK 2019
[root@server network-scripts]# timedatectl set-timezone Asia/Almaty
[root@server network-scripts]# date
Mon Oct 7 15:46:22 +06 2019
[root@server network-scripts]# systemctl status chronyd
● chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-10-07 16:13:48 +06; 9s ago Docs: man:chronyd(8) man:chrony.conf(5) Main PID: 31700 (chronyd) Tasks: 1 (limit: 5060) Memory: 1.1M CGroup: /system.slice/chronyd.service └─31700 /usr/sbin/chronyd
Настройка истории команда в bash_history
Для удобного просмотра истории, я всегда добавляю пару строк в .bashrc, чтобы в последствии можно было легко ориентироваться в отчетах.
При настройке по умолчанию, вывод history выглядит следующим образом:
1 dnf repolist 2 dnf install epel-release
То есть мы видим, что выполнялось на сервере, но не видим время и точную дату, для меня это критично, так как доступ к серверам могут иметь несколько специалистов. Поэтому приведем history к приятному виду:
Откроем файл /root/.bashrc и добавим в него нужные строки:
nano /root/.bashrc
export HISTSIZE=10000 export HISTTIMEFORMAT="%h/%d/%y - %H:%M:%S "
Теперь при проверке history, мы видим точное время выполнения той или иной команды:
1 Oct/07/19 - 16:16:29 dnf repolist 2 Oct/07/19 - 16:16:29 dnf install epel-release
Cockpit: Веб-интерфейс управления сервером в CentOS 8
Как мы уже упоминали, в CentOS 8 предустановлен веб-интерфейс управления сервером cockpit. Он также управляется через systemctl. Вы можете запустить его и добавить в автозгрузку:
# systemctl enable cockpit.socket
# systemctl start cockpit.socket
По–умолчанию веб сервер Cockpit слушает на порту 9090. Добавьте этот порт в разрешенные:
# firewall-cmd —get-active-zones
# firewall-cmd —add-port=9090/tcp —zone=MY_ACTIVE_ZONE —permanent
# firewall-cmd —reload
Для доступа к веб-интерфейсу Cockpit, откройте в браузере URL адрес https://your-CentOS8-IP:9090 и авторизуйтесь.

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