У наші дні ви не можете багато чого зробити з комп’ютером без підключення до мережі. Незалежно від того, чи потрібно вам оновити пакети на сервері чи переглядати зовнішні веб-сайти зі свого ноутбука, вам знадобиться доступ до мережі! Метою цього посібника є надання користувачам Rocky Linux базових знань щодо налаштування підключення до мережі.
З Rocky Linux 9 багато чого змінилося в конфігурації мережі. Однією з головних змін є перехід від мережевих сценаріїв (досі доступних для встановлення, але фактично застарілих) до використання Менеджера мережі та ключових файлів, а не файлів на основі ifcfg. NetworkManager, починаючи з 9, надає пріоритет keyfiles над попередніми ifcfg файлами. Оскільки зараз це значення за замовчуванням, налаштування мережі має прийняти значення за замовчуванням як правильний спосіб виконання завдань, враховуючи, що інші зміни протягом багатьох років означали остаточне припинення підтримки та видалення старіших утиліт. Цей посібник спробує ознайомити вас із використанням Network Manager та останніми змінами в Rocky Linux 9.
На рівні користувача мережевим стеком керує NetworkManager. Цей інструмент працює як служба, і ви можете перевірити його стан за допомогою такої команди:
Як зазначалося на початку, файли конфігурації за замовчуванням тепер життєво важливі. Ви можете побачити, як NetworkManager визначає пріоритет цих файлів, виконавши таку команду:
Зверніть увагу на те, що у верхній частині файлу конфігурації є посилання на keyfile, а потім ifcfg-rh. Це означає, що типовим є keyfile. Кожного разу, коли ви запускаєте будь-який із інструментів NetworkManager для налаштування інтерфейсу (приклад: nmcli або nmtui), він автоматично створюватиме або оновлюватиме ключові файли.
Місце зберігання конфігурації
У Rocky Linux 8 місце зберігання конфігурації мережі було в /etc/sysconfig/Network-Scripts/. У Rocky Linux 9 нове місце зберігання ключових файлів за умовчанням знаходиться в /etc/NetworkManager/system-connections.
Основною (але не єдиною) утилітою, яка використовується для налаштування мережевого інтерфейсу, є команда nmtui. Це також можна зробити за допомогою команди nmcli, але це набагато менш інтуїтивно зрозуміло. Ми можемо показати інтерфейс, як він наразі налаштований за допомогою nmcli за допомогою:
Існує кілька способів або механізмів, за допомогою яких системам можна призначити інформацію про конфігурацію IP. Два найпоширеніші методи: схема конфігурації статичної IP-адреси та схема конфігурації динамічної IP-адреси.
Схема конфігурації статичного IP є модною в системах або мережах серверного класу.
Динамічний IP-підхід популярний у домашніх і офісних мережах, робочих станціях і настільних системах у бізнес-середовищі. Динамічна схема зазвичай потребує щось додаткового, що є локально доступним і може надати правильну інформацію про конфігурацію IP для запитуючих робочих станцій і робочих столів. Це щось називається протоколом динамічної конфігурації хоста (DHCP). У домашній мережі та навіть у більшості бізнес-мереж ця послуга надається сервером DHCP, налаштованим для цієї мети. Це може бути окремий сервер або частина конфігурації маршрутизатора.
У попередньому розділі показана конфігурація для інтерфейсу enp0s3 що генерується з файлу .ini/etc/NetworkManager/system-connections/enp0s3.nmconnection. Це показує, що IP4.ADDRESS[1] було налаштовано статично, а не динамічно через DHCP. Якщо ми хочемо перемкнути цей інтерфейс назад на динамічно виділену адресу, найпростішим способом є використання команди nmtui.
Спочатку запустіть команду nmtui в командному рядку, яка має показати наступне
Нам уже потрібне «Редагувати з’єднання» у виділеному пункті, тож натисніть клавішу TAB, щоб виділити «ОК», і натисніть ENTER
Відкриється екран, на якому показано підключення Ethernet на машині, і ви зможете вибрати одне з них. У нашому випадку є ЛИШЕ один, тому він уже виділений, нам просто потрібно натиснути клавішу TAB, доки не буде виділено «Редагувати». а потім натисніть ENTER
Коли ми це зробимо, ми будемо на екрані, де буде показано нашу поточну конфігурацію. Що нам потрібно зробити, це перемкнутися з «Вручну» на «Автоматично», тому натисніть клавішу TAB кілька разів, доки не дійдете до місця, де буде виділено «Вручну», а потім натисніть ENTER.
Стрілка вгору, доки не буде виділено «Автоматично», а потім натисніть ENTER
Після того, як ми перемкнули інтерфейс на «Автоматичний», нам потрібно видалити статично призначену IP-адресу, тому натискайте клавішу TAB, доки «Видалити» не буде виділено поруч із IP-адресою, і натисніть ENTER.
Нарешті натисніть клавішу TAB кілька разів, доки не дійдете до нижньої частини екрана nmtui і не буде виділено «OK», а потім натисніть ENTER
Ви також можете вимкнути та знову активувати свій інтерфейс за допомогою nmtui, але натомість зробимо це за допомогою nmcli. Таким чином ми можемо зв’язати деактивацію та повторну активацію інтерфейсу, щоб інтерфейс ніколи не був недоступним надовго:
nmcli con down enp0s3 && nmcli con up enp0s3
Подумайте про це як про еквівалент старого ifdown enp0s3 && ifup enp0s3 використовується в старих версіях ОС.
Щоб переконатися, що це спрацювало, перевірте за допомогою команди ip addr або команди nmcli device show enp0s3, яку ми використовували раніше.
ip addr
У разі успіху ви побачите, що статичну IP-адресу видалено та додано динамічно виділену адресу, подібну до цієї:
Користуватися nmtui добре, але якщо ви хочете швидко переналаштувати мережевий інтерфейс, не витрачаючи час між екранами, ви, ймовірно, захочете використовувати nmcli окремо. Давайте розглянемо наведений вище приклад статично призначеної IP-адреси та кроки для переналаштування інтерфейсу на DHCP лише за допомогою nmcli.
Перш ніж почати, майте на увазі, що для переналаштування інтерфейсу на DHCP нам потрібно:
Видаліть шлюз IPv4
Видаліть IPv4-адресу, яку ми статично призначили
Змініть метод IPv4 на автоматичний
Інтерфейс вниз і вгору
Зауважте, що ми не використовуємо приклади, які говорять вам про використання -ipv4.address тощо. Вони не змінюють повністю інтерфейс. Для цього ми повинні встановити порожній рядок для ipv4.address і ipv4.gateway. Знову ж таки, щоб заощадити якомога більше часу за допомогою нашої команди, ми збираємося об’єднати їх усі в один рядок:
nmcli con mod enp0s3 ipv4.gateway '' && nmcli con mod enp0s3 ipv4.address '' && nmcli con mod enp0s3 ipv4.method auto && nmcli con down enp0s3 && nmcli con up enp0s3
Повторне виконання команди ip addr має показати ті самі результати, що й під час виконання змін за допомогою nmtui. Очевидно, ми могли б зробити все і навпаки (змінити адресу DHCP на статичну). Для цього ми б запустили команди у зворотному порядку, починаючи зі зміни ipv4.method на ручний, налаштувавши ipv4.gateway, а потім налаштувавши ipv4.address. Оскільки в усіх цих прикладах ми повністю змінюємо конфігурацію інтерфейсу, а не додаємо чи віднімаємо до нього значення, ми знову не будемо використовувати моделі, які говорять про використання +ipv4.method,+ipv4.gateway та +ipv4.address. Якщо ви використаєте ці команди замість тих, які ми використовували вище, ви отримаєте інтерфейс із ОБОДВА адресою, призначеною DHCP, і адресою, призначеною статично. Проте інколи це може бути дуже зручно. Якщо у вас є веб-служба, яка слухає одну IP-адресу, а SFTP-сервер – іншу IP-адресу. Наявність методу призначення кількох IP-адрес інтерфейсу є досить корисним.
Налаштувати DNS-сервери можна за допомогою nmtui або nmcli. Хоча інтерфейс nmtui простий у навігації та набагато більш інтуїтивно зрозумілий, процес набагато повільніший. Зробити це за допомогою nmcli набагато швидше. У випадку адреси, призначеної DHCP, зазвичай немає необхідності встановлювати DNS-сервери, оскільки вони зазвичай пересилаються з сервера DHCP. Проте ви можете статично додавати DNS-сервери до інтерфейсу DHCP. У випадку зі статично призначеним інтерфейсом ви МАЄТЕ це зробити, оскільки йому потрібно знати, як отримати дозвіл DNS, і не матимете автоматично призначеного методу.
Оскільки найкращим прикладом для всього цього є статично призначений IP, давайте повернемося до нашої вихідної статично призначеної адреси в нашому прикладі інтерфейсу (enp0s3). Перш ніж змінювати значення DNS, нам потрібно побачити, які вони зараз. Щоб отримати правильний дозвіл імен, видаліть уже налаштовані DNS-сервери та додайте інші. Наразі для ipv4.dns встановлено 8.8.8.8,8.8.4.4,192.168.1.1. У цьому випадку нам не потрібно встановлювати для ipv4.dns порожній рядок. Ми можемо використовувати таку команду, щоб замінити наші значення:
nmcli con mod enp0s3 ipv4.dns '208.67.222.222,208.67.220.220,192.168.1.1'
Запуск nmcli con show enp0s3 | grep ipv4.dns має показати, що ми успішно змінили сервери DNS. Щоб активувати все, давайте перенесемо наш інтерфейс вниз і знову, щоб наші зміни були активними:
nmcli con down enp0s3 && nmcli con up enp0s3
Щоб перевірити, чи ми робимо розпізнавання імен, спробуйте перевірити ping на відомому хості. Ми будемо використовувати google.com як приклад:
Команда ip (надається пакетом iproute2) є потужним інструментом для отримання інформації та налаштування мережі сучасної системи Linux, такої як Rocky Linux.
Незважаючи на те, що цей метод все ще можна використовувати для зміни інтерфейсу в Rocky Linux 9, команда реагує набагато повільніше, ніж просто використання команди nmcli у наших попередніх прикладах.
Щоб повернути enp0s3 вниз і знову, ми можемо просто використати:
Хоча перемикання інтерфейсу за допомогою утиліти ip набагато повільніше, ніж nmcli, ip має явну перевагу під час встановлення нових або додаткових IP-адрес, як це відбувається в режимі реального часу, без переривання інтерфейсу.
У наведених вище прикладах ми провели певне тестування. Найкращий вибір для тестування — почати з перевірки ping шлюзу за замовчуванням. Це завжди має працювати:
Перевірте, щоб переконатися, що ми можемо бачити доступний хост поза вашою мережею. Для наведеного нижче тесту ми використовуємо відкритий DNS-сервер Google:
У Rocky Linux 9 є багато змін у мережевому стеку. Серед них пріоритетність keyfile над раніше використовуваними файлами ifcfg, знайденими в Network-Scripts. Оскільки в наступних версіях Rocky Linux мережеві сценарії будуть застарілими та видаленими, краще зосередити увагу на таких методологіях, як nmcli, nmtui та в у деяких випадках ip, для налаштування мережі.
На рівні користувача мережевим стеком керує NetworkManager. Цей інструмент працює як служба, і ви можете перевірити його стан за допомогою такої команди:
NetworkManager просто застосовує конфігурацію, зчитану з файлів, знайдених у /etc/sysconfig/network-scripts/ifcfg-<IFACE_NAME>.
Кожен мережевий інтерфейс має свій конфігураційний файл. Нижче показано приклад стандартної конфігурації сервера:
Ім’я інтерфейсу – enp1s0, тому ім’я цього файлу буде /etc/sysconfig/network-scripts/ifcfg-enp1s0.
Поради:
Існує кілька способів або механізмів, за допомогою яких системам можна призначити інформацію про конфігурацію IP. Два найпоширеніші методи: схема конфігурації статичної IP-адреси та схема конфігурації динамічної IP-адреси.
Схема конфігурації статичного IP є модною в системах або мережах серверного класу.
Динамічний IP-підхід популярний у домашніх і офісних мережах або в системах робочих станцій і настільних комп’ютерів. Динамічна схема зазвичай потребує щось додаткового, що є локально доступним, що може надати належну інформацію про конфігурацію IP для запитуючих робочих станцій і настільних комп’ютерів. Це щось називається протоколом динамічної конфігурації хоста (DHCP).
Домашнім/офісним користувачам часто не потрібно турбуватися або знати про DHCP. Це тому, що хтось інший автоматично піклується про це у фоновому режимі. Кінцевий користувач має фізично чи бездротово підключитися до правильної мережі (і, звичайно, переконатися, що його системи увімкнено)!
У попередньому списку /etc/sysconfig/network-scripts/ifcfg-enp1s0 значення параметра або ключа BOOTPROTO має значення none. Налаштована система налаштована на схему статичної IP-адреси.
Якщо натомість ви хочете налаштувати систему на використання схеми динамічної IP-адреси, вам доведеться змінити значення параметра BOOTPROTO з none на dhcp, а також видалити IPADDR, PREFIX і рядки GATEWAY. Це необхідно, оскільки вся ця інформація буде автоматично отримана з будь-якого доступного сервера DHCP.
Щоб налаштувати атрибуцію статичної IP-адреси, установіть наступне:
Основною функцією NetworkManager є керування «з’єднаннями», які відображають фізичний пристрій для більш логічних мережевих компонентів, таких як IP-адреса та налаштування DNS. Щоб переглянути наявні підключення, які підтримує NetworkManager, ви можете запустити nmcli connection show.
З результатів вище ми можемо визначити, що NetworkManager керує з’єднанням (NAME) під назвою enp1s0, яке відображається на фізичному пристрої (DEVICE) enp1s0.
Назва з'єднання
У цьому прикладі з’єднання та пристрій мають однакове ім’я, але це не завжди так. Зазвичай можна побачити підключення під назвою System eth0, яке, наприклад, відображається на пристрої під назвою eth0.
Тепер, коли ми знаємо назву нашого підключення, ми можемо переглянути його налаштування. Для цього скористайтеся командою nmcli connection show [connection], яка роздрукує всі параметри, зареєстровані NetworkManager для даного з’єднання.
Унизу лівого стовпця ми бачимо назву параметра, а внизу праворуч – значення.
Наприклад, ми бачимо, що ipv4.method тут наразі встановлено на auto. Існує багато дозволених значень для параметра ipv4.method, але два основні, які ви, швидше за все, побачите:
auto: для інтерфейсу використовується відповідний автоматичний метод (DHCP, PPP тощо), більшість інших властивостей можна не налаштовувати.
manual: використовується статична IP-адреса, і принаймні одну IP-адресу потрібно вказати у властивості 'addresses'.
Якщо замість цього ви хочете налаштувати систему на використання схеми статичної IP-адреси, вам доведеться змінити значення ipv4.method на manual, а також вказати ipv4.gateway та ipv4.addresses.
Щоб змінити налаштування, ви можете скористатися командою nmcli nmcli connection modify [connection] [setting] [value].
# set 10.0.0.10 as the static ipv4 address[user@server~]$sudonmcliconnectionmodifyenp1s0ipv4.addresses10.0.0.10
# set 10.0.0.1 as the ipv4 gateway[user@server~]$sudonmcliconnectionmodifyenp1s0ipv4.gateway10.0.0.1
# change ipv4 method to use static assignments (set in the previous two commands)[user@server~]$sudonmcliconnectionmodifyenp1s0ipv4.methodmanual
Коли з’єднання оновлюється?
nmcli connection modify не змінюватиме конфігурацію runtime, але оновлюватиме конфігурацію /etc/sysconfig/network-scripts файли з відповідними значеннями на основі того, що ви сказали nmcli налаштувати.
Щоб налаштувати ваші DNS-сервери за допомогою NetworkManager через CLI, ви можете змінити параметр ipv4.dns.
# set 10.0.0.1 and 1.1.1.1 as the primary and secondary DNS servers[user@server~]$sudonmcliconnectionmodifyenp1s0ipv4.dns'10.0.0.1 1.1.1.1'
Команда ip (надається пакетом iproute2) є потужним інструментом для отримання інформації та налаштування мережі сучасної системи Linux, такої як Rocky Linux.
Потім, щоб переконатися, що ваша конфігурація маршрутизації правильна, спробуйте ping зовнішнього хосту, наприклад, цього добре відомого загальнодоступного розпізнавача DNS:
ping-c38.8.8.8
Якщо ваша машина має кілька мережевих інтерфейсів і ви хочете зробити запит ICMP через певний інтерфейс, ви можете використати позначку -I:
ping-Iens19-c3192.168.20.42
Настав час переконатися, що роздільна здатність DNS працює правильно. Нагадуємо, що роздільна здатність DNS — це механізм, який використовується для перетворення зрозумілих для людини імен машин на їхні IP-адреси та навпаки (зворотний DNS).
Якщо файл /etc/resolv.conf вказує на доступний DNS-сервер, тоді має працювати наступне:
У Rocky Linux 8 є інструменти для налаштування мережі за допомогою командного рядка. Цей документ допоможе вам швидко почати роботу з цими інструментами.
Contributors: Steven Spencer, Hayden Young, Ganna Zhyrnova