Centos переименовать сетевой интерфейс

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

Обычно неактивный интерфейс выделен серым цветом а активный зелёным.

NAME UUID TYPE DEVICE enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet -- enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8

Включить интерфейс можно командой

nmcli conn up enp0s3

Включать интерфейс при загрузке

Чтобы не включать сетевой интерфейс каждый раз вручную можно в настройках прописать ONBOOT=yes

Как вариант можно перейти в

И отредактировать с помощью vi файл ifcfg-ИМЯ_ИНТЕРФЕЙСА - например ifcfg-enp0s3

Либо под root использовать sed

Если команда выше вам не до конца понятна - изучите статью «Основы sed»

Проверить получилось ли изменить ONBOOT на yes можно командой

Подробную информацию о каждом сетевом интерфейсе можно получить выполнив nmcli connection show имя_интерфейса

nmcli connection show ens192

connection.id: ens192 connection.uuid: 5c2584c5-7d87-4826-ba2a-79713eb62a9a connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: ens192 connection.autoconnect: yes connection.autoconnect-priority: 0 connection.autoconnect-retries: -1 (default) connection.multi-connect: 0 (default) connection.auth-retries: -1 connection.timestamp: 1618914913 connection.read-only: no connection.permissions: -- connection.zone: -- connection.master: -- connection.slave-type: -- connection.autoconnect-slaves: -1 (default) connection.secondaries: -- connection.gateway-ping-timeout: 0 connection.metered: unknown connection.lldp: default connection.mdns: -1 (default) connection.llmnr: -1 (default) 802-3-ethernet.port: -- 802-3-ethernet.speed: 0 802-3-ethernet.duplex: -- 802-3-ethernet.auto-negotiate: no 802-3-ethernet.mac-address: -- 802-3-ethernet.cloned-mac-address: -- 802-3-ethernet.generate-mac-address-mask:-- 802-3-ethernet.mac-address-blacklist: -- 802-3-ethernet.mtu: auto 802-3-ethernet.s390-subchannels: -- 802-3-ethernet.s390-nettype: -- 802-3-ethernet.s390-options: -- 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: -- ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- ipv4.dns-options: "" ipv4.dns-priority: 0 ipv4.addresses: -- ipv4.gateway: --

Установка статического IP

nmcli conn show

NAME UUID TYPE DEVICE enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet enp0s3 enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8

Настроим статический IP адрес для enp0s8

Настройки сети хранятся в директории

Отредактировать нужно файл ifcfg-enp0s8

Основные параметры:
TYPE - тип соединения, проводное (Ethernet), беспроводное(Wired) и т д;
BOOTPROTO - способ получения IP адреса, static, dhcp или none;
NAME - имя соединения;
DEVICE - имя сетевого интерфейса;
ONBOOT - необходимо ли запускать при старте системы;
IPADDR - IP адрес, который будет использован для этого компьютера;
GATEWAY - шлюз для доступа к интернету;
NETMASK - маска сети;
DNS1 - сервер для разрешения доменных имен DNS.

sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

Изменить IP

Быстро изменить IP можно с помощью ifconfig

Сперва нужно установить пакет содержащий ifconfig - по инструкции

Менять IP нужно командой

sudo ifconfig enp0s8 192.168.56.111

Вместо enp0s8 введите нужный интерфейс

Вместо 192.168.56.111 введите IP, который хотите установить

Если нужно поменять ещё и маску подсети - выполните

sudo ifconfig enp0s8 192.168.56.111 netmask 255.255.255.0

Изменить маску

Если нужно поменять только маску подсети - выполните

sudo ifconfig enp0s8 netmask 255.255.255.0

Добавить IP

Добавить IP на интерфейс можно командой

ip addr add 172.17.67.3/16 dev enp0s8

IP адрес добавлен динамически - то есть после перезагрузки он пропадёт

Удалить этот IP адрес можно командой

ip addr del 172.17.67.3/16 dev enp0s8

Сбросить IP

Если IP получен по DHCP можно освободиться от него выполнив

sudo dhcp -r enp0s8

Вместо enp0s8 введите имя нужного адаптера

Узнать Gateway

Чтобы узнать текущий IP адрес шлюза (gateway) выполните

default via 10.0.2.1 dev enp0s3 proto dhcp metric 100

IP адрес шлюза 10.0.2.1

Установка ifconfig

yum provides ifconfig

yum whatprovides ifconfig

ifconfig входит, например, в состав net-tools

sudo yum install net-tools

Открытые порты

Список открытых портов

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port

Выдаст все порты, поэтому если нужно проверить какой-то определённый удобно применить grep

ss -tulpn | grep 1234

tcp LISTEN 0 128 [::]:1234 [::]:* users:(("andrei",pid=5226,fd=14))

Открыть порт

Чтобы открыть порт XXXX в firewall выполните

sudo firewall-cmd --add-port=XXXX/tcp --permanent
sudo firewall-cmd --reload

Подробности в статье Centos firewall

hostname

Шаг 1. Проверка текущего hostname

Чтобы получить информацию о хосте выполните

Нужная информация находится в первой строке

Static hostname: localhost.localdomain

Шаг 2. Смена hostname

Так как CentOS 7 поддреживает только Fully Qualified Domain Names (FQDNs), советую тщательно проверить hostname, который вы планируете использовать.

  • Строчные буквы от a до z
  • Цифры от 0 до 9
  • Точки и дефисы
  • Hostnames может быть от 2 до 63 символов
  • Hostnames должен начинаться и заканчиваться цифрой или буквой

hostnamectl set-hostname my.new-hostname.server

Подробности в статье hostname

NetworkManager

Проверить статус можно командой

systemctl status NetworkManager

network

Проверить статус можно командой

systemctl status network

● network.service - LSB: Bring up/down networking Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled) Active: active (exited) since Tue 2021-04-20 12:57:04 EEST; 7min ago Docs: man:systemd-sysv-generator(8) Process: 13493 ExecStop=/etc/rc.d/init.d/network stop (code=exited, status=0/SUCCESS) Process: 13652 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS) Nov 22 06:18:08 localhost.localdomain systemd[1]: Starting LSB: Bring up/down networking. Nov 22 06:18:08 localhost.localdomain network[13652]: Bringing up loopback interface: [ OK ] Nov 22 06:18:08 localhost.localdomain network[13652]: Bringing up interface ens192: Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5) Nov 22 06:18:08 localhost.localdomain network[13652]: [ OK ] Nov 22 06:18:08 localhost.localdomain systemd[1]: Started LSB: Bring up/down networking.

Виртуальный интерфейс

Виртуальный интерфейс - это alias к существующему интерфейсу. Допустим у вас есть ens192

Поменяйте там что-то, например поставьте другой IP из той же подсети

systemctl restart network

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

Создать новый сетевой адаптер

Подробный разбор этого действия вы можете изучить в статье «Создать новый интерфейс»

Список адаптеров

Получить список адаптеров, в том числе отключенных.

DEVICE TYPE STATE CONNECTION wlp0s20f3 wifi connected SSH-office docker0 bridge connected docker0 p2p-dev-wlp0s20f3 wifi-p2p disconnected -- enp0s31f6 ethernet unavailable -- vboxnet0 ethernet unmanaged -- lo loopback unmanaged --

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

Владельцам VPS/VDS как правило не приходится проводить настройку сети, обычно там все уже настроено при создании, но тем не менее для новичков статья лишней не будет.

Как узнать свой ip-адрес

Чтобы узнать ip-адрес системы можно выполнить следующие команды:

На данный момент команда ifconfig является хоть и устаревшей, но еще работающей командой (В CentOS требуется установить пакет net-tools). Начиная с ядра версии 2.2 ей на смену пришел пакет iproute2, состоящий из утилит: ip, tc, ss.

Настройка сетевых интерфейсов в CentOS

Настройка сетевых интерфейсов в CentOS происходит правкой конфигурационных файлов. Файлы интерфейсов хранятся в директории /etc/sysconfig/network-scripts, каждый отвечает за свой интерфейс, таким образом сколько интерфейсов, столько и файлов. Во время установки создается дефолтный файл с именем - ifcfg-enp0s3.

Рассмотрим самые важные параметры и значения, чтобы понимать что к чему. Более подробно все параметры описаны в официальной документации Red Hat.

  • TYPE - задает тип сетевого адаптера, в данном случае "Ethernet".
  • BOOTPROTO - способ назначения ip-адреса. Может иметь значения: dhcp — динамический ip-адрес, static или none — статический ip-адрес.
  • DEFROUTE - использовать интерфейс в качестве маршрута по умолчанию. Значения yes или no.
  • IPV4_FAILURE_FATAL - В случае отсутствия IPv4 протокола закрывать соединение, по умолчанию no.
  • NAME - имя интерфейса.
  • DEVICE - имя устройства.
  • UUID - идентификационный номер интерфейса.
  • ONBOOT - старт интерфейса при загрузке, значения yes или no.
  • IPV6INIT - включение поддержки IPv6 протокола, значения yes или no.
  • IPV6_AUTOCONF
    IPV6_DEFROUTE
    IPV6_PEERDNS
    IPV6_PEERROUTES
    IPV6_FAILURE_FATAL - дополнительные параметры для IPv6 протокола.

Подобная конфигурация означает получение динамического ip-адреса при каждом запуске. Для назначения статического адреса нужно изменить несколько параметров.

  • BOOTPROTO=none - изменяем на none, тем самым указывая что ip будет статическим.
  • IPADDR=192.168.1.6 - назначаем сам адрес.
  • NETMASK=255.255.255.0 - задаем маску подсети.
  • GATEWAY=192.168.1.1 - указываем адрес шлюза.
  • DNS1=192.168.1.1 - задаем адреса DNS серверов.

После внесенных изменений файл должен принять следующий вид, естественно с поправками на ваши значения адресов.

Перезапустим интерфейс для применения изменений.

Настройка сетевых интерфейсов в Debian & Ubuntu

За конфигурацию интерфейсов в Debian отвечает файл interfaces, расположенный в каталоге /etc/network/. В Debian & Ubuntu все интерфейсы прописываются в одном файле. В Debian интерфейсы именуются eth0, eth1 и т.д. В Ubuntu - enp0s3 и т.д.

Данная конфигурация обозначает получение динамического ip-адреса при загрузке системы.

  • allow-hotplug eth0 - инициализация интерфейса eth0 при определении ядром, грубо говоря запуск.
  • iface eth0 inet dhcp - назначение динамического адреса для eth0, значение inet dhcp.
  • iface lo inet loopback - интерфейс обратной петли lo, локальный интерфейс другими словами.
  • auto lo - старт при загрузке.

Строки начинающиеся со слов "auto", используются для идентификации интерфейсов при их подъеме командой ifup -a (c доп. опцией -a), именно так поднимает интерфейсы система при загрузке. Имена интерфейсов следуют за словом "auto" в этой же строке, ifup поднимет их в порядке перечисления. Строк начинающихся с "auto" может быть несколько.

Строки, начинающиеся со слов "allow-" используются для идентификации интерфейсов, которые должны быть подняты автоматически различными подсистемами.

Для задания интерфейса со статическим ip-адресом могут использоваться следующие опции.

  • inet static - указывает на статический ip-адрес
  • address - задает ip-адрес
  • netmask - указание маски подсети
  • gateway - указание шлюза
  • network - указание адреса подсети
  • broadcast - указание широковещательного канала.
  • dns-nameservers - указывает имена DNS-серверов (Если установлен пакет resolvconf)

Интерфейс настроенный на получение статического ip-адреса будет выглядеть так.

Для применения изменений перезапустим интерфейс.

Изменение hostname в CentOS

Для изменения hostname в CentOS нужно проделать несколько манипуляций с конф. файлами. Чтобы узнать текущее имя выполним команду hostname.

Текущее имя системы test. Я хочу изменить его на techlist, делаем следующее.

Изменение hostname в Debian

Существует несколько способов изменения hostname в Debian. Первый способ самый простой, но временный, он действует до первой перезагрузки. Выполните команду - hostname newname, где newname надо заменить на имя которое хотите присвоить системе.

Например я хочу изменить имя системы на techlist

Как я уже говорил, оно действует только до первой перезагрузки системы, так как при загрузке системы идет считывание имени из файла /etc/hostname.

Чтобы изменить имя системы при помощи файла /etc/hostname, отредактируем его:

Чтобы применить изменения внесенные в файл hostname, надо выполнить скрипт hostname.sh

Настройка DNS в CentOS

За настройку DNS-серверов в CentOS отвечают два файла: сам файл сетевого интерфейса и файл resolv.conf в директории /etc.

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

Настройка DNS в Debian

Назначить DNS сервера в Debian можно несколькими способами. Правкой файла /etc/resolv.conf и использованием утилиты resolvconf, только не путайте, это совершенно разные вещи.

Прежде чем настраивать DNS нужно узнать стоит ли пакет resolvconf или нет. Узнать можно так:

Если resolvconf не установлен, то можно добавить адреса DNS сразу в файл /etc/resolv.conf, сохранить изменения и перезапустить интерфейс.

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

После установки файл /etc/resolv.conf заменяется ссылкой на /etc/resolvconf/run/resolv.conf. Если понадобится внести свои значения DNS, то сделать это можно через файл интерфейсов.

После чего добавленные DNS адреса, пропишутся в файл resolv.conf автоматически.

Отключение IPv6 протокола

Протокол IPv6 - технология предоставляющая более обширное пространство ip-адресов нежели привычный IPv4. На данный момент редко используется и поддерживается не всем сетевым оборудованием.

Если IPv6 не поддерживается вашим маршрутизатором или провайдером, то имеет смысл его отключить, поскольку замедляется общая работа сети; дольше определяются имена сайтов, выполняются ненужные попытки получения IPv6 адресов, это приводит к лишним задержкам.

Узнать свой IPv6 адрес можно следующим способом

Перед тем как отключить поддержку IPv6 протокола надо узнать какая из программ использует его на текущий момент.

Все что начинается с . это IPv6, его используют три демона: sshd, chronyd и master (postfix). Для того чтобы исключить ошибки в дальнейшей работе, надо отключить IPv6 для каждого.

В CentOS

Отключение поддержки IPv6 протокола в CentOS происходит следующим образом.

Также можно убрать все строки начинающиеся с IPV6 в конфигурационном файле интерфейса.

В Debian & Ubuntu

В Debian отключение поддержки IPv6 происходит правкой файла sysctl.conf или правкой файла grub.

Применить изменения в файле sysctl.conf

Иногда бывает что IPv6 приходится отключать путем редактирования параметров загрузки ядра.

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

Сетевые настройки — первое, что нужно сделать после создания сервера для его взаимодействия с внешним миром. В этой статье детально рассмотрим как настраивать сеть в 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 для решения поставленных задач.

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