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

В данном материале я затрону актуальную тему, с которой начинается практически любая первоначальная работа с сервером. Настройка основных параметров сети в CentOS 7 и 8 - ip адрес, dhcp, ipv6, dns, hostname, статические маршруты, сетевые карты и другие network параметры. Двигаться по теме будем шаг за шагом от простого к сложному, разбирая все нюансы по порядку и отвечая на наиболее популярные вопросы.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Цели статьи

  1. Рассказать, как выполнить базовые сетевые настройки на сервере centos версий 7 и 8.
  2. Показать дополнительные возможности по настройки сети.
  3. На нескольких примерах рассказать, как решать типовые проблемы с сетью.
  4. Показать некоторые полезные сетевые утилиты.

Данная статья является частью единого цикла статьей про сервер Centos.

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

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

centos network

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

centos сетевой интерфейс

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

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

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

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

-bash: ifconfig: command not found

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

-bash: ifconfig команда не найдена

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

# yum install net-tools

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

# ifconfig

eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet6 fe80::20c:29ff:fe7d:593f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 319 bytes 36709 (35.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 256 bytes 148817 (145.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 6 bytes 624 (624.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 624 (624.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

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

# ip addr

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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:7d:59:3f brd ff:ff:ff:ff:ff:ff
inet 192.168.159.129/24 brd 192.168.159.255 scope global dynamic eno16777728
valid_lft 1709sec preferred_lft 1709sec
inet6 fe80::20c:29ff:fe7d:593f/64 scope link
valid_lft forever preferred_lft forever

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

# yum install network-scripts

Файл ifcfg-eth0 имеет примерно следующее содержание:

icfg-eth0

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

ifcfg-eth0 static ip

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

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

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

# systemctl restart network

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

# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet6 fe80::20c:29ff:fe7d:593f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 672 bytes 71841 (70.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 572 bytes 290861 (284.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

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

Как получить сетевые настройки по DHCP

Теперь рассмотрим обратную ситуацию. Допустим, у вас сетевая карта имеет какие-то настройки, установленные вручную. Но вы хотите, чтобы ваш компьютер получал настройки сети по dhcp в качестве клиента. Для этого вам нужно произвести операцию, обратную той, что мы делали раньше. То есть открываем файл /etc/sysconfig/network-scripts/ifcfg-ens18 и удаляем там строки с параметрами DNS, IPADDR, PREFIX, GATEWAY а в параметре BOOTPROTO указываем значение "dhcp".

Настройка dhcp

Сохраняем файл и перезапускаем сеть:

# systemctl restart network

Затем проверяем, получил ли наш client по dhcp настройки.

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

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

  1. В файле с настройками сетевой карты ifcfg-eth0, которым мы ранее неоднократно редактировали.
  2. В файле /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

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

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

# 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 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

Добавляем запрет на работу ipv6 в конфигурацию grub. Открываем конфиг /etc/default/grub и добавляем к параметру GRUB_CMDLINE_LINUX еще одно значение ipv6.disable=1. Должно получиться примерно так:

GRUB_CMDLINE_LINUX="rd.lvm.lv=cl_centos8/root rhgb quiet ipv6.disable=1"

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

# grub2-mkconfig -o /boot/grub2/grub.cfg

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

# reboot
# ifconfig

eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
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<UP,LOOPBACK,RUNNING> 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 в CentOS

По-умолчанию, во время установки CentOS ставит имя хоста localhost.localdomain. Если вы его не поменяли, то можно это сделать позже. Для начала давайте проверим, какое имя хоста у вас установлено. Делается это с помощью команды в консоли hostname, либо с помощью uname:

# hostname

localhost.localdomain
# uname -n

localhost.localdomain

Для того, чтобы изменить имя хоста в CentOS, необходимо отредактировать файл /etc/hostname. Проверим его содержимое:

# cat /etc/hostname

localhost.localdomain

Отредактируем этот файл, чтобы изменить hostname:

# mcedit /etc/hostname

centos.localhost

Сохраняем файл и проверяем:

# hostname

centos.localhost

Есть готовая команда, которая сразу устанавливает необходимое имя сервера:

# hostnamectl set-hostname centos.localhost

Все в порядке, мы изменили имя хоста на centos.localhost

Установить шлюз по-умолчанию в CentOS

Если по каким-то причинам при настройке сетевых параметров у вас не установился шлюз по-умолчанию, то сделать это можно вручную. Для начала проверим, какой шлюз по-умолчанию установлен в системе в данный момент:

# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 149.154.71.254 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
149.154.70.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
192.168.1.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0

Строка с Destination 0.0.0.0 определяет адрес шлюза. Если у вас ее нет, либо в поле Gateway установлен неверный шлюз, то можно это изменить. Устанавливаем шлюз по-умолчанию:

# route add default gw 192.168.0.1

Или то же самое с помощью команды ip.

# ip r
default via 10.20.1.1 dev ens18 proto dhcp metric 100 
10.20.1.0/24 dev ens18 proto kernel scope link src 10.20.1.23 metric 100
# ip route add default 10.20.1.0/24 dev ens18

Или так:

# ip route add default via 10.20.1.1

Network Manager в CentOS

В CentOS по-умолчанию имеется служба, которая управляет всеми сетевыми подключениями - NetworkManager. Она постоянно контролирует сетевые настройки и с помощью демона по управлению конфигурациями вносит соответствующие изменения в активные сетевые устройства. Она поддерживает стандартные файлы конфигураций ifcfg.

Список сетевых утилит и приложений:

Приложение Описание
NetworkManager Стандартный networking daemon
nmtui Простой текстовый интерфейс (TUI) для NetworkManager
nmcli Утилита, работающая в командной строке, которая позволяет пользователям и скриптам взаимодействовать с NetworkManager
control-center Утилита с графическим интерфейсом оболочки GNONE
nm-connection-editor GTK+ 3 приложения, необходимые для некоторых задач, не поддерживаемых control-center

Пользователи не взаимодействуют с NetworkManager в CentOS напрямую, для этого используются графические и утилиты командной строки. Одной из таких утилит является system config network tui. В Centos 8 по-умолчанию NetworkManager является рекомендованным способом по настройке сети. Все остальные способы объявлены deprecated.

System config network tui

Для управления сетевыми настройками в CentOS можно воспользоваться графической утилитой nmtui. Проверить ее наличие в системе очень просто. Достаточно запустить ее в консоли:

# nmtui
Настройка Network Manager

Если она у вас не установлена, то исправить это очень просто. Устанавливаем в CentOS system config network tui:

# yum install NetworkManager-tui

С помощью tui можно указать любые сетевые настройки, которые мы делали раньше через командную строку и редактирование конфигурационных файлов network-scripts. Давайте сделаем это. Вызываем программу:

# nmtui

Выбираем первый пункт Edit a connection, затем выбираем сетевой интерфейс и жмем "Edit":

Настройка сетевой карты

Здесь мы можем изменить имя сетевой карты, mac адрес, указать тип сетевых настроек - ручной или dhcp, указать вручную ip адрес, адрес шлюза, днс сервера, добавить маршруты и некоторые другие настройки:

Настройка сетевых параметров в NetworkManager

После завершения редактирования сохраняем настройки, нажимая ОК.
Если в первом экране утилиты выбрать пункт Set System Hostname, то можно быстро указать имя хоста. Результат будет такой же, как мы делали раньше в консоли.

Если вы будете готовиться к сдаче сертификации по RHEL, то везде будете видеть рекомендацию использовать nmtui для настройки сети. Суть в том, что на экзамене время ограничено, а с помощью network manager его можно и нужно экономить. Считается, что так настраивать сеть быстрее.

Как добавить статический маршрут в CentOS

Для управления маршрутизацией в CentOS может понадобиться добавить статический маршрут. Сделать это достаточно просто с помощью консольной команды. Для начала проверим существующие маршруты, используя netstat:

# netstat -nr

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728

В данном случае у нас один маршрут для адреса 0.0.0.0/0.0.0.0 шлюз используется 192.168.159.2, он же шлюз по-умолчанию. То есть по сути, статических маршрутов никаких нет. Добавим один из них.

Допустим, у нас есть подсеть 192.168.8.0 маска 255.255.255.0, трафик в эту подсеть маршрутизирует шлюз 192.168.159.5 Добавляем маршрут:

# route add -net 192.168.8.0/24 gw 192.168.159.5

Проверяем, появился ли добавленный маршрут в таблицу маршрутизации:

# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.8.0 192.168.159.5 255.255.255.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728

Все в порядке, маршрут добавлен. Делаем то же самое с помощью утилиты ip.

# ip r
# ip route add 192.168.8.0/24 via 192.168.159.5

Но после перезагрузки этот статический маршрут будет удален. Чтобы этого не произошло и добавленные маршруты сохранялись, необходимо их записать в специальный файл. В папке /etc/sysconfig/network-scripts создаем файл с именем route-eth0 следующего содержания:

# mcedit /etc/sysconfig/network-scripts/route-eth0

192.168.8.0/24 via 192.168.159.5

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

# reboot
# netstat -nr

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.8.0 192.168.159.5 255.255.255.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728

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

Как настроить 2 IP адреса на одном интерфейсе

Если у вас появилась необходимость настроить 2 IP адреса на одном интерфейса в CentOS, то сделать это достаточно просто. Воспользуемся командой ifconfig. Для начала проверим список сетевых интерфейсов:

# ifconfig

eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 254 bytes 30173 (29.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 204 bytes 27658 (27.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 11 bytes 940 (940.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11 bytes 940 (940.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Добавим к интерфейсу eno16777728 еще один ip адрес 192.168.159.120:

# ifconfig eno16777728:1 192.168.159.120 up

Проверим, что получилось:

# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 254 bytes 30173 (29.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 204 bytes 27658 (27.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eno16777728:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.120 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 11 bytes 940 (940.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11 bytes 940 (940.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

То же самое, с помощью ip.

# ip a add 192.168.159.120/24 dev eno16777728:1

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

# mcedit /etc/sysconfig/network-scripts/ifcfg-eno16777728:1

DEVICE=eno16777728:1
BOOTPROTO=static
IPADDR=192.168.159.120
NETMASK=255.255.255.0
ONBOOT=yes

Сохраняем файл, перезагружаемся и проверяем, что получилось. Второй ip адрес должен быть на месте.

Как сделать перезапуск сети в CentOS

Ранее я уже касался этого вопроса, но на всякий случай повторим отдельно. Допустим, вы внесли некоторые изменения в конфигурацию сети. Как применить эти настройки, не перезагружая сервер? Очень просто. Для перезапуска сети в CentOS достаточно воспользоваться командой systemd:

# systemctl restart network

Если увидите ошибку:

Failed to restart network.service: Unit network.service not found.

Значит у вас не установлен пакет network-scripts, а управление сетью выполняется с помощью NetworkManager, который сам перезапускает сеть после изменения настроек.

Если у вас старая версия Centos без systemd, а это 6-я версия и младше, то сеть перезапускается вот так.

# /etc/init.d/network restart

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

Как узнать IP адрес в CentOS

Для того, чтобы быстро узнать текущий IP адрес в CentOS необходимо воспользоваться следующими командами:

# ifconfig | grep inet

inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet 127.0.0.1 netmask 255.0.0.0

Либо второй вариант определения локального ip адреса:

# ip addr | grep inet

inet 127.0.0.1/8 scope host lo
inet 192.168.159.129/24 brd 192.168.159.255 scope global eno16777728

Обе команды позволяют быстро узнать свой ip адрес.

Что делать, если CentOS не видит сетевую карту?

Вы установили сервер, загрузились и обнаружили, что в системе нет ни одной сетевой карты. Что в таком случае делать? Первым делом посмотрите вывод команды dmesg и поищите там поминание о своей карте. Возможно, она в системе есть, просто не активирована. Активировать ее можно с помощью nmtui, а котором я рассказывал выше.

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

активировать сетевую карту

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

Есть еще вероятность, что вы не увидите своей карточки при выводе команды ifconfig, если в эту карту не воткнут сетевой провод. Чтобы наверняка посмотреть все интерфейсы, необходимо использовать ключ -a:

# ifconfig -a

Есть еще один способ поискать сетевую карту в системе. Установите пакет pciutils:

# yum -y install pciutils

И посмотрите вывод команды:

# lspci | grep Ethernet

Если сетевая карта видится системой, то должно быть что-то в этом роде:

02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

Если в выводе пусто, значит сетевая карта не определена.

Что делать, если сеть недоступна в CentOS?

Допустим, вы пытаетесь пинговать какой-то адрес, например 8.8.8.8 и получаете ответ, что сеть не доступна:

# ping 8.8.8.8

А в ответ получаете:

connect: Network is unreachable

Такая ситуация может возникнуть, если у вас не установлен шлюз по-умолчанию. Добавить его можно с помощью команды:

# route add default gw 192.168.0.1

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

Использование сетевых утилит traceroute, dig в CentOS

Для диагностики сетевых подключений в CentOS полезно использовать специальные утилиты. Но если вы использовали установку minimal, то их скорее всего в системе не будет. К примеру, популярная утилита traceroute при попытке ее запуска выдаст сообщение:

# traceroute ya.ru
bash: traceroute: command not found

Ее нужно установить отдельно из репозитория:

# yum install traceroute

То же самое с популярной программой dig для работы с dns серверами и записями:

# dig ya.ru
bash: dig: command not found

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

# yum install bind-utils

Настройка 802.1Q VLAN в CentOS

Для поднятия тегированного интерфейса на CentOS нужно в первую очередь проверить поддержку ядром 8021q:

# modprobe 8021q

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

# lsmod | grep 8021q
8021q 29022 0
garp 14384 1 8021q
mrp 18542 1 8021q

Все в порядке, модуль 8021q загружен, добавим его в автозагрузку:

# echo 8021q >> /etc/modules-load.d/8021q.conf

Теперь создаем файл конфигурации для vlan в /etc/sysconfig/network-scripts:

# mcedit ifcfg-eth0.2000

VLAN=yes
DEVICE=eth0.2000
BOOTPROTO=static
ONBOOT=yes
TYPE=Vlan
IPADDR=192.168.100.2
NETMASK=255.255.255.0

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

Error: no device found for connection 'System eth0.2000'.

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

# ifup eth0.2000

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

Проверяем наш vlan:

# ip l ls

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
 link/ether 00:15:5d:01:0f:06 brd ff:ff:ff:ff:ff:ff
3: eth0.2000@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
 link/ether 00:15:5d:01:0f:06 brd ff:ff:ff:ff:ff:ff

Все в порядке, тегированный интерфейс поднят. По аналогии можно создать еще несколько подобных интерфейсов, не забывая изменять им имена и адреса.

Часто задаваемые вопросы по теме статьи (FAQ)

Стоит ли удалять NetworkManager?

Все зависит от конкретной ситуации. Я чаще всего удаляю, потому что мне его функционал не нужен. В подавляющем большинстве случаев, я настраиваю сеть в centos один раз во время установки сервера. Какой мне смысл оставлять NM в системе и постоянно его обновлять? Тем не менее Redhat настоятельно рекомендует использовать NetworkManager для настройки сети и в этом есть определенный смысл. К примеру, если вы будете проходить сертификацию, то вам 100% нужен будет этот инструмент, так как с его помощью можно быстрее настроить сеть и вероятность ошибки будет минимальной. Так что решайте сами по месту, нужен вам Network Manager или нет.

Есть ли разница в том, как настраивать hostname, через правку файла или команду hostnamectl?

Принципиальной разницы нет. Результат будет один и тот же.

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

Централизованно для всей системы настроить proxy не получится. Для каждой службы нужно это делать отдельно - yum или dnf, браузер и т.д.

Нужно ли отключать ipv6 в системе?

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

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

На этом мой объемный материал на тему настройки сети в CentOS закончен. Буду очень рад комментариям, замечаниям, поправкам. Они наверняка будут. Создавая подобные материалы я в первую очередь учусь сам и подтягиваю свои знания в предметной области. Тут могут быть где-то ошибки и описки, хотя я и проверяю все на живых системах во время написания руководств, но все равно возможны неточности и опечатки.

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

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

96 комментариев

  1. Дмитрий

    Использую redos. Настроил dhcp на одной машине, другая получает ip адрес от него. Но выхода в интренет не имеет. Возможно что то забыл сделать. Подскажите пожалуйста что мог забыть упустить. Делал на виртуалбоксе. У dhcp сервера два интрефейса один нат другой виртуальный адрес хоста. с сревера логично что выход в интернет есть

    • Тут скорее всего два варианта могут быть:
      1. Не работает или неправильно работает NAT.
      2. Не включен forward пакетов между интерфейсами на шлюзе.

  2. Алексей

    Добрый день!
    Прошу объяснить как у Вас интерфейс "eno16777728" превратился в "eth0"

    • Он не превращался. Эта статья претерпела множество редакций. Какие-то фрагменты писались на основе одного сервера, какие-то другого. Соответственно, на разных серверах были разные имена сетевых интерфейсов.

  3. Руслан И

    Спасибо Вам за материал. Чётко, доходчиво! Оформление на высшем уровне, даже PDF файл есть! Всех Вам благ!

  4. Аноним

    При неработающей сети начинать с установки пакетов - интересный подход. :)
    Только ведь не установятся они - чтобы достучаться до сервера с пакетами сеть должна работать

    • Все же чаще всего сеть настраивается во время установки. По крайней мере в моем руководстве это делается. Потом уже, если надо что-то поменять, нужна информация о том, как это сделать.

  5. Добрый день! Centos 7 64, серверная платформа asus, имеет 4 встроенных сетевых интерфейса. Centos определил их как enp(7,8,9,10)s0. Вдруг появился еще один enp11s0. Сеть настроена в ручную на enp8s0. При перезагрузках запускается то 7, то 11, то 10, и система дает им приоритет. Что это за скачки и как это можно исправить?

    • Что значит при перезагрузках запускается то 7, то 11? О каком приоритете идет речь? У вас настроен только один интерфейс и при перезагрузках он меняет свое название? Вы это имеете ввиду?

      • Аноним

        Настроен интерфейс enp8s0 на статический ip 192.168.1.55. При перезагрузке появляется адрес у интерфейса enp7s0 от dhcp роутера 192.168.1.172. Система считает его основным, а т.к. в iptables.sh прописан enp8s0 с 192.168.1.55, то нет доступа в интернет и невозможно зайти на сервер по ssh

  6. Владимир

    После обновления Centos 7 до 8 перестали работать статически маршруты. смотря вывод ip route и netstat -nr вижу что по какой-то причине, которую я так и не могу разгадать, перестали считываться маршруты из route-eth0. Может подскажешь в какую сторону копать, впервые с таким столкнулся

    • В Centos 8 убрали поддержку network-scripts. Думаю, дело в этом. Их надо ставить отдельно:

      # dnf install network-scripts

      • Владимир

        нет, так как network-scripts стоит. я тоже на это грешил. куда рыть так и не понятно.

  7. Здравствуйте! Давно пользуюсь вашими статьями. Может быть сможете подсказать. Два дня уже голову ломаю... Есть сервер на Windows Server 2019 (1С, RDP, файловая шара) и ноутбук на Windows 10. Ноутбук иногда находится в одной сети с сервером, а иногда подключается извне. Требуется чтобы ноут имел доступ к серверу (а в идеале - ко всей сети, где находится север, служба маршрутизации на сервере включена) и в одном случае, и в другом. Статического IP у сети, где находится сервер, нет. Решил сделать связку через промежуточный узел. В качестве такого узла имеем небольшую ВДСку в дата-центре с CentOS 7 и OpenVPN на борту. ВДСка имеет внешний интерфейс eth0 со статическим IP и интерфейс tun0 (10.250.220.1) от OpenVPN. И сервер, и ноутбук нормально подключаются к ВДСке, видят ее и друг друга (в конфиге OpenVPN включено client-to-client). В локальной сети сервер имеет адрес 192.168.114.100, в VPN - 10.250.220.6. Ноутбук в VPN получает 10.250.220.10.

    И во тут начинается проблема. Находясь в локальной сети, ноут спокойно находит сервер по NetBios имени. Для подключения по имени из VPN, можно сделать соответствующую запись в hosts, но когда ноут снова окажется в локалке, запись в hosts либо будет вести в никуда, если VPN будет отключен, либо будет гнать трафик через ВДСку, если VPN включить. Решил сделать так, чтобы при удаленной работе при включении VPN, трафик шел через ВДС, а при локальной работе, когда VPN выключен - напрямую. Для этого в файле hosts ноутбука сделал запись: "server 192.168.114.100", в конфиге сервера OpenVPN для клиента ноутбука прописал: push "route 192.168.114.0 255.255.255.0". Когда ноут в локалке - все просто, а когда удаленно, ноутбук получает этот маршрут при подключении к VPN и "понимает", что трафик в подсеть 192.168.114.0 нужно отправлять через 10.250.220.1, что и делает. Но дальше дело не идет. Как я понимаю, нужно "объяснить" ВДСке, что делать с этими пакетами дальше, а именно - перенаправлять на 10.250.220.6. Для этой цели пытаюсь прописать там соответствующий маршрут: "route add -net 192.168.114.0/24 gw 10.250.220.6", но получаю ответ: "SIOCADDRT: Сеть недоступна". Перепробовал уже 100500 разных вариаций - ответ один и тот же.

    Что я делаю не так? Буду очень признателен за наводку на путь истинный!

    • Вы не в том направлении стали решать проблему. Не надо использовать файл hosts. На vds поднимите днс сервер, например, dnsmasq. Добавьте туда статическую dns запись с ip адресом сервера в vpn. В openvpn есть настройка, которая позволяет передать клиенту vpn сервер. Укажите этот dnsmasq. Этого будет достаточно.

  8. Константин

    Добрый день! Почему при установке по умолчанию NetworkManager как-то не правильно отдает hostname машины? Т.е. dhcp сервер на windows server выдает ему айпи, но dns на том же windows server не хочет обновлять/добавлять у себя А запись.

    • А разве должна по дефолту обновляться dns запись? По-моему, это реализуется через интеграцию DNS с AD, а не с dhcp.

      • Константин

        Частично разобрался. По умолчание поле nmcli connection modify ipv4.dhcp-fqdn имеет пустое значение почему-то. После установки полного fqdn линукс клиент начинает нормально регистрироваться на виндовом dhcp и dns серверах. Удалять NetworkManager считаю не правильным подходом. Не зря же его ставят по умолчанию. Хотя оно и глючное местами или просто его не умеем готовить.

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

          Redhat стремится к унификации настроек, чтобы все было единообразно и меньше возможности ошибиться. Так что где-то его инструменты могут быть полезны, где-то не очень. Каждый решает сам.

          К примеру, если вы будете сдавать экзамен на сертификат, надо использовать NM, чтобы экономить время, которого в обрез на экзамене. Меньше шансов ошибиться и потратить лишнее время на исправление ошибки.

  9. Никита

    Добрый день. Важное дополнение. Делал все по инструкции на вируалке под управление Hyper-V. Не получалось правильно получить IP адрес от DHCP сервера, пока не добавил строку в network скрипт:
    NM_CONTROLLED=no

    • Никита

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

      • Все верно. Вам надо в свойствах адаптера на hyperv указать, чтобы он разрешал на интерфейс выходить макам виртуалок, а то он на свой подменяет. Там есть для этого галочка. Сейчас по памяти не помню точно эту настройку, но что-то с mac связано.

  10. Александр

    Что-то мне не понятно. Если Центос не видит сетевую карту, то как я установлю какие-либо пакеты???

  11. После отключения ipv6 8 ка не грузиться под root/ может кому интересно что произошло дам доступ к виртуалке . свяжитесь со мной

  12. Святослав

    Здравствуйте Владимир.
    Хочу настроить сервер с двумя сетевыми картами, одна, встроенная, для интернета, вторая, внешняя, для локальной сети.
    При выполнении команды ifconfig обнаруживается только встроенная карта.
    Команда lspci видит обе:

    [svyat@centos ~]$ lspci | grep Ethernet
    00:19.0 Ethernet controller: Intel Corporation 82566DM-2 Gigabit Network Connection (rev 02)
    07:04.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 0c)

    Буду Вам признателен, если подскажите, как поднять вторую сетевую карту.

    • Пробовали команду:
      ifconfig -a
      или
      ip a
      Попробуйте и напишите результат.

      • Святослав

        Я хочу внести уточнение. Сразу же после установки внешняя сетевая карта после выполнения ifconfig определялась так (без информации о пакетах для экономии места):

        virbr0: flags=4099 mtu 1500
        inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
        ether 52:54:00:1f:56:99 txqueuelen 1000 (Ethernet)

        После отключения libvirtd определяться перестала. Команды ifconfig - a и ip a тоже ничего не обнаруживали.
        Сейчас я снова запустил сервис libvirtd.
        Команда ifconfig -a вывела такую информацию по этому устройству:

        virbr0: flags=4099 mtu 1500
        inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
        ether 52:54:00:1f:56:99 txqueuelen 1000 (Ethernet)

        virbr0-nic: flags=4098 mtu 1500
        ether 52:54:00:1f:56:99 txqueuelen 1000 (Ethernet)

        Вывод команды ip -a:

        3: virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000
        link/ether 52:54:00:1f:56:99 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
        4: virbr0-nic: mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
        link/ether 52:54:00:1f:56:99 brd ff:ff:ff:ff:ff:ff

        С отключенным сервисом libvirtd ни ifconfig -a ни ip -a внешнюю плату не обнаруживают.

        • virbr0 это не внешняя плата, это сетевой бридж, который создает libvirtd.

          • Святослав

            Ясно. Тогда с внешней сетевой картой по прежнему не понятно.
            Как вы считаете, может быть причина с драйверами?

            • Думаю, именно в них и дело. Но на практике, я вообще никогда не ставил никакие драйвера в centos. Все железо, с которым я работал, всегда определялось сразу.

              • Святослав

                Наверно это потому, что мои сетевые карты совсем старые, на 100 Мбит/с, и ни одна не определяется.
                Пробовал на этом же компе запускать с загрузочной флешки без установки Ubuntu и Mint, обе системы определяют и встроенную карту и внешнюю.

  13. Elnur Mammadov

    dlya mena nmcli con add nmcli con mod luchshe

  14. А что такое hostname? На что он влияет? Вот у меня, например, несколько доменов на одном сервере, какой hostname ставить?

  15. Great Blog. I wish we had one where I work. If you need any IT Support in Plano
    Texas give us a call. Saying that Good Job and love your support.

  16. Здравствуйте. Не могу никак сохранить значения DNS в /etc/resolv.conf. Если отредактировать /etc/sysconfig/network-scripts/ifcfg-eth0, то после перезапуска сервера новые DNS прописываются в /etc/resolv.conf. Но после рестарта сервера дефолтные DNS (от google) возвращаются!

  17. Дмитрий

    Добрый день!
    Уже несколько дней пытаюсь решить одну проблему.
    Может у вас есть способ?
    Ситуация такая:
    Установил гипервизор xen на CentOS, в нем две виртуалки с Вин7.
    Хочу подключить их к впн и сделать это средствами хост-системы.
    Поднял подключение pptp и добавил скрипт в /etc/sysconfig/network-scripts/
    Но к вм оно не подключается. Создан бридж, подключенный к ВМ, в конфиге pptp указан этот бридж.
    Но что-то не работает. В ВМ интерфейс не видит сети.

    • Я бы сделал по-другому. Сделал хостовую машину шлюзом для виртуалок. Они бы автоматом получили доступ к vpn сети через шлюз. И не нужны бриджи для pptp.

      • Дмитрий

        Спасибо, попробую так. Пока запустили, подняв впн внутри гостей.

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

          В итоге, тот же vpn не надо настраивать на всех гостях. Все это делается на шлюзе, а он уже раздает доступы куда надо. На нем же работает firewall. По мне так это удобно. К виртуалке для шлюза требования минимальны - 1 ядро, 2 гига памяти, 20 гб диск.

          Если гипервизоров много и они разнесены по ЦОДам, виртуалки легко объединяются через vpn на шлюзах.

  18. Добрый день.
    У меня на VPS сервере команда netstat -tulnp /- tulapn не выводит последний столбец (PID/Program name). Во всех строках прочерк. С чем может быть связано?

  19. добрьій день! Вьідает такую ошибку и фактически не работает настройка статического адреса.
    /etc/init.d/network restart
    Restarting network (via systemctl): Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
    [НЕВДАЧА]
    Что ето может бьіть?

  20. Здравствуйте! Нужна помощь. Есть свой VDS сервер centos 7.3, сделал его прокси, установил на него необходимую мне программу, к нему нужен доступ с любого браузера в формате 81.189.192.49:20055, у него открыт порт 22 и порт 12331tcp/udp, в формате 81.189.192.49:12331 тоже не открывает, пытался открыть порты командами sudo firewall-cmd --zone=public --permanent --add-port=20055/tcp , sudo firewall-cmd --zone=public --permanent --add-port=20055/udp, вижу что он их добавил, но доступа нет и порты закрыты. firewalld перегружал, ничего не помагает. ПРОШУ ПОМОЩИ

    • Может порт открыт, но сервис не работает на этом порту. Надо проверить программу, что она точно слушает данный порт и принимает соединения.

      • не могли бы Вы мне помочь? Я сделал скриншот с портами , можно я Вам его отправлю?

  21. Чем PEERROUTES отличается от DEFROUTES в настройках сети CentOS ?

  22. Тамерлан

    Здравствуйте!
    На WS установили на виртуалке Hyper V Centos 7, прописали при установке нужный IP, но после того как все установилось виртуалка не видит сеть, т.е. с Сentos 7 не видно сети, нет пинга, в чем может быть проблема?

    • Возможно некорректно настроена сеть на самом гипервизоре.

      • Тамерлан

        так на этой же виртуалке поднят еще один сервак и это сервак виден по сети, а новый который подняли не виден, хотя все настройки и параметры идентичны, кроме IP, но ip у этих серваков с одной сетки

        • Скорее всего где-то просто опечатка. Если все идентично, то должно работать. Чудес не бывает :) А вот невнимательность вполне реальна.

          • Тамерлан

            согласен про невнимательность, но в чем может быть опечатка? на виртуалке выбирается один и тот же виртуальный коммутатор больше даже выбора нет, единственное дали разные ip (к примеру тот у которого видна сеть у него ip 10.10.18.45, а у другого 10.10.18.46 вот вся разница) и все даже шлюз один прописывается

            • Аноним

              MAC в настройках второго сервера правильно вбит? Отличный от первого? И имя сетевого интерфейса у второго сервера проверьте, чтоб совпадал с именем в конфиге... По ifconfig сеть вообще поднимается? Или только lo видно?

  23. Александр

    Доброе утро! Подскажите пожалуйста) Всю голову сломал) Есть почтовый сервер zimbra на Centos 7. Есть основной шлюз через который ходит почта. eth0 172.16.0.5(за ним белый ip провайдера). Есть так же корпоративная сеть eth1 10.75.240.1.
    Вся проблема в том что мне необходимо видеть то что находится за корпоративной сетью. Там другие филиалы. Но видеть я их могу только если установлю основный шлюзом 10.75.240.1 , но в этом случае не работает почта т.к. белый Ip и все записи сделаны на интерфейсе eth0. Подскажите как можно реализовать это? Маршруты пробовал писать, но результатов нет.

    • Очевидно, что маршруты писались неправильно :) Этот вопрос на 100% решается правильно настроенной маршрутизацией. Не видя всей сети, я не могу подсказать, что надо сделать. Если на словах, то пакеты в нужную подсеть должны идти через тот шлюз, который сам эту подсеть видит и умеет туда маршрутизировать пакеты.

  24. Вопрос следующий ...
    Есть две сетевые карты. Одна с выходом в интернет, вторая для локальной сети.
    Как сделать, чтобы пользователи из локальной сети 10.103.0.1/24 имели доступ к интернету через первую сетевую карту?
    Пример:
    # Внешний интерфейс
    export WAN=eth0
    export WAN_IP=194.187.106.36

    # Локальная сеть
    export LAN1=eth1
    export LAN1_IP_RANGE=10.103.0.1/24
    P.S. Доступ из самого сервера есть, требуется с локалки... спасибо

  25. Разъясните пожалуйста, как правильно настраивать параметр в файле сетевой настройки CentOS
    /etc/sysconfig/network-scripts/ifcfg-eth0(ifcfg-ens33)
    BOOTPROTO=
    Почему "none", почему не "static"? Нужно ли, обязательно ли параметры вносить в кавычках?

  26. для роботы на таком сервисе наверно нужна утилита или программа которая модифицирует опции модема и предотвращает разрывы соединения

  27. Как установить IMAP к PHP 5.6.30 на CentOS 7

  28. Заметил не большую проблему. Когда настаривал сервер-шлюз(centos7), два интерфейса были на 100мб портах, после окончательной настройки, интерфейс отвечающий за вланы локальной сети настроил на 1гб, но на cisco хоть и стоит в настройках, скорость full. Он все равно поднят на 100 мб. Не подскажите может что нужно дописать в настройку интерфейсов со стороны сервера-шлюза. Вот пример конфигов интерфейсов.

    cat /etc/sysconfig/network-scripts/ifcfg-enp2s0
    #REAL INTERFACE FOR VLAN(LAN)
    TYPE=Ethernet
    BOOTPROTO=static
    DEVICE=enp2s0
    ONBOOT=yes
    HWADDR=40:8D:5C:60:DF:C9
    IPADDR=172.16.104.250
    PREFIX=23

    cat /etc/sysconfig/network-scripts/ifcfg-vlan102
    #VLAN FOR SERVERS
    VLAN=yes
    DEVICE=enp2s0.102
    BOOTPROTO=static
    ONBOOT=yes
    TYPE=Vlan
    IPADDR=172.16.102.1
    NETMASK=255.255.254.0

  29. поправка route-eth2 192.168.0.191/24 via 192.168.0.2

  30. Уважаемый автор !
    есть пару вопросов , установлена Centos 6.5

    Имеется 3 сетевые карты.

    eth0 inet addr:10.193.**.*** Bcast:10.193.**.*** Mask:255.255.255.*** - смотрит на провайдера IP-телефонии
    eth1 inet addr:192.168.1.250 Bcast:192.168.1.255 Mask:255.255.255.0 - см.на лок.сеть IP-телефонов
    eth2 inet addr:192.168.0.191 Bcast:192.168.0.2 Mask:255.255.255.0 - в инет для редких выходов обновл, установок пакетов и т д

    имеется файл route-eth0 10.193.**.*** 255.255.255.*** via 10.193.**.***

    если же еще один добавить route-eth2 192.168.0.191/24 192.168.0.2
    то падает соединение с провайдером IP-телефонии

    как реализовать маршрутизацию , подскажите пожалуйста ?

  31. спасибо за статью, теперь мой сервер не доступен даже для меня. заебись.

  32. Как вбить эту строку "route add default gw 192.168.0.1" по умолчанию? После перезагрузки сервера она пропадает и маршрутизация не работает. У меня Поднято два интерфейса ppp0 и обычный, вся маршрутизация идет через ppp0 а должна идти через другой. Вот подробности если что: https://toster.ru/q/398320

  33. Сергей

    Я отключил ipv6 но у меня по команде netstat -tulnp выдает

    udp6 0 0 :::21893 :::* 10689/dhclient

    Как это отключить?

    • Сергей

      Не претендую на правильность, но победил
      /etc/default/grub
      к параметру GRUB_CMDLINE_LINUX
      добавить ipv6.disable=1

      у меня он стал выглядеть так
      GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rd.lvm.lv=centos_centosmin/root rd.lvm.lv=centos_centosmin/swap rhgb quiet"

      • Сергей

        а и после этого
        grub2-mkconfig -o /boot/grub2/grub.cfg
        и ребут

      • А то, что в статье описано, разве не достаточно? Я всегда именно так ipv6 отключаю.

        • Сергей

          Сделал всё как в статье, оказалось не достаточным.
          netstat -tulnp действительно выдавал что-то вроде udp6 0 0 :::21893 :::* 10689/dhclient.
          Думаю, дело в том, что мой тестовый сервер получает адрес по DHCP.

      • Удивительно, но мне это не помогло. Все сделал, но реально ipv6 все равно остался на dhclient.

  34. Николай

    Дружище ты мой герой :) не хватает только в твоих постах кнопочки распечатать :)

  35. В /etc/chrony.conf параметр OPTIONS= -4 приводит к таким последствиям при рестарте:

    chronyd[20333]: chronyd version 2.1.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +DEBUG +ASYNCDNS +IPV6 +SECHASH)
    chronyd.service: control process exited, code=exited status=1
    Failed to start NTP client/server.
    Unit chronyd.service entered failed state.
    chronyd.service failed.
    Invalid command at line 47 in file /etc/chrony.conf

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

      OPTIONS=-4"

      Файл /etc/chrony.conf трогать не надо.

      • Ой, извините, закрасноглазил, разумеется... Пользуясь случаем: отдельное спасибо за статьи про бег.

  36. Дмитрий

    Добрый день, Подскажите как и где прописать прокси сервер? Если установка производилась без доступа в интернет.

    • Прокси для чего? Его нельзя просто прописать для системы. Прокси используют те или иные программы. Например, для использования proxy сервера в yum, необходимо в файле /etc/yum.conf прописать:
      proxy=http://yourproxy:3128/
      или так, если нужна авторизация:
      proxy=http://username:password@yourproxy:3128/
      Для использования wget через прокси-сервер, добавьте следующие строки в /etc/wgetrc
      http_proxy = http://yourproxy:3128/

      • А для чего тогда в файле ifcfg-ens32
        PROXY_METHOD=none
        BROWSER_ONLY=no
        ?

        • Я так понимаю, это для автоматической настройки proxy через WPAD. Значения могут быть либо auto, либо none. Я не знаю, кто будет читать эти настройки кроме браузера. Поддержка proxy, как я понимаю, должна быть реализована в самой программе. Если она не умеет работать через proxy, эти настройки не должны помочь. Это все теория, на практике не проверял.

      • Сергей

        Можно было бы посвятить этому раздел. Я вообще ничего сделать не могу без прописывания прокси, ни обновления, ни времени. С настройки прокси вообще начинать надо. Тут целая статья про сетевые настройки, а прокси нет! LOL

        • Напишите статью и посвятите, какие проблемы? Я поучусь у вас. То, что вам нужно прокси, не значит, что оно нужно всем остальным. Я не ставил задачу при написании статьи угодить каждому.

  37. Я смотрю вы блин прям гении, установить пакет, пока не поднят сетевой интерфейс, это, как человеку исталлер 7ip скинуть в 7ip архиве. 100 из 100.

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

  38. Добрый день. На CentOS 7 добавил маршрут, через этот маршрут пингую сервак. Доступ организован через vpn, но vpn часто отваливается. После восстановления vpn соединения, пинговать не могу, не видит сервак. Помогает только рестарт сети или компа, где установлен CentOS. С чем это может быть связано?

    • А что с маршрутом становится после того, как vpn восстановлен? Где само соединение vpn организовано? У вас немного неправильный подход. Маршруты должен регулировать сам vpn туннель, тогда не будет проблем.

      • ПК(172.16.1.1) -> ПК-vpn (172.16.1.2) ->Сервер (192.168.1.1).
        С ПК пингую Сервак. На ПК прописано:
        [user@PC ~]$ route
        Kernel IP routing table
        Destination Gateway Genmask Flags Metric Ref Use Iface
        default gateway 0.0.0.0 UG 100 0 0 eth0
        192.168.0.0 172.16.1.2 255.255.0.0 UG 100 0 0 eth0
        172.16.1.0 0.0.0.0 255.255.254.0 U 100 0 0 eth0

        • Сделайте ПК-vpn шлюзом по-умолчанию для ПК. А на шлюзе ПК-vpn уже рулите маршрутами как угодно. Поднимайте, пересоздавайте после падения vpn и т.д. Я обычно так делаю. Сервер vpn делаю шлюзом для клиентов. При этом он не обязательно должен быть последним шлюзом. На нем уже можно дальше настраивать маршруты и роутить трафик на другие шлюзы.

          • Скриптом сделал рестарт интерфейса. Не серьезно получается, система на которой поставил Zabbix не может восстановить соединение, но эт болячка linux'ов. Перенесу скрипт на Zabbix, чтоб при разрыве дергал интерфейс. У меня есть возможность поставить агента на ПК-vpn(Windows XP), только нет item, который будет проверять доступ по пингу Сервер. Сам Zabbix может пинговать, а агенты нет.

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

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar