Настройка сети в CentOS 7
После процесса установки операционной системы 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/
В моем случае кабель подключен в первый (и единственный) сетевой адаптер, который называется в системе eth0. Выполним редактирование соответствующего файла:
# 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 завершена.
Вечер добрый, сегодня настраивал сетевой интерфейс на CentOS 7 и при указании dns в resolv.conf, получаю unknown host при пинге ya.ru, при этом в файле появилось сообщение с рекомендацией внести dns в ifcfg-eth0 в формате DNS1=xx.xx.xx.xx.
При настройке версий ниже 7, проблем никогда не возникало.
Добрый.
Аналогичная проблема. По IP яндекс пингуется.
Удалось решить проблему?
К сожалению пока нет, пересетапил и настроил сеть при установке, на выходных буду разбираться.
Просетапил 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
Больше изменений никуда не вносилось.
Сеть работает.
я тоже DNSы в настройках интерфейса прописал.
И не завелось?
Все завелось. Все работает 🙂
ещё бы не помешало добавить настройку доп праметров. Я не нашёл как в конфиге прописать
ethtool -s enp0s3 speed 1000 duplex full autoneg off
ethtool -G enp0s3 rx 4096 tx 4096
точнее нашёл только часть
в файле /etc/sysconfig/network-scripts/ifcfg-enp0s3 можно прописать
ETHTOOL_OPTS=”speed 1000 duplex full autoneg off”
но как задавать остальные параметры пока не понятно
Хорошо, в ближайшее время добавлю данную информацию.
Прошло 2 года…
и 4 месяца