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

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

centos

После процесса установки операционной системы CentOS 7, который описан в соответствующей статье, необходимо выполнить ряд базовых настроек. Одна из которых — настройка сетевых подключений. Рассмотрим по порядку данную операцию.

У начинающих пользователей Linux могут возникнуть затруднения на самом первом этапе — не получится проверить текущее состояние сети командой ifconfig (будет выдаваться сообщение — команда не найдена). Это не проблема, это особенность работы CentOS, поэтому данную команду необходимо запускать от суперпользователя (администратора) командой:

su —

Причина заключается в том, что обычные пользователи системы и root пользователь имеют различные переменные окружения PATH (вы можете посмотреть PATH пользователя при помощи «echo $PATH). После ввода команды Linux, оболочка будет искать пользовательский PATH, чтобы попытаться найти команду для запуска. Она начинает поиск в каждой директории указанной в PATH, пока цель не будет найдена. Команды обычных пользователей обычно расположены в /usr/local/bin, /usr/bin и /bin. А команды пользователя root распологаются в основном в /usr/local/sbin, /usr/sbin, /sbin и корневой PATH это отражает. Поэтому, когда вы становитесь суперпользователем при помощи «su -«, то вы также принимаете и новый путь PATH к основным командам. А используя только ‘su’, сохраняется пользовательский путь PATH по умолчанию, следовательно, при попытке выполнить программу расположенную в /usr/local/sbin, /usr/sbin, /sbin выдаст результат: ‘command not found’ error. Для более детального объяснения, смотрите справочную страницу (man bash), особенно раздел login shells. Таким образом, вы или должны указывать полный путь к команде (пример — /sbin/ifconfig) при использовании ‘su’, либо использовать ‘su -‘, когда становитесь root-ом.

Для проверки текущих сетевых настроек стоит использовать команду:

ip a

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

Такие файлы обычно называются ifcfg-<имя>, где <имя> относится к имени устройства, которое управляется этим конфигурационным файлом. Как было сказано выше — все интерфейсы и параметры ОС хранятся в различных специализированных файлах, что дает администратору удобною и гибкую возможность настройки параметров ОС и оборудования.

Настройка сетевого интерфейса

Настроим сетевой интерфейс путем редактирования конфигурационного файла, который расположен в директории /etc/sysconfig/network-scripts/

В моем случае кабель подключен в первый (и единственный)сетевой адаптер, который называется в системе etch0. Выполним редактирование соответствующего файла:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Напоминаю, чтобы внести изменения в содержание файла в редакторе vi— необходимо:

  • нажать клавишу «i» или «Insert»
  • для выхода из режима редактирования — «esc»
  • для сохранения внесенных изменений — «Shift+:» затем «wq» и нажать «Enter»

Для сети со статическим IP адресом:

DEVICE=»eth0″
BOOTPROTO=»none»
ONBOOT=»yes»
IPADDR=»192.168.1.100″
NETMASK=»255.255.255.0″
GATEWAY=»192.168.1.1″

Для сети с использованием DHCP:

DEVICE=»eth0″
BOOTPROTO=»dhcp»
ONBOOT=»yes»

Комментарии выполненных действий:

DEVICE=<name> Имя физического устройства
BOOTPROTO=<none|bootp|dhco> Используемый протокол.
none — Не используем никакой протокол при загрузке
bootp — Используем BOOTP протокол
dhcp — Используем DHCP
ONBOOT=<yes|no> Активировать ли устройство во время загрузки
IPADDR=<address> IP адрес
GATEWAY=<address> IP адрес шлюза
NETMASK=<mask> Значение сетевой маски

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

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

# vi /etc/sysconfig/network

Вводим следующие данные:

NETWORKING=»yes»
HOSTNAME=»Имя.Вашего.Сервера» или рабочей станции

Для корректного применения настроек (чтобы они вступили в силу) выполняем перезапуск сети:

# /etc/init.d/network restart

 

Если изменения в файле /etc/sysconfig/network не требуются, тогда можно рестартануть только интерфейс :

# ifdown eth0 && ifup eth0

 

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

ifconfig eth0 192.168.Х.Х netmask 255.255.255.0

Для отключения сетевого интерфейса выполните:

ifconfig eth0 down

Если же вы хотите, чтобы настройки были получены автоматически по DHCP, то выполните следующую команду:

dhclient eth0

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

killall dhclient

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

Настройка DNS

Открываем файл ‘resolv.conf’ :

# vi /etc/resolv.conf

Пропишите Ваши DNS сервера :

nameserver 192.168.Х.Х
nameserver 192.168.Х.Х

или же всем знакомый и привычный — 8.8.8.8 / 8.8.4.4

Настройка работы сети (и сетевых инструментов) в CenOS завершена.

  • SsergeySav

    ещё бы не помешало добавить настройку доп праметров. Я не нашёл как в конфиге прописать
    ethtool -s enp0s3 speed 1000 duplex full autoneg off
    ethtool -G enp0s3 rx 4096 tx 4096

    • SsergeySav

      точнее нашёл только часть
      в файле /etc/sysconfig/network-scripts/ifcfg-enp0s3 можно прописать
      ETHTOOL_OPTS=»speed 1000 duplex full autoneg off»
      но как задавать остальные параметры пока не понятно

      • Хорошо, в ближайшее время добавлю данную информацию.

        • LumpenVasya

          Прошло 2 года…

  • DmitryS

    Вечер добрый, сегодня настраивал сетевой интерфейс на CentOS 7 и при указании dns в resolv.conf, получаю unknown host при пинге ya.ru, при этом в файле появилось сообщение с рекомендацией внести dns в ifcfg-eth0 в формате DNS1=xx.xx.xx.xx.
    При настройке версий ниже 7, проблем никогда не возникало.

    • Alex S

      Добрый.
      Аналогичная проблема. По IP яндекс пингуется.
      Удалось решить проблему?

      • DmitryS

        К сожалению пока нет, пересетапил и настроил сеть при установке, на выходных буду разбираться.

      • DmitryS

        Просетапил CentOS 7
        отредактировал /etc/sysconfig/network-scripts/ifcfg-eno1
        BOOTPROTO изменил с dhcp на none
        добавил строки:
        IPADDR=xx.xx.xx.xx
        NETMASK=xx.xx.xx.xx
        GATEWAY=xx.xx.xx.xx
        DNS1=хх.хх.хх.хх
        DNS2=xx.xx.xx.xx
        Больше изменений никуда не вносилось.
        Сеть работает.

        • Alex S

          я тоже DNSы в настройках интерфейса прописал.

          • DmitryS

            И не завелось?

          • Alex S

            Все завелось. Все работает 🙂