Отключить network manager centos 7

Обновлено: 07.07.2024

Инструкция применима к CentOS версий 7 и 8, CentOS mini (минимальная сборка), Fedora.

Базовая настройка сети

Смотрим все установленные сетевые адаптеры в системе:

В результате получаем что-то подобное:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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, открываем на редактирование следующий конфигурационный файл:

И приводим его к следующему виду:

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 добавим:

Основные опции

Опция Описание Возможные значения
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

Чтобы настройки применились, перезапускаем сетевую службу.

systemctl restart network

б) для CentOS 8 вводим 2 команды:

systemctl restart NetworkManager

nmcli networking off; nmcli networking on

* в большей степени, это основное отличие версий 7 и 8. Чтобы команды смогли поменять настройки, для интерфейсов необходима настройка NM_CONTROLLED=yes.

Дополнительные опции (не обязательны для работы сети)

Настройка сети из консоли (командами)

Настройка из консоли будет работать только до перезагрузки системы. Ее удобно применять для временного конфигурирования или проведения тестов.

Назначение 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

Команда ifconfig

В новых версиях CentOS утилита ifconfig не установлена и при вводе одноименной команды можно увидеть ошибку «Команда не найдена». Необходимо либо воспользоваться командой ip (ip address), либо установить утилиту ifconfig.

yum install ifconfig

yum install net-tools

Настройка WiFi

Принцип настройки беспроводной сети на CentOS не сильно отличается от проводной.

Создаем конфигурационный файл со следующим содержимым:

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 на одном сетевом адаптере

В зависимости от версии операционной системы, дополнительные адреса добавляются посредством:

  1. Псевдонимов — создание нового виртуального интерфейса с названием <имя интерфейса>:<номер>.
  2. Добавлением 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.

Перезапускаем сетевые службы.

Для автоматического получения 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, однако мы рассмотрим альтернативный способ, на случай, если кому-то это пригодится.

Статья о том как подготовить только что установленный на сервер дистрибутив Centos 7 к дальнейшей работе с ним.

Сразу же выключаем Network Manager. Это программа, облегчающая определение и конфигурацию средств для автоматического подключения к сети. Полезна она только для домашнего ПК или ноутбука, на сервере же может создавать проблемы с настройкой сети, т.к. может самостоятельно менять настройки.

Вариант в одну строку:

systemctl stop NetworkManager && systemctl disable NetworkManager && systemctl restart network

Настройка сети

Настройки сетевых интерфейсов указываются в файле /etc/sysconfig/network-scripts/ifcfg-eth0. Однако в Centos 7 файл конфигурации сетевого интерфейса может иметь имя наподобие ifcfg-enp0s1. Как изменить имя сетевого интерфейса можно прочитать здесь.

Если Вы не используете протокол IPv6, то можно закоментировать все строки с ним.

Прописываем имя этого сервера в /etc/hostname и /etc/hostname:

Не забываем прописывать DNS в /etc/resolv.conf

Перезапускаем сетевую подсистему:

Теперь можно подключиться к серверу по SSH.

Если используется proxy-сервер добавляем его адрес в файл /etc/yum.conf:

Устанавливаем программу для загрузки файлов по сети wget:

Добавляем в файл /etc/wgetrc адрес proxy-сервера:

Так же в Centos 7 по умолчанию включена система принудительного контроля доступа SELinux (англ. Security-Enhanced Linux — Linux с улучшенной безопасностью). Она расширяет стандартные стандартные права доступа. Использовать её или нет зависит от требований к серверу и его назначению. Настройка данной системы представляет собой материал отдельной статьи.

Если же Вам данная система не нужна, отключаем SELinux:

Подключение EPEL репозитория

Отключаем FireWall

Настройка Firewall это также тема отдельной статьи. Но на некоторых серверах в нем нет надобности и его можно отключить:

systemctl stop firewalld && systemctl disable firewalld

Установка и настройка NTPD

Для того, чтобы на сервере всегда было точное время необходимо установить и настроить ntpd.

Далее нужно указать сервера времени с которыми будет синхронизировать время наш сервер. Адреса этих серверов можно найти в интернете, лучше выбирать ближайшие сервера, то есть искать сервера расположенные в вашей стране. Указываем сервера синхронизации в vi /etc/ntp.conf (лучше не меньше трех):

По умолчанию сервер NTP будет доступен всем хостам в Интернет. Если вы хотите запретить всем машинам обращаться к вашему серверу NTP, добавьте следующую строку:

Сервера с которыми сверяемся, должны иметь возможность менять наше время:

В restrict лучше указывать ip адрес вместо доменного имени, для избежания ошибок.

Если вы хотите разрешить синхронизировать свои часы с вашим сервером только машинам в вашей сети, но запретить им настраивать сервер или быть равноправными участниками синхронизации времени, то вместо указанной добавьте строчку:

Если включен Firewall добавляем ntp в исключения:

Добавляем в автозапуск:

Дополнительные полезные утилиты.

Обязателен для установки набор утилит для сборки программ из исходного кода и создания rpm пакетов.

При минимальной установке в Centos 7 отсутствуют некоторые полезные утилиты для работы с сетью arp, hostname, ifconfig, netstat, rarp, route, plipconfig, slattach, mii-tool, iptunnel и ipmaddr. Чтобы вернуть их необходимо установить набор утилит net-tools.

Официальная страничка проекта net-tools здесь.

Также полезно установить lsof (от англ. LiSt of Open Files) — утилита показывает какие файлы используются теми или иными процессами.

Вот пожалуй и вся универсальная настройка Centos 7 после установки. Далее уже идет настройка сервера под Ваши задачи. Надеюсь информация была полезной.

2 комментария к “ Настройка Centos 7 после установки ”

Дмитрий, добрый день.

Не стоит так сразу рубить network manager, не так он и плох 🙂

Вот пара простых примеров.

Задать адрес ipv4 и маску для сетевой карты eno1

nmcli c modify eno1 ipv4.addresses 10.0.0.30/24

Задаём статичный шлюз для этой сетевой

nmcli c modify eno1 ipv4.gateway 10.0.0.1

nmcli c modify eno1 ipv4.dns 10.0.0.1

Указываем, что эти данные задаются вручную, а не с помощью DHCP (для DHCP вместо manual нужно указать auto, но мы-то уже вручную всё указали)

nmcli c modify eno1 ipv4.method manual

Во многих дистрибутивах Linux по умолчанию установлен многофункциональный менеджер управления сетевыми подключениями Network Manager. Иногда возникает необходимость отключить его. Может, вы хотите настроить интернет из консоли, нашли альтернативный способ управлять сетью, или вам нужен полный контроль на Wi-Fi-адаптером.

sudo systemctl stop NetworkManager

Затем вы можете убедиться, что NetworkManager действительно отключён с помощью утилиты nmcli:

Утилита сообщает, что служба не запущена, а значит сетевыми интерфейсами она больше не управляет. Если вам нужно, чтобы NetworkManager оставался отключённым после перезагрузки, выполните такую команду:

sudo systemctl disable NetworkManager

Для того, чтобы NetworkManager не пытался настраивать сеть для интерфейсов, которые сконфигурированы в /etc/network/interfaces в Ubuntu следует добавить такую строчку в /etc/NetworkManager/NetworkManager.conf


Затем добавьте конфигурацию для нужного интерфейса, например enp0s2 в файл /etc/network/interfaces, если её там ещё нет. Например:

iface eth1 inet static
address 192.168.0.102
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8

Для CentOS или Fedora надо создать подобный конфигурационный файл интерфейса в папке /etc/sysconfig/network/. Например:

TYPE=Ethernet
BOOTPROTO=dhcp
NAME=enp0s3
UUID=9c3362c0-a615-4504-bb07-f2951f3810dd
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
NM_MANAGED=no


Теперь после перезагрузки указанный интерфейс больше не будет управляться с помощью этой утилиты, и отключение Network Manager не понадобится.

Кроме того, вы можете захотеть удалить Network Manager. Для этого в Ubuntu и Debian надо выполнить:

sudo apt remove network-manager

А в CentOS и Fedora:

sudo yum remove network-manager

Чтобы отключить NetworkManager в Debian 7 и старых версиях Ubuntu, понадобится такая команда:

echo "manual" | sudo tee /etc/init/network-manager.override

Для выполнения команды необходимо будет ввести пароль. Осталось перезагрузить систему, и NetworkManager отключён.

Чтобы снова включить NetworkManager в современном дистрибутиве, необходимо выполнить:

sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager

И, естественно, удалить строчку managed=false из конфигурационного файла программы.

NetworkManager — это служба для Linux, которая управляет различными сетевыми интерфейсами, включая физические, такие как Ethernet и беспроводной, и виртуальные, такие как VPN и другие туннели. Network Manager можно настроить для управления некоторыми или всеми интерфейсами системы.

У NetworkManager есть графический интерфейс — это тот апплет, который открывается, когда вы нажимаете на иконку сети, расположенную рядом с часами, а также окна настройки сети и сетевых соединений, в которые вы можете перейти из апплета. По умолчанию NetworkManager предустановлен на многих дистрибутивах Linux.

Хотя NetworkManager это отличная служба для управления повседневными потребностями компьютера пользователя, его эффекты обычно не оптимальны для среды тестирования. NetworkManager может самостоятельно, без запроса пользователя, менять MAC-адреса сетевых интерфейсов, а также менять их состояние — например, при подключении USB Wi-Fi адаптера именно NetworkManager переводит его в состояние up (включено), может вывести беспроводной интерфейс из режима монитора и перевести его в обычное состояние.

Если вы хотите избежать этого для определённых сетевых интерфейсов, то кроме очевидного решения остановить службу NetworkManager или удалить NetworkManager вовсе, есть другие варианты. Кстати, если вас только не устраивает, что MAC-адреса меняются на произвольные, то это можно настроить или отключить в самом NetworkManager.

Что такое unmanaged (без управления) интерфейс в NetworkManager

Состояние unmanaged (без управления) в NetworkManager для сетевого интерфейса означает, что NetworkManager никак не взаимодействует с данным сетевым интерфейсом: не включает его, не меняет его режим работы, не меняет MAC-адрес, не использует для поиска сетей и даже не показывает в списке сетевых интерфейсов — то есть NetworkManager делает вид, что этого интерфейса в системе просто нет.

Как определить, управляет ли NetworkManager определённым сетевым интерфейсом

Состояние unmanaged имеет эффект только в самом NetworkManager. Вы, как обычно, можете видеть все сетевые интерфейсы командой

или только беспроводные командой

При этом там никак не обозначено, управляет ли этим интерфейсом NetworkManager.

Как уже было сказано, если ваше устройство отсутствует в списке сетевых интерфейсов, которые показывает NetworkManager, значит оно может быть в состоянии unmanaged.

Но чтобы быть точно уверенным в этом, можно использовать команду nmcli — это инструмент командной строки для управления NetworkManager. Чтобы вывести список сетевых интерфейсов и их состояние выполните команду:


Для unmanaged устройств будет показано «без управления».

Предположим, я хочу, чтобы NetworkManager никак не менял настройки беспроводного сетевого интерфейса с именем wlp0s20f0u1.

Как временно перевести сетевой интерфейс в unmanaged (без управления) в NetworkManager

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

Чтобы на время сделать интерфейс unmanaged, выполните команду вида:


Обратите внимание на строку:

Данная настройка сбрасывается не только после перезагрузки компьютера, но и после отключения и подключения сетевого интерфейса.

Как перевести сетевой интерфейс в unmanaged (без управления) в NetworkManager, чтобы это сохранялось после перезагрузки

Чтобы NetworkManager не трогал сетевой интерфейс сразу после запуска службы и чтобы эта настройка сохранилась после перезагрузки, нужно использовать метод keyfile.

Для этого откройте файл /etc/NetworkManager/NetworkManager.conf:

И добавьте туда строки вида:

Вы можете перечислить любое количество MAC-адресов.

Посмотреть MAC-адреса сетевых интерфейсов можно командой

Но помните, что NetworkManager уже мог присвоить произвольный MAC-адрес, чтобы увидеть настоящий, выполните команду вида:

Перечислите MAC-адрес каждого интерфейса, который Network Manager должен игнорировать, через точку с запятой. Убедитесь, что перечисленные здесь MAC-адреса записаны в нижнем регистре.

Более новые версии NetworkManager могут также использовать более общий альтернативный метод KEYFILE, который не включает фактические MAC-адреса и вместо этого использует имена интерфейсов. Этот синтаксис заменяет приведённый выше раздел Отключить network manager centos 7 следующим:

К примеру, я хочу, чтобы NetworkManager не управлял сетевыми интерфейсами wlp0s20f0u1, wlp0s20f0u2 и wlp0s20f0u3, тогда мои строки следующие:


Сохраните сделанные изменения и перезапустите службу:


Как вернуть сетевой интерфейс под управление NetworkManager

Теперь перечисленные сетевые интерфейсы всегда будут «без управления». Но их можно вновь передать под управление NetworkManager. Для этого достаточно откатить сделанные изменения в файле NetworkManager.conf и перезапустить службу.

Если вы вывели интерфейс из-под управления NetworkManager командой nmcli, то вернуть его в прежнее состояние можно командой:

Как выключить NetworkManager

Если вы хотите полностью остановить NetworkManager, чтобы он перестал управлять сразу всеми сетевыми интерфейсами, то выполните команду:

Если вы хотите убрать NetworkManager из автозагрузки, то выполните:

Чтобы вновь запустить NetworkManager и добавить его в автозагрузку выполните:

В некоторые дистрибутивы Linux по умолчанию установлен многофункциональный менеджер управления сетевыми подключениями, который носит название Network Manager. В некоторых случаях потребность в нем отпадает, и пользователи ищут способы его отключить. Причины самые разные: потребность управлять Wi-Fi адаптером, настроить интернет из консоли, появился альтернативный способ управлять сетью. Независимо от дистрибутива с этой целью можно воспользоваться утилитой systemctl. Итак, чтобы отключить Network Manager Ubuntu, CentOS или Debian, достаточно выполнить команду:

Убедитесь, что программа NetworkManager отключилась при помощи nmcli:

NetworkManager

Вы можете запретить программе настраивать сеть для интерфейсов. Для этого необходимо добавить команду в строчку /etc/NetworkManager/NetworkManager.conf:

$ vi /etc/NetworkManager/NetworkManager.conf

managed = false

Дальше необходимо добавить конфигурацию для интерфейса, например enp0s2 в файл, /etc/network/interfaces, если он там отсутствует:

$ vi /etc/network/interfaces

iface eth1 inet static

address 192.168.0.102

netmask 255.255.255.0

gateway 192.168.0.1

dns-nameservers 8.8.8.8

Для CentOS или Fedora надо создать подобный конфигурационный файл интерфейса в папке /etc/sysconfig/network/.

vi /etc/sysconfig/network/enp0s3.conf

TYPE=Ethernet
BOOTPROTO=dhcp
NAME=enp0s3
UUID=9c3362c0-a615-4504-bb07-f2951f3810dd
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8


После перезагрузки указанный интерфейс больше не будет управляться посредством NetworkManager. Но и это не все. Если вы решили удалить программу, поскольку потребность в ней полностью отпала, выполните такую команду:

В старых версиях Ubuntu команда несколько отличается:

$ echo "manual" | sudo tee /etc/init/network-manager.override

Введите пароль и перезагрузите систему. Если вы не удалили менеджер, а просто отключили, и спустя время он стал нужен, воспользуйтесь командами:

$ sudo systemctl enable NetworkManager

$ sudo systemctl start NetworkManager

Читайте также: