Как настроить сеть в centos

Введение

CentOS от англ. Community ENTerprise Operating System
— дистрибутив Linux, основанный на коммерческом
Red Hat Enterprise Linux компании Red Hat и совместимый с ним.

Согласно жизненному циклу Red Hat Enterprise Linux (RHEL)
, CentOS 5, 6 и 7 будут поддерживаться «до 10 лет»,
поскольку они основаны на RHEL.

Ранее версия CentOS 4 поддерживалась семь лет.

Red Hat Enterprise Linux состоит из свободного ПО с
открытым кодом, но доступен в виде дисков с бинарными пакетами только для
платных подписчиков.

Как требуется в лицензии GPL и других, Red Hat предоставляет все исходные коды.

Разработчики CentOS используют данный исходный код для создания окончательного продукта,
очень близкого к Red Hat Enterprise Linux и доступного для загрузки.

примеры файлов

Пример файла /etc/sysconfig/network-scripts/ifcfg-eth0:

# название устройства:
DEVICE=”eth0″
# в случае, если IP получаем автоматически:
#BOOTPROTO=”dhcp”
# статический IP:
BOOTPROTO=”none”
# MAC адрес сетевой карты (в этом случае привязка к MAC адресу, а не к положению в слоте и т.п.):
HWADDR=”00:00:00:00:00:00″
NM_CONTROLLED=”yes”
# инициализировать при загрузке (иначен нужен ifup):
ONBOOT=”yes”
TYPE=”Ethernet”
UUID=”ffffffff-ffff-ffff-ffff-ffffffffffff”
IPADDR=192.168.1.3
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1

Пример файла /etc/sysconfig/network-scripts/route-eth0:

192.168.5.50/24 via 192.168.0.2 dev eth0

Пример файла /etc/resolv.conf:

nameserver=192.168.1.5
nameserver=192.168.1.7
domain=mydomain.ru

Работа с файловой системой: навигация, создание-перемещение-удаление файлов, ссылки

Основные команды, используемые для навигации по файловой системе из окна терминала, создание, перемещение и удаление файлов и каталогов:

В ОС Linux существует два вида ссылок.

Жесткие ссылки привязываются к иноду, таким образом, файл присутствует в системе под несколькими разными именами. Файл существует до тех пор, пока с его инодом связано хотя бы одно имя. Понятия «жёсткая ссылка на файл» и «имя файла» являются синонимами.

Жесткие ссылки могут быть только на файлы, не на директории. Также нельзя создать жесткую ссылку на файл в другой файловой системе (у каждой ФС свой набор инодов).

Cимволические ссылки (или симлинки) — специальный вид файла, который ссылается на другой файл по имени, а не напрямую на инод. Симлинки не предохраняют файл от удаления. Если файл удалить, то симлинк на него станет нерабочим (или битым).

Симлинки создаются командой ln с опцией ‘-s’:

При работе с большим количеством файлов бывает удобно использовать маски — т.н. wildcards.

Wildcard «*» соответствует нулю или большему количеству символов:

Wildcard «?» заменяет один любой символ:

Шаблон «[]» позволяет явно указать набор символов — будут найдеты совпадения, содержащие один из указанных в скобках символов. Также в можно указать диапазон символов (для этого используется символ –/дефис) или несколько диапазонов подряд, тогда шаблон будет совпадать с одним любым символом из этого диапазона:

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

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

ip a

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

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, открываем на редактирование следующий конфигурационный файл:

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

б) для 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

NetworkManager

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

systemctl status NetworkManager

NetworkManager.service — Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-02-18 17:30:13 EET; 1 months 30 days ago
Docs: man:NetworkManager(8)
Main PID: 841 (NetworkManager)
Tasks: 5
CGroup: /system.slice/NetworkManager.service
├─ 841 /usr/sbin/NetworkManager —no-daemon
└─9599 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens192.pid -lf /var/lib/NetworkManager/dhclient-5c2584c5-7d87-4826-ba2a-79713eb62a9a-ens192.lease -cf /var/lib/Net…

Sep 24 04:12:48 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): gateway 10.1.103.254
Sep 24 04:12:48 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): lease time 7200
Sep 24 04:12:48 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): nameserver ‘10.10.10.1’
Sep 24 04:12:48 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): nameserver ‘10.1.0.2’
Sep 24 04:12:48 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): domain name ‘urn.su’
Sep 24 04:12:48 localhost.localdomain NetworkManager: <info> dhcp (ens192): domain search ‘urn.su.’
Sep 24 04:12:48 localhost.localdomain NetworkManager: <info> dhcp (ens192): domain search ‘hel.fi.urn.su.’
Sep 24 04:12:48 localhost.localdomain NetworkManager: <info> dhcp (ens192): domain search ‘ad.urn.su.’
Sep 24 04:12:48 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): state changed bound -> bound
Sep 24 04:12:48 localhost.localdomain dhclient: bound to 10.1.102.211 — renewal in 2903 seconds.

настройка параметров сети с помощью файлов конфигураций

Если Вы хотите настроить сеть таким образом, чтобы указанные параметры сети сохранялись и после перезагрузки системы, Вам необходимо изменить конфигурационные файлы.

расположение конфигурационных файлов

Настройка параметров сети (IP адрес, маска сети, шлюз, параметры DNS) производится в файлах ifcfg-ethX, которые находятся в папке /etc/sysconfig/network-scripts. Параметры DNS описываются также в файле /etc/resolv.conf. Маршруты (из таблицы маршрутизации) хранятся в файлах /etc/sysconfig/network-scripts/route-ethX.

ifcfg-ethX

Файлы находятся в папке /etc/sysconfig/network-scripts.

Название параметра Описание параметра Возможные значения Пример использования
DEVICE наименование интерфейса eth0 eth1 . device=eth0 device=eth1
BOOTPROTO способ назначения IP dhcp none static (пустое значение) bootproto=dhcp bootproto= bootproto=static bootproto=none
HWADDR MAC адрес HWADDR=»00:00:00:00:00:00″
NM_CONTROLLED должен ли интерфейс управляться NetworkManager «yes» «no» NM_CONTROLLED=»yes»
ONBOOT Должен ли этот интерфейс «подниматься» при запуске сетевой службы «yes» «no» ONBOOT=»yes»
TYPE тип интерфейса «Ethernet» TYPE=»Ethernet»
UUID UU
IPADDR IP адрес интерфейса IPADDR=192.168.1.3
NETMASK маска подсети интерфейса NETMASK=255.255.255.0
GATEWAY шлюз интерфейса GATEWAY=192.168.1.1
DNS1 1-й DNS сервер интерфейса DNS1=192.168.1.1
DNS2 2-й DNS сервер интерфейса DNS2=192.168.1.2
DOMAIN текущий домен DOMAIN=MYDOMAIN.LOCAL

resolv.conf

Этот файл находится в папке /etc.

Название параметра Описание параметра Возможные значения Пример использования
nameserver адрес DNS сервера. Таких записей может быть несколько (не более 3-х) nameserver 192.168.1.1 nameserver 192.168.1.2
domain имя локального домена (?) domain mydom.local
search подставляемое имя домена, если адрес задан не полностью search mydom.local

route-ethX

Файлы находятся в папке /etc/sysconfig/network-scripts.

Формат файла: / via dev

например: 192.168.5.50/24 via 192.168.0.2 dev eth0 или 5.12.35.141/16 via 192.168.1.3 dev eth1

Шлюз по умолчанию задается в файлах ifcfg-ethX. Можно также указать шлюз по умолчанию, например, следующим образом: default via 192.168.0.1 dev eth0

В файле route-eth0 нужно указывать все маршруты с dev eth0, а в файле route-eth1 — соответственно, все маршруты с dev eth1.

Как узнать Внешний IP-адрес

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

Как это сделать:

  1. Откройте любой специальный сайт, который может распознать IP-адрес вашего устройства. Как вариант, можно в браузере ввести в любой поисковой системе фразу «мой ip»;
  2. Альтернативный вариант: запустите терминал Линукс и укажите в нем команду wget.

Узнать IP версии 4:

IP версии 6:

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

Заключение

IP-адрес Линукс может потребоваться юзеру в различных ситуациях. Новичку нужно внимательно разобраться с типами адресов, чтобы понять специфику данного вопроса

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

Совсем немного практики – и задача уже не кажется такой сложной, как это было в начале.

Как настроить DNS в CentOS 7

Текущие настройки dns сервера в CentOS можно посмотреть в двух местах:

  • В файле с настройками сетевой карты ifcfg-eth0, которым мы ранее неоднократно редактировали.
  • В файле /etc/resolv.conf

Зачем они сейчас в двух местах, я не знаю, но раньше настройки dns сервера в каких-то дистрибутивах, не помню уже точно каких, указывались только в resolv.conf, но в какой-то момент это изменилось. И все сетевые настройки стали храниться в одном файле вместе с адресом, шлюзом, маской и прочим. Если сейчас отредактировать файл resolv.conf и внести туда какие-то dns сервера, то после перезагрузки они будут заменены на значения из файла ifcfg-eth0.

Так что для того, чтобы установить параметры dns сервера, нужно отредактировать файл сетевых настроек ifcfg-eth0, добавив туда столько серверов, сколько требуется.

Например так:

DNS1=”192.168.159.2″
DNS2=”8.8.8.8″
DNS3=”8.8.4.4″

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

# cat /etc/resolv.conf

# Generated by NetworkManager
nameserver 192.168.159.2
nameserver 8.8.8.8
nameserver 8.8.4.4Как отключить ipv6 в CentOS 7

В настоящее время активного использования протокола ipv6 нет и в обычной работе он не нужен. Хотя нас уже много лет пугают, что свободных ip адресов уже практически не осталось, но на деле пока еще всем хватает. Так что с точки зрения практических соображений ipv6 в настоящее время на сервере не нужен и его можно отключить.

Перед отключением ipv6 необходимо на всякий случай проверить, какие программы его используют в своей работе. Это нужно для того, чтобы избежать ошибок в их работе, предварительно отключив ipv6 в конфигурациях. Для того, чтобы увидеть, какие программы висят на ipv6 интерфейсе воспользуемся командой netstat:

# netstat -tulnp

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2317/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1333/sshd
tcp6 0 0::1:25:::* LISTEN 2317/master
tcp6 0 0:::22:::* LISTEN 1333/sshd
udp 0 0 0.0.0.0:49252 0.0.0.0:* 694/avahi-daemon: r
udp 0 0 0.0.0.0:123 0.0.0.0:* 715/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 694/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 715/chronyd
udp6 0 0:::123:::* 715/chronyd
udp6 0 0::1:323:::* 715/chronyd

Все строки с::: это ipv6 протокол. В моем случае это sshd, postfix и chronyd. Отключим им ipv6 и оставим только ipv4.

Начнем с sshd. Открываем файл настроек /etc/ssh/sshd_config и находим строки:

#AddressFamily any
#ListenAddress 0.0.0.0

Раскомментируем их и изменим. Должно получиться вот так:

AddressFamily inet
ListenAddress 0.0.0.0

Теперь открываем файл настроек постфикс /etc/postfix/main.cf. Ищем там строку:

#inet_protocols = all

Меняем на:

Inet_protocols = ipv4

Отключаем ipv6 в chronyd. Для этого создаем файл /etc/sysconfig/chronyd и добавляем строку:

OPTIONS=-4

Теперь отключаем ipv6 в CentOS. Открываем файл /etc/sysctl.conf и добавляем туда строки:

Net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Редактируем файл /etc/sysconfig/network, добавляя туда:

NETWORKING_IPV6=no
IPV6INIT=no

Перезагружаемся и проверяем результат:

# reboot# ifconfig

eno16777728: flags=4163 mtu 1500
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 2301 bytes 243024 (237.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2138 bytes 1327955 (1.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Нигде нет упоминания про inet6 и адреса формата ipv6. Значит все в порядке, мы отключили ipv6 в CentOS. Теперь проверим список открытых портов:

# netstat -tulnp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2291/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1322/sshd
udp 0 0 0.0.0.0:123 0.0.0.0:* 2453/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 697/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 2453/chronyd
udp 0 0 0.0.0.0:57259 0.0.0.0:* 697/avahi-daemon: r

Все порты ipv4. Все в порядке, наша задача выполнена.

hostname

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

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

hostnamectl

Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: a714bee8007d114a84177dbb15072f2e
Boot ID: b02d9498c1764a338c781672aac1be29
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.el7.x86_64
Architecture: x86-64

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

Шаг 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

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

CentOS 7 имеет широкий спектр инструментов, которые можно использовать для настройки и управления сетью, от ручного редактирования файла конфигурации сети до использования таких команд, как ip, ifconfig, nmtui, nmcli или route.

Самая простая утилита, которую новичок может использовать для управления и изменения конфигурации сети, — это графическая командная строка nmtui.

Чтобы изменить имя хоста системы с помощью утилиты nmtui, выполните команду nmtui-hostname, задайте имя хоста своего компьютера и нажмите OK для завершения, как показано на снимке экрана ниже.

Чтобы управлять сетевым интерфейсом, выполните команду nmtui-edit, выберите интерфейс, который вы хотите редактировать, и выберите правку в правом меню, как показано на скриншоте ниже.

Когда вы перейдете в графический интерфейс, предоставленный утилитой nmtui, вы можете настроить параметры IP сетевого интерфейса, как показано на снимке экрана ниже. Когда вы закончите, перейдите к OK, используя клавишу , чтобы сохранить конфигурацию и выйти.

Чтобы применить новую конфигурацию сетевого интерфейса, выполните команду nmtui-connect, выберите интерфейс, которым вы хотите управлять, и нажмите опцию Деактивировать / Активировать, чтобы вывести из эксплуатации и поднять интерфейс с настройками IP, как показано на скриншотах ниже.

Чтобы просмотреть настройки сетевого интерфейса, вы можете проверить содержимое файла интерфейса или выполнить приведенные ниже команды.

Проверьте конфигурацию сети

Другими полезными утилитами, которые можно использовать для управления скоростью, состоянием канала или получения информации о сетевых интерфейсах машины, являются ethtool и mii-tool.

Проверьте сетевое соединение

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

Чтобы вывести список всех серверов, которые открыли сокеты TCP или UDP в состоянии прослушивания, введите следующие команды. Тем не менее, UDP-сервер не будет перечислять состояние сокетов из-за того, что UDP — это протокол без установления соединения, который только отправляет пакеты по сети и не устанавливает соединения.

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

В данной инструкции рассмотрим использование сетевого моста.

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

Устанавливаем пакет для работы с bridge:

yum install bridge-utils

Смотрим список сетевых интерфейсов и их настроек:

ip a

В моем примере были следующие данные:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp4s0f0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.24/24 brd 192.168.1.255 scope global enp4s0f0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:76ff:fe04:26c6/64 scope link
       valid_lft forever preferred_lft forever
3: enp5s5: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:16:76:04:26:c7 brd ff:ff:ff:ff:ff:ff
4: virbr0: mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff

* из этого для нас важны enp4s0f0 — реальный сетевой интерфейс с настроенным IP-адресом 192.168.1.24, через который идет подключение сервера к локальной сети (из него мы будем делать мост); 00:16:76:04:26:c6 — mac-адрес реального ethernet адаптера; virbr0 — виртуальный сетевой адаптер.

Редактируем настройки реального адаптера:

vi /etc/sysconfig/network-scripts/ifcfg-enp4s0f0

Приводим его к виду:

ONBOOT=yes
BRIDGE=br0
TYPE=Ethernet
DEVICE=enp4s0f0
BOOTPROTO=none

Создаем интерфейс для сетевого моста:

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.24
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=77.88.8.8

Перезапускаем сетевую службу:

systemctl restart network

Сетевые настройки должны измениться — в моем случае:

2: enp4s0f0: mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
3: enp5s5: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:16:76:04:26:c7 brd ff:ff:ff:ff:ff:ff
4: virbr0: mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:cd:86:98 brd ff:ff:ff:ff:ff:ff
6: br0: mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 00:16:76:04:26:c6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.24/24 brd 192.168.1.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:76ff:fe04:26c6/64 scope link
       valid_lft forever preferred_lft forever

Настаиваем перенаправления сетевого трафика:

vi /etc/sysctl.d/99-sysctl.conf

net.ipv4.ip_forward=1

Применяем настройки:

sysctl -p /etc/sysctl.d/99-sysctl.conf

Перезапускаем libvirtd:

systemctl restart libvirtd

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

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

Содержание файла ifcfg-enp0s3:

TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="cac20b32-66a0-46bd-9b68-ec786f52d2f8"
DEVICE="enp0s3"
ONBOOT="yes"

Рассмотрим самые важные параметры и значения, чтобы понимать что к чему. Более подробно все параметры описаны в официальной документации 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_AUTOCONFIPV6_DEFROUTEIPV6_PEERDNSIPV6_PEERROUTESIPV6_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 серверов.

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

TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.6 
NETMASK=255.255.255.0 
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=cac20b32-66a0-46bd-9b68-ec786f52d2f8
DEVICE=enp0s3
ONBOOT=yes

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

ifdown enp0s3 && ifup enp0s3

Изменить locale

Чтобы в CentOS изменить locale можно либо откредактирвоать файл

locale.conf

в /etc/
либо применить команду localect (начиная с CentOS 7)

Предположим, что нужно поменять локаль на en_us.iso88591

Откройте

locale.conf

и найдите строку LANG

sudo vi /etc/locale.conf

Замените UTF-8 на iso88591

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

sed

— выполните команду

sudo sed -i s/LANG=\»en_US\.UTF-8\»/LANG=\»en_US\.iso88591\»/ /etc/locale.conf

Чтобы проверить изменения выполните

localectl status

System Locale: LANG=en_US.iso88591
VC Keymap: us
X11 Layout: us

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

sudo vi ~/.bashrc

И внесите в конец файла следующий код

locale -c -k LC_CTYPE

LC_CTYPE
ctype-class-names=»upper»;»lower»;»alpha»;»digit»;»xdigit»;»space»;»print»;»graph»;»blank»;»cntrl»;»punct»;»alnum»;»combining»;»combining_level3″
ctype-map-names=»toupper»;»tolower»;»totitle»
ctype-width=16
ctype-mb-cur-max=1
charmap=»ISO-8859-1″

Как настроить сеть в консоли

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

Как узнать, какие сетевые интерфейсы установлены

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

или

Результат выполнения каждой из команд в консоли представлен ниже. В примере команда показывает, что установлено два интерфейса — lo (локальная петля) и enp0s3 (сетевой адаптер Ethernet). Заметьте, что команда отображает только названия интерфейсов. Имена интерфейсам назначаются автоматически.

Как настроить сеть

Рассмотрим настройку сети для сетевого интерфейса, например, с названием enp0s3.

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

Чтобы настроить сеть для интерфейса:

  1. 1.

    Для начала вы можете посмотреть сетевые настройки с консоли. Откройте конфигурационный файл с помощью текстового редактора nano (вы можете использовать другой удобный вам редактор):

    Где enp0s3 — название сетевого интерефейса.

    Содержимое конфигурационного файла зависит от сетевого интерфейса. В файле могут быть указаны разные параметры сети. Файл выглядит следующим образом:

  2. 2.

    Измените IP-адрес, маску подсети, шлюз и серверы DNS. Для этого замените или добавьте в файл соответствующие строки:

    Где:

    DEVICE — имя настраиваемого сетевого интерфейса;

    BOOTPROTO — способ назначения IP-адреса в CentOS: static (вручную), dhcp (автоматический) или none (не использовать dhcp);

    ONBOOT — запуск интерфейса при старте сервера: yes (запускать автоматически), no (запускать вручную);

    IPADDR — IP-адрес;

    NETMASK — маска подсети;

    GATEWAY — шлюз для доступа к интернету;

    DNS1 (а также DNS2, DNS3) — DNS-серверы — можно добавить несколько.

  3. 3.
    Сохраните изменения и выйдите из редактора. Для этого нажмите Ctrl+X, затем Y.
  4. 4.

    Затем необходимо перезапустить сеть.
    Если у вас CentOS 7, введите команду:

    Если у вас CentOS 8, введите команду:

Готово, после того, как произойдет перезапуск сети, сеть будет настроена. Мы рассмотрели, как происходит в CentOS настройка сети из консоли.

Сетевые настройки на сервере CentOS

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

Зайдя в него мы видим список подключенных сетевых карт. Каждую из них можно включить соответствующим ползунком (пункт 1 на картинке). При активировании интерфейса он автоматически получает настройки по dhcp. Результат работы dhcp можно посмотреть тут же. Если вас не устраивают эти настройки, их можно отредактировать, нажав configure (пункт 3 на картинке). Здесь же можно задать hostname (пункт 2 на картинке):

Открыв окно дополнительный настроек Ehernet, вы сможете изменить имя сетевого интерфейса, указать настройки IP (пункт 1 на картинке), выбрать ручные настройки (пункт 2 на картинке), назначить ip адрес (пункт 3 на картинке), установить dns сервер (пункт 4 на картинке) и сохранить сетевые настройки (пункт 5 на картинке):

После выполнения остальных настроек начнется установка. После установки у вас будет сервер с указанными вами сетевыми настройками.

Теперь рассмотрим другую ситуацию. Сервер, а соответственно и конфигурацию сети, производили не вы, а теперь вам надо ее посмотреть либо изменить. В вашем распоряжении консоль сервера, в ней и будем работать. Если у вас установка производилась с дистрибутива minimal, то при попытке посмотреть сетевые настройки с помощью команды ifconfig в консоли вы увидите следующее:

или в русской версии:

Для работы с ifconfig и прочими сетевыми утилитами необходимо установить пакет net-tools. Сделаем это:

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

Если у вас нет желания устанавливать дополнительный пакет, то можно воспользоваться более простой командой ip с параметрами:

Мы увидели конфигурацию сети, теперь давайте ее отредактируем. Допустим, нам нужно сменить ip адрес. Для этого идем в директорию /etc/sysconfig/network-scripts и открываем на редактирование файл ifcfg-eth0 или ifcfg-ens18. Название файла будет зависеть от имени сетевого интерфейса. В Centos 8 по-умолчанию убрали поддержку настройки сети через конфигурационные скрипты, поэтому установите отдельно пакет network-scripts.

По настройкам из этого файла мы получаем ip адрес по dhcp. Чтобы вручную прописать статический ip, приводим файл к следующему содержанию:

Мы изменили параметры:

BOOTPROTO с dhcp на none
DNS1 указали dns сервер
IPADDR0 настроили статический ip адрес
PREFIX0 указали маску подсети
GATEWAY0 настроили шлюз по-умолчанию

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

Проверяем, применилась ли новая конфигурация сети:

Все в порядке, новые настройки сетевого интерфейса установлены.

Заключение

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

Давайте разберемся в том, что мы сделали:

  1. Выполнили предварительную настройку сервера, подготовили его к работе.
  2. Включили маршрутизацию.
  3. Настроили firewall.
  4. Включили NAT.
  5. Установили и настроили dnsmasq для организации служб dns и dhcp.
  6. Проанализировали сетевую активность шлюза, узнали кто загружает канал интернета.

Это минимально необходимый функционал для организации работы шлюза на CentOS 7. Следующим этапом может быть настройка прокси сервера, шейпера траффика, настройка 2-х и более провайдеров и много другое. Что-то из этого я рассмотрю в своих будущих статьях.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Administrator Linux. Professional» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Что даст вам этот курс:

  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.

Проверьте себя на вступительном тесте и смотрите подробнее программу по . Цены 2020 года.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector