Centos 7 не работает tab
В этом руководстве объясняются первые основные шаги, которые необходимо выполнить после установки минимальной системы CentOS 7 без графической среды, чтобы получить информацию об установленной системе, аппаратная часть которой работает, и настроить другие конкретные системные задачи, такие как сети, привилегии root, программное обеспечение, сервисы и другие.
Обновление системы CentOS 7
Чтобы полностью обновить систему CentOS 7, введите следующие команды с привилегиями root.
После завершения процесса обновления, чтобы освободить дисковое пространство, вы можете удалить все загруженные пакеты, которые использовались в процессе обновления вместе со всей информацией из кэшированных репозиториев, выполнив следующую команду.
Установите системные утилиты на CentOS 7
Следующие пакеты утилит могут оказаться полезными для повседневного системного администрирования: nano (текстовый редактор для замены редактора vi), wget, curl (утилиты, используемые в основном для загрузки пакетов по сети) net-tools, lsof (утилиты для управления локальная сеть) и bash-завершение (автозаполнение командной строки).
Установите их все в один выстрел, выполнив следующую команду.
Настройка сети в CentOS 7
CentOS 7 имеет широкий спектр инструментов, которые можно использовать для настройки и управления сетью, от ручного редактирования файла конфигурации сети до использования таких команд, как ip, ifconfig, nmtui, nmcli или route.
Чтобы изменить имя хоста системы с помощью утилиты nmtui, выполните команду nmtui-hostname, задайте имя хоста своего компьютера и нажмите OK для завершения, как показано на снимке экрана ниже.
Чтобы управлять сетевым интерфейсом, выполните команду nmtui-edit, выберите интерфейс, который вы хотите редактировать, и выберите правку в правом меню, как показано на скриншоте ниже.
Когда вы перейдете в графический интерфейс, предоставленный утилитой nmtui, вы можете настроить параметры IP сетевого интерфейса, как показано на снимке экрана ниже. Когда вы закончите, перейдите к OK, используя клавишу [tab], чтобы сохранить конфигурацию и выйти.
Чтобы применить новую конфигурацию сетевого интерфейса, выполните команду nmtui-connect, выберите интерфейс, которым вы хотите управлять, и нажмите опцию Деактивировать / Активировать, чтобы вывести из эксплуатации и поднять интерфейс с настройками IP, как показано на скриншотах ниже.
Чтобы просмотреть настройки сетевого интерфейса, вы можете проверить содержимое файла интерфейса или выполнить приведенные ниже команды.
Другими полезными утилитами, которые можно использовать для управления скоростью, состоянием канала или получения информации о сетевых интерфейсах машины, являются ethtool и mii-tool.
Важным аспектом работы вашей машины в сети является составление списка всех открытых сетевых сокетов, чтобы увидеть, какие программы прослушивают какие порты и в каком состоянии установлены сетевые соединения.
Управление услугами в CentOS 7
CentOS 7 управляет демонами или сервисом с помощью утилиты systemctl. Чтобы вывести список всех служб, выполните следующую команду.
Чтобы проверить, включен ли демон или служба для автоматического запуска при запуске системы, введите следующую команду.
Чтобы просмотреть список старых служб SysV, имеющихся в вашей системе, и отключить их, выполните следующие команды chkconfig.
5. Отключите нежелательные сервисы в CentOS 7
После установки CentOS 7 рекомендуется перечислить, какие службы работают в системе, выполнив указанные выше команды, отключить и удалить их, чтобы уменьшить векторы атак на вашу систему.
Например, демон Postfix установлен и включен по умолчанию в CentOS 7. Если вашей системе не требуется запуск почтового сервера, лучше всего остановить, отключить и удалить службу postfix, выполнив следующие команды.
В дополнение к командам netstat, ss, lsof или systemctl вы также можете запускать команды ps, top или pstree, чтобы обнаружить и определить, какие нежелательные службы работают в вашей системе, а также отключить или удалить их.
По умолчанию утилита pstree не установлена в CentOS 7. Для ее установки выполните следующую команду.
Включить брандмауэр в CentOs 7
Чтобы включить, запустить и проверить брандмауэр в CentOS 7, выполните следующие команды.
Если служба уже определена в правилах firewalld, вы можете вручную добавить порт службы, как показано в примере ниже.
Включить разрешения Sudo для учетных записей пользователей
Чтобы предоставить полномочия root обычному пользователю, сначала создайте пользователя, введя команду adduser, задайте пароль для пользователя и предоставьте пользователю права root, выполнив приведенную ниже команду, которая добавляет нового пользователя в группу административных колес.
Чтобы проверить, есть ли у нового пользователя права root, войдите в систему с учетными данными пользователя и выполните команду yum с разрешениями sudo, как показано в приведенной ниже выдержке.
Настройка аутентификации с помощью открытого ключа SSH в CentOS 7
Чтобы защитить SSH-сервер и настроить аутентификацию с открытым ключом, чтобы повысить безопасность вашего сервера с помощью закрытого ключа SSH для входа в систему, сначала сгенерируйте пару ключей SSH с помощью следующей команды.
Не вводите ключевую фразу, если вы хотите автоматизировать управление сервером через SSH.
После генерации пар ключей SSH скопируйте ключ на сервер, к которому вы хотите подключиться, введя команду ниже. Первоначально введите удаленный пароль пользователя SSH, чтобы скопировать открытый ключ.
После того, как открытый ключ SSH был скопирован на удаленный сервер, войдите в систему на удаленном сервере SSH с помощью следующей команды.
Наконец, чтобы защитить сервер SSH, убедитесь, что вы запрещаете удаленный доступ SSH к учетной записи root, открыв файл конфигурации SSH / etc / ssh / sshd_config с вашим текстовым редактором в качестве пользователя root и изменив его с Да на Нет.
Чтобы применить настройку, необходимо перезапустить службу SSH, чтобы она использовала новую конфигурацию.
Выводы
Готово! Настройка сервера CentOS 7 после установки проведена. Это всего лишь несколько основных настроек и команд, которые каждый системный администратор должен знать и применять в новой установленной системе CentOS или для выполнения повседневных задач в системе.
Чтобы обезопасить и защитить сервер CentOS 7, ознакомьтесь со следующими статьями.
Если вы планируете развертывать веб-сайты в этой системе CentOS 7, узнайте, как установить и настроить стек LAMP.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Cron — классический демон, использующийся для периодического выполнения заданий в определённое время. Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные каталоги.
Системный демон crond предназначен для выполнения регулярно повторяющихся заданий. Обычно crond запускается как системный сервис в процессе начальной загрузки системы и остается активным пока система не выключена. Сразу после старта он просматривает каталоги /var/spool/cron и /etc/cron.d, а также файл /etc/crontab в поисках заданий, которые нужно выполнять. Затем crond просыпается каждую минуту, выполняет предписанные ему задания и снова засыпает до начала следующей минуты.
Посмотреть версию своего cron можно с помощью команды:
Если он не установлен, вы можете использовать yum, чтобы установить его.
Задания cron выбраны службой crond.
Для того, чтобы проверить, работает ли служба crond на вашем CentOS 7, вы можете использовать следующую команду:
Для реализации данного способа требуется внести задачу скрипта skript.sh в каталоге /sh/skriptiki/ на исполнение в программу cron на сервере CentOS 7.
Проверим, работает ли у нас вообще cron в фоновом режиме?
Открываем файл заданий cron:
Добавляем строки по смыслу общего синтаксиса в файле.
После того, как вы сделаете изменения перезапустите службу crond с помощью команды ниже:
2. Шаблоны задания.
Файлы crontab, создаваемые для отдельных пользователей, находятся в каталоге /usr/spool/cron/crontabs/ или /var/spool/cron/tabs/ . Редактировать их вручную не рекомендуется, для этого используют команду crontab -e . Файлы crontab, используемые для управления всей системой, располагаются в каталоге /etc/cron.d/ . Кроме того, в каталогах /etc/cron.daily/ , /etc/cron.weekly/ и /etc/cron.monthly/ размещаются автоматически запускаемые программы (ежедневно, еженедельно или ежемесячно).
Каждый пользователь системы имеет свой файл заданный crontab, в котором описано, в какое время и какие программы запускать от имени этого пользователя. Для редактирования файла crontab используется специальная одноимённая программа crontab, позволяющая не прерывать процесс cron на время редактирования.
Для отображения содержимого crontab-файла текущего пользователя используйте команду:
Поэтому я обычно выполняю команду:
После чего получаю возможность использовать для редактирования списка заданий привычный CoolEdit из пакета Midnight Commander.
После задания значения переменной EDITOR можно выполнить команду для редактирования заданий пользователя:
Давайте их рассмотрим.
Строка задания состоит из шести полей, разделяемых пробелами (по крайней мере одним). Первые пять полей отведены для указания времени выполнения задания. В следующей табличке представлены значения, которые можно придавать этим полям.
Шаблон задания для cron выглядит примерно так:
В каждом из этих полей вместо простого числового значения можно прописать:
- список возможных значений, разделенных запятыми (в списках можно использовать только числа, имена не допускаются);
- интервал значений (например, 1-3);
- или звездочку (*), обозначающую любое из допустимых значений для данного поля.
Следующее поле (шестое) содержит подлежащую выполнению командную строку оболочки shell. Считается, что поле команда продолжается до конца строки и может содержать пробелы и символы табуляции. Причем заключать эту командную строку в кавычки не требуется. Как и в обычной командной строке shell, можно указать в этом поле несколько команд, разделенных точкой с запятой (хотя, наверное, лучше написать командный файл и указать в crontab-файле его имя).
После чего cron не будет загружать вас лишними письмами. Несколько переменных окружения cron устанавливает автоматически при его запуске.
После завершения редактирования вы, как обычно, сохраняете результаты и выходите из редакторской программы.
Ответ:
Естественно, придется ответить y .
Если же ошибок не было (или вы их исправили), вы увидите только одну строку:
Ответ:
Подробнее об этом вы можете прочитать на man-странице crontab, а пока будем считать, что вам такое право предоставлено.
Чтобы изменить crontab-файл другого пользователя (например, bitrix ):
Команда для очистки всех заданий текущего пользователя:
Команда для просмотра краткой справки по установленным таймерам:
Ответ:
Команда чтобы увидеть загруженные, но неактивные таймеры:
Ответ:
3. Где хранятся crontab-файлы?
Дело в том, что одного такого файла нет. В GNU/Linux имеется целый каталог /var/spool/cron , в котором хранятся crontab-файлы для всех пользователей, включая root-а. Каждый такой файл имеет имя, совпадающее с регистрационным именем пользователя, по которому процесс cron определяет, какой UID надо использовать при выполнении команд из этого файла. Владельцем всех этих файлов является пользователь root.
и звёздочками обозначены конкретные блоки времени.
Внимание! Каждая запись в файле crontab должна оканчиваться символом перевода строки, в том числе и последняя. В противном случае cron игнорирует её и записывает предупреждение в системный журнал, а ваш скрипт даже не срабатывает!
Команда run-parts в нем служит для запуска всех скриптов из каталога, указанного в виде параметра этой команды.
По большей части эти скрипты выполняют функции по обслуживанию системы: удаляют ненужные временные файлы, присматривают за быстро растущими файлами протоколов в каталоге /var/log и, при необходимости, очищают их, и тому подобное.
Обратите внимание на то, что все эти работы, кроме ежечасных, выполняются в 4 часа ночи. Разработчики дистрибутива, по-видимому, имели в виду в первую очередь круглосуточно работающие сервера и установили время выполнения заданий на тот период, когда активность системы минимальна. Ведь большинство этих скриптов интенсивно работают с диском, что может существенно затормозить работу пользователей. Однако такое решение скорее всего непригодно для персонального компьютера, который пока что принято выключать на ночь. Однако, оказывается, что разработчики дистрибутива предусмотрели возможность выключения компьютера на ночь и поручили выполнение некоторых необходимых работ еще и демону anacron.
4. Невыполненные задания и утилита anacron.
Если некоторое задание не было выполнено демоном crond в указанное время, например, компьютер был выключен, то процесс crond не выполняет такую команду позже, поскольку информация о невыполнении задания ему не поступает, а для некоторых системных заданий такое явление недопустимо.
Эту проблему позволяет решить другой системный демон, имя которого anacron.
В отличие от cron, он работает по следующему принципу:
Конфигурационный файл /etc/anacrontab может содержать строки трех типов:
- строки описания заданий,
- строки задания переменных окружения,
- строки комментариев.
Строка описания заданий имеет следующий формат:
Строки задания переменных имеют стандартный формат:
Приведу в качестве примера файл /etc/anacrontab из стандартной установки дистрибутива CentOS 7:
Ответ:
5. Примеры cron-заданий.
Ниже приведены несколько примеров cron-заданий:
3.1. Чтобы выполнять команду каждую минуту, задание должно быть такое:
3.2. Похожее задание, только команда будет вызываться каждые пять минут:
3.3. Вызывать команду 4 раза в час (каждые 15 минут):
3.4. Чтобы выполнить команду каждый час в 30 минут, пишем:
То есть команда будет выполняться не каждые 30 минут, а тогда, когда значение минут будет равно 30 (например, 10:30, 11:30, 12:30 и так далее).
3.5. Значения времени можно комбинировать, перечислив их через запятую. Следующий код будет выполнять команду три раза в час: в 0, 5 и 10 минут.
3.6. Выполнять команду каждый час будет следующее задание:
3.7. Выполнение команды каждые два часа:
3.8. Чтобы выполнять команду каждый день (в 00:00):
3.9. Выполнение команды каждый день в 03:00:
3.10. Выполнение команды каждое воскресенье (sunday):
3.11. Другой вариант задания, которое будет выполнять команду каждое воскресенье (естественно, тоже в 00:00):
3.12. Выполнение команды каждый день с понедельника по пятницу:
3.13. Следующее задание будет выполнять команду каждый месяц, 1-го числа в 00:00:
3.14. Выполнять команду в 16:15 каждого первого числа месяца будет это задание:
3.15. Выполнение команды каждые три месяца:
3.16. Выполнение команды в строго определённое время и месяц:
3.17. Задание будет вызывать команду в начале каждого полугодия (в 00:00 1-го дня):
3.18. Выполнение команды каждый год 1-го января в 00:00:
6. Готовые cron-задания.
Например: чтобы выполнять команду каждый раз после перезапуска сервера, используйте это задание.
7. Настройка cron для web-программистов.
5.1. Добавляем в cron задачу, которая будет выполнятся каждую минуту.
И добавляем (будет выполняться под тем пользователем под кем вы зашли в SSH):
Сохраняемся, SHIFT+Z 2 раза.
5.2. Для отправки на почту воспользуемся postfix.
И добавляем (будет выполняться под тем пользователем под кем вы зашли в SSH):
5.2.1. Выполнение команды архивирования материалов сайта и выгрузка базы данных каждый день с понедельника по пятницу с последующей отправкой файла результатов работы скрипта по указанной почте:
5.2.2. Выполнение команды сканирования открытых портов указанного IP-адреса, например, по воскресениям с последующей отправкой файла результатов работы nmap по указанной почте:
5.2.3. Выполнение команды оценки занятого дискового пространства каждый день с последующей отправкой просто результатов работы nmap по указанной почте:
Сохраняемся, SHIFT+Z 2 раза.
Добавляем в cron задачу, которая будет выполнятся, сохранит результат выполнения скрипта в файл и отправит его на почту с темой, в нашем случае в теле письма, но можно и приложением.
5.3. Иногда надо запускать по cron скрипт который лежит уже на сайте и использует окружение сайта.
Установим менеджер загрузок wget:
И добавляем (будет выполняться под тем пользователем под кем вы зашли в SSH):
Сохраняемся, SHIFT+Z 2 раза.
8. Настройка cron для системных администраторов.
Так же существует anacron (anachronistic cron или асинхронный (анахроничный) cron) и его запуск и его задания тоже нужно учитывать, смотрите файл /etc/anacrontab и каталоги /etc/cron.daily/ , /etc/cron.hourly/ , /etc/cron.monthly/ и /etc/cron.weekly/ .
Часто, в современных дистрибутивах там прописан запуск утилиты run-parts, которая запускает нужные скрипты из следующих папок:
9. Список всех задач cron у всех пользователей.
К сожалению для системного администратора нет такого инструмента, так как задачи в CentOS 7 могут храниться в нескольких местах:
Иногда конкретные пользователи могут создавать задачи тоже, как описано в общих методах. Задания cron для конкретных пользователей расположены в /var/spool/cron/username . При создании задач для конкретных пользователей, вам не нужно указать имя пользователя в cron.
Недостаток этого решения очевиден:
Решение простое — создадим функцию allcrontab в файле
/.bashrc для ввода информации в более удобном виде:
/.bashrc или перелогиниваемся и выполняем в консоли allcrontab и видим красивый вывод списка всех задач cron у всех пользователей.
Чтобы вывести список всех заданий cron от всех пользователей вашей системы создайте скрипт:
Альтернативой вашей проблеме может быть размещение их в папке cron.d и указание соответствующего пользователя для каждого cron, как в примере:
10. Отладка работы cron.
После того как вы настроили правила, еще хотелось бы проверить работают ли они. Для этого ждем того времени, когда скрипт уже должен быть выполнен и смотрим log cron. Обычно он находится в /var/log/cron .
Если нужно проверить скрипт, который находится в одной из специализированных папок, то тут еще проще, просто запустите run-paths , передав ей в параметр нужную папку или даже сам скрипт:
Примерно вот так:
11. Файлы справки и помощи по cron.
Для получения дополнительной информации вы можете проверить страницу man :
12. Cron калькуляторы.
Если трудно установить правильную задачу в начале, вы можете использовать cron калькулятор, чтобы сгенерировать выражение требуемой задачи. Можно найти несколько хороших калькуляторов cron в Интернете.
Внимание! На самом деле не рекомендуется обработать те файлы вручную!
На crontab странице справочника есть упоминание, что:
У каждого пользователя может быть их собственный crontab, и хотя это файлы в /var/spool/cron/crontabs , они не предназначены для непосредственного редактирования.
Файлы под /var/spool считаются временными/рабочими, вот почему они, вероятно, будут удалены во время обновления, хотя если более внимательно рассмотреть cron сценарии обновления пакета, то можно понять некоторые интересные детали.
Так или иначе это, всегда хорошо, создать резервную копию записей крона или сохранить их в файле в корневом каталоге.
В этом руководстве объясняются первые основные шаги, которые необходимо выполнить после установки минимальной системы CentOS 7 без графической среды, чтобы получить информацию об установленной системе, аппаратная часть которой работает, и настроить другие конкретные системные задачи, такие как сети, привилегии root, программное обеспечение, сервисы и другие.
Обновление системы CentOS 7
Чтобы полностью обновить систему CentOS 7, введите следующие команды с привилегиями root.
После завершения процесса обновления, чтобы освободить дисковое пространство, вы можете удалить все загруженные пакеты, которые использовались в процессе обновления вместе со всей информацией из кэшированных репозиториев, выполнив следующую команду.
Установите системные утилиты на CentOS 7
Следующие пакеты утилит могут оказаться полезными для повседневного системного администрирования: nano (текстовый редактор для замены редактора vi), wget, curl (утилиты, используемые в основном для загрузки пакетов по сети) net-tools, lsof (утилиты для управления локальная сеть) и bash-завершение (автозаполнение командной строки).
Установите их все в один выстрел, выполнив следующую команду.
Настройка сети в CentOS 7
CentOS 7 имеет широкий спектр инструментов, которые можно использовать для настройки и управления сетью, от ручного редактирования файла конфигурации сети до использования таких команд, как ip, ifconfig, nmtui, nmcli или route.
Чтобы изменить имя хоста системы с помощью утилиты nmtui, выполните команду nmtui-hostname, задайте имя хоста своего компьютера и нажмите OK для завершения, как показано на снимке экрана ниже.
Чтобы управлять сетевым интерфейсом, выполните команду nmtui-edit, выберите интерфейс, который вы хотите редактировать, и выберите правку в правом меню, как показано на скриншоте ниже.
Когда вы перейдете в графический интерфейс, предоставленный утилитой nmtui, вы можете настроить параметры IP сетевого интерфейса, как показано на снимке экрана ниже. Когда вы закончите, перейдите к OK, используя клавишу [tab], чтобы сохранить конфигурацию и выйти.
Чтобы применить новую конфигурацию сетевого интерфейса, выполните команду nmtui-connect, выберите интерфейс, которым вы хотите управлять, и нажмите опцию Деактивировать / Активировать, чтобы вывести из эксплуатации и поднять интерфейс с настройками IP, как показано на скриншотах ниже.
Чтобы просмотреть настройки сетевого интерфейса, вы можете проверить содержимое файла интерфейса или выполнить приведенные ниже команды.
Другими полезными утилитами, которые можно использовать для управления скоростью, состоянием канала или получения информации о сетевых интерфейсах машины, являются ethtool и mii-tool.
Важным аспектом работы вашей машины в сети является составление списка всех открытых сетевых сокетов, чтобы увидеть, какие программы прослушивают какие порты и в каком состоянии установлены сетевые соединения.
Управление услугами в CentOS 7
CentOS 7 управляет демонами или сервисом с помощью утилиты systemctl. Чтобы вывести список всех служб, выполните следующую команду.
Чтобы проверить, включен ли демон или служба для автоматического запуска при запуске системы, введите следующую команду.
Чтобы просмотреть список старых служб SysV, имеющихся в вашей системе, и отключить их, выполните следующие команды chkconfig.
5. Отключите нежелательные сервисы в CentOS 7
После установки CentOS 7 рекомендуется перечислить, какие службы работают в системе, выполнив указанные выше команды, отключить и удалить их, чтобы уменьшить векторы атак на вашу систему.
Например, демон Postfix установлен и включен по умолчанию в CentOS 7. Если вашей системе не требуется запуск почтового сервера, лучше всего остановить, отключить и удалить службу postfix, выполнив следующие команды.
В дополнение к командам netstat, ss, lsof или systemctl вы также можете запускать команды ps, top или pstree, чтобы обнаружить и определить, какие нежелательные службы работают в вашей системе, а также отключить или удалить их.
По умолчанию утилита pstree не установлена в CentOS 7. Для ее установки выполните следующую команду.
Включить брандмауэр в CentOs 7
Чтобы включить, запустить и проверить брандмауэр в CentOS 7, выполните следующие команды.
Если служба уже определена в правилах firewalld, вы можете вручную добавить порт службы, как показано в примере ниже.
Включить разрешения Sudo для учетных записей пользователей
Чтобы предоставить полномочия root обычному пользователю, сначала создайте пользователя, введя команду adduser, задайте пароль для пользователя и предоставьте пользователю права root, выполнив приведенную ниже команду, которая добавляет нового пользователя в группу административных колес.
Чтобы проверить, есть ли у нового пользователя права root, войдите в систему с учетными данными пользователя и выполните команду yum с разрешениями sudo, как показано в приведенной ниже выдержке.
Настройка аутентификации с помощью открытого ключа SSH в CentOS 7
Чтобы защитить SSH-сервер и настроить аутентификацию с открытым ключом, чтобы повысить безопасность вашего сервера с помощью закрытого ключа SSH для входа в систему, сначала сгенерируйте пару ключей SSH с помощью следующей команды.
Не вводите ключевую фразу, если вы хотите автоматизировать управление сервером через SSH.
После генерации пар ключей SSH скопируйте ключ на сервер, к которому вы хотите подключиться, введя команду ниже. Первоначально введите удаленный пароль пользователя SSH, чтобы скопировать открытый ключ.
После того, как открытый ключ SSH был скопирован на удаленный сервер, войдите в систему на удаленном сервере SSH с помощью следующей команды.
Наконец, чтобы защитить сервер SSH, убедитесь, что вы запрещаете удаленный доступ SSH к учетной записи root, открыв файл конфигурации SSH / etc / ssh / sshd_config с вашим текстовым редактором в качестве пользователя root и изменив его с Да на Нет.
Чтобы применить настройку, необходимо перезапустить службу SSH, чтобы она использовала новую конфигурацию.
Выводы
Готово! Настройка сервера CentOS 7 после установки проведена. Это всего лишь несколько основных настроек и команд, которые каждый системный администратор должен знать и применять в новой установленной системе CentOS или для выполнения повседневных задач в системе.
Чтобы обезопасить и защитить сервер CentOS 7, ознакомьтесь со следующими статьями.
Если вы планируете развертывать веб-сайты в этой системе CentOS 7, узнайте, как установить и настроить стек LAMP.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Сетевые настройки — первое, что нужно сделать после создания сервера для его взаимодействия с внешним миром. В этой статье детально рассмотрим как настраивать сеть в CentOS 7.
Сетевые настройки в CentOS могут выполняться как в графическом интерфейсе, так и через командную строку. Ниже разберем настройку сетевых компонентов путем ввода команд в терминале.
Для примера используем выделенный сервер. Выделенные серверы заказываются в представлении «Серверы и оборудование».
После нажатия на кнопку «Заказать сервер» появится представление с характеристиками заказываемого сервера. Можно настроить свои параметры или выбрать готовую конфигурацию. Для демонстрации выберем готовую конфигурацию.
После выбора готового сервера останется выбрать устанавливаемую операционную систему. Настройку сети будем выполнять в CentOS 7.
О включении сервера можно узнать при получении письма с параметрами доступа или в интерфейсе веб-консоли управления Selectel. Созданный сервер имеет приведенные ниже характеристики.
Теперь можно подключиться к серверу по SSH и просмотреть сетевые интерфейсы, созданные по умолчанию. В выводе команды ip address получим нумерованный список интерфейсов.
Внешний сетевой интерфейс, через который было выполнено текущее SSH-подключение, имеет порядковый номер 2 и называется eno1. Интерфейсу для примера был присвоен статический ip-адрес 82.148.21.49.
Далее мы расскажем об изменении конфигурации сети в CentOS 7.
Статический IP-адрес в CentOS 7
Конфигурация сетевого интерфейса хранится в /etc/sysconfig/network-scripts в соответствующем файле с префиксом ifcfg (там же конфигурационные файлы других интерфейсов). Посмотрим на него.
Что можно понять из этих характеристик? Ниже расскажем о каждом параметре.
- NAME — имя сетевого адаптера, оно такое же, как и имя в операционной системе.
- ONBOOT — указание на тип запуска сетевого интерфейса. При текущих настройках сетевой интерфейс запускается автоматически. В случае со значением no интерфейс нужно будет запускать вручную.
- BOOTPROTO — указание на тип назначения IP-адреса. В текущих настройках static, но возможны опции dhcp, none или пустое значение.
- HWADDR — переменная, хранящая MAC-адрес.
- IPADDR — установленный на интерфейсе IP-адрес.
- NETMASK — установленная на интерфейсе маска подсети.
- GATEWAY — указание на шлюз.
- TYPE — тип интерфейса. В нашем случае — Ethernet.
Отредактируем значение поля IPADDR:
После внесения изменений перезагрузим сетевой сервис. Иначе изменения применятся только после рестарта сервера.
После выполнения этой команды сетевое подключение отключится. Снова выполняем подключение по SSH по новому IP-адресу и проверяем новые настройки:
Статический IP-адрес настроен, сервер доступен по новому адресу.
Настройки DHCP в CentOS 7
Чтобы настроить получение анонсов по DHCP, в /etc/sysconfig/network-scripts/ifcfg-eno1 необходимо удалить переменные IPADDR, NETMASK, GATEWAY, а в BOOTPROTO указать значение «dhcp».
Перезагружаем сетевой сервис:
Сетевое соединение по SSH отключится. Чтобы посмотреть новый IP-адрес сервера, подключимся к нему через веб-консоль KVM Selectel. Нажимаем на иконку консоли.
В новой вкладке браузера вводим учетные данные сервера и выполняем уже знакомую команду ip address. В выводе команды напротив интерфейса eno1 будет его динамический IP-адрес.
Теперь можно подключаться по SSH по новому IP-адресу.
Настройки DNS в CentOS 7
Чтобы настроить DNS, изменим /etc/sysconfig/network-scripts/ifcfg-eno1 и пропишем туда переменную DNS1 (если нужно добавить дополнительные DNS-серверы, допускается добавление переменных DNS2, DNS3 и т.д.)
Следом перезагрузим сеть:
По итогам перезагрузки адрес DNS-сервера должен автоматически оказаться в /etc/resolv.conf:
Наличие в файле заданного DNS-сервера говорит о корректности его настройки.
Перезапуск сетевого сервиса в CentOS 7
Перезапуск сети выполняется одной командой:
После изменения сетевых настроек и для вступления их в силу необходимо выполнить эту команду.
Изменение имени сервера (hostname) в CentOS 7
После создания сервера через панель управления Selectel ему присваивается имя localhost.localdomain, при аренде выделенного сервера в Selectel имя ему присвоено автоматически:
Сверим примененные настройки:
Имя хоста изменено.
Настройки шлюза в CentOS 7
За соответствующие настройки отвечает переменная GATEWAY в /etc/sysconfig/network-scripts/ifcfg-eno1. Чтобы изменить адрес шлюза, достаточно изменить значение этой переменной и перезагрузить сетевую службу:
Вызов команды netstat -nr вернет актуальный адрес используемого шлюза:
Таким образом, мы задали адрес сетевого шлюза.
Настройки сети из консоли
Кроме модификации файлов с конфигурацией, настройки сети могут быть изменены командами в консоли. Консольные настройки выполняются для проведения тестов и будут работать только до перезагрузки системы. Для выполнения всех консольных сетевых настроек используется уже известная команда ip address (или ее сокращенная версия ip a).
Применим к eno2 новый IP-адрес и проверим:
Изменим маску подсети и снова проверим:
Добавим маршрут по умолчанию:
Удалим маршрут по умолчанию:
Удалим привязанный ранее IP-адрес и проверим:
Еще раз обращаем внимание, что все приведенные в этом разделе настройки действуют до перезагрузки сервера.
Исключение IPv6 в CentOS 7
IPv6-адресация на текущий момент используется редко, хотя и было много разговоров об исчерпании емкостей адресов IPv4. Отключение IPv6 помогает экономить ресурсы и избежать путаницы. В этом разделе расскажем, как отключить на сервере поддержку этого протокола.
Начнем настройку с изменений в файле /etc/sysctl.conf. Внесем в него две дополнительных строки:
Следующий шаг — применение конфигурационных изменений:
В /etc/sysconfig/network прибавим 2 строки:
В конфигурационный файл /etc/default/grub к концу строки GRUB_CMDLINE_LINUX нужно добавить ipv6.disable=1
После выполнения изменений нужно сохранить файл и обновить GRUB:
Далее — перезагрузка сервера:
После перезагрузки проверим конфигурацию, значения с префиксом inet6 должны пропасть:
Протокол IPv6 успешно отключен.
Несколько IP адресов на одном интерфейсе в CentOS 7
Для настройки нескольких IP-адресов на одном интерфейсе внесем изменения в /etc/sysconfig/network-scripts/ifcfg-eno1, добавив переменные IPADDR1 и IPADDR2 и удалив IPADDR:
После перезагрузки сетевого сервиса изменения вступят в силу:
Еще один IP-адрес может понадобиться для поддержки нескольких сервисов в рамках одного сервера.
Настройки нескольких сетевых интерфейсов в CentOS 7
Команда ip a вернет состояние всех имеющихся сетевых интерфейсов:
В этом выводе можно видеть три интерфейса: служебный lo, а также интерфейсы eno1 и eno2.
В /etc/sysconfig/network-scripts в соответствующих файлах хранится конфигурация каждого интерфейса:
Для управления каждым из них вносятся значения переменных в соответствующий конфигурационный файл:
Чтобы добавить новый интерфейс, достаточно создать в этой же директории соответствующий конфигурационный файл, внести в него настройки и выполнить перезапуск сетевой службы:
Таким образом, мы создали дополнительный интерфейс.
Настройки интерфейсов в CentOS 7 через Network Manager (утилиты nmtui и nmcli)
Еще одним способом настроить сеть в CentOS 7 является настройка через утилиту Network Manager. Она может выполняться в GUI и через CLI. Для вызова графического интерфейса необходимо выполнить команду nmtui. Откроется псевдо-GUI интерфейс, в котором можно выполнять те же настройки, что и в командной строке:
Network Manager через CLI управляется при помощи утилиты nmcli. Ниже приведены команды для изменения IP-адреса, шлюза и DNS-сервера для сетевого интерфейса eno1:
Утилита Network Manager имеет широкий функционал и может использоваться как полная замена штатным инструментам для настройки сети в CentOS 7.
Заключение
Мы рассказали о различных подходах к настройке сети в CentOS 7. Этого достаточно для базовой настройки коммуникации сервера с внешними устройствами.
При заказе сервера у облачного провайдера важно проверить сетевые настройки и иметь понимание структуры конфигурационных файлов и их содержимого. Это будет полезно для тонкой настройки сетевых компонентов сервера на базе CentOS 7 для решения поставленных задач.
Читайте также: