УправляСм сСтСвыми ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ Π² Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ консольной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ nmcli

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ всС возмоТности инструмСнта управлСния сСтСвыми ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ NetworkManager Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Linux c ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ nmcli.

УправляСм сСтСвыми ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ Π² Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ консольной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ nmcli

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° nmcli Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ обращаСтся ΠΊ API для доступа ΠΊ функциям NetworkManager.

Она появилась Π² 2010 Π³ΠΎΠ΄Ρƒ ΠΈ для ΠΌΠ½ΠΎΠ³ΠΈΡ… стала Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ способом настройки сСтСвых интСрфСйсов ΠΈ соСдинСний. Π₯отя ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ifconfig. Π’Π°ΠΊ ΠΊΠ°ΠΊ nmcli β€” это инструмСнт интСрфСйса ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (CLI), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для использования Π² ΠΎΠΊΠ½Π°Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΈ скриптах, ΠΎΠ½ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСмных администраторов, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π±Π΅Π· GUI.

Бинтаксис ΠΊΠΎΠΌΠ°Π½Π΄ ncmli

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ синтаксис выглядит Ρ‚Π°ΠΊ:

$ nmcli <options> <section> <action>

  • options β€” это ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ тонкости Ρ€Π°Π±ΠΎΡ‚Ρ‹ nmcli,
  • section (сСкция) β€” опрСдСляСт, ΠΊΠ°ΠΊΠΈΠΌΠΈ возмоТностями ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ,
  • action (дСйствиС) β€” позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ, собствСнно, Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

ВсСго сущСствуСт 8 сСкций, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… связана с ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ (дСйствий):

  • Help Π²Ρ‹Π΄Π°Ρ‘Ρ‚ справку ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ncmcli ΠΈ ΠΈΡ… использовании.
  • General Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ статус NetworkManager ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.
  • Networking Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для запроса состояния сСтСвого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ / ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.
  • Radio Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для запроса состояния ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСти WiFi ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ / ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.
  • Monitor Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° активности NetworkManager ΠΈ наблюдСния Π·Π° измСнСниями состояния сСтСвых ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.
  • Connection Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для управлСния сСтСвыми интСрфСйсами, для добавлСния Π½ΠΎΠ²Ρ‹Ρ… соСдинСний ΠΈ удалСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ….
  • Device Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для измСнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², связанных с устройствами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ΅Π½ΠΈ интСрфСйса) ΠΈΠ»ΠΈ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ устройств с использованиСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ соСдинСния.
  • Secret рСгистрируСт nmcli Π² качСствС «сСкрСтного Π°Π³Π΅Π½Ρ‚Π°Β» NetworkManager, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΉΠ½Ρ‹Π΅ сообщСния. Π­Ρ‚Π° сСкция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ nmcli ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ сСтям ΠΏΠΎ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ.

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ NetworkManager Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ nmcli ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с Π½ΠΈΠΌ:

$ nmcli general
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled

Часто Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ с просмотра всСх ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ сСтСвых ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ:

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9

Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ дСйствиС show для сСкции Connection.

На тСстовой машинС крутится Ubuntu 20.04. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ нашли Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ: enp0s3, enp0s8, and enp0s9.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² nmcli ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Connection ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, которая содСрТит всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ соСдинСнии. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, это конфигурация сСти. Connection инкапсулируСт всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с соСдинСниями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± IP-адрСсации. Π­Ρ‚ΠΎ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ 2 ΠΈ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ 3 Π² сСтСвой ΠΌΠΎΠ΄Π΅Π»ΠΈ OSI.

Когда Π²Ρ‹ настраиваСтС ΡΠ΅Ρ‚ΡŒ Π² Linux, Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ настраиваСтС соСдинСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π±ΡƒΠ΄ΡƒΡ‚ привязаны ΠΊ сСтСвым устройствам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ сСтСвыми интСрфСйсами, установлСнными Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Когда устройство ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ соСдинСниС, ΠΎΠ½ΠΎ считаСтся Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ поднятым. Если соСдинСниС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ»ΠΈ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½ΠΎ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ сСтСвых соСдинСний

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ncmli позволяСт быстро Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ сразу ΠΆΠ΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ соСдинСния. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Wired connection 2 (с enp0s8), Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.

Π’ ΠΎΠΏΡ†ΠΈΠΈ type ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ Ethernet-соСдинСниС, Π° Π² ΠΎΠΏΡ†ΠΈΠΈ ifname (interface name) ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ сСтСвой интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ послС запуска ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

$ nmcli connection show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
Wired connection 2  2279d917-fa02-390c-8603-3083ec5a1d3e  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9
ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  --  

Π‘ΠΎΠ·Π΄Π°Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ соСдинСниС, ethernet-enp0s8. Π•ΠΌΡƒ Π±Ρ‹Π» Π½Π°Π·Π½Π°Ρ‡Π΅Π½ UUID, Ρ‚ΠΈΠΏ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ β€” Ethernet. ПоднимСм Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ up:

$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

Π•Ρ‰Ρ‘ Ρ€Π°Π· провСряСм список Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… соСдинСний:

$ nmcli connection show --active
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ac3241e4-b424-35d6-aaa7-07498561688d  ethernet  enp0s3
ethernet-enp0s8     09d26960-25a0-440f-8b20-c684d7adc2f5  ethernet  enp0s8
Wired connection 3  52d89737-de92-35ec-b082-8cf2e5ac36e6  ethernet  enp0s9

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ соСдинСниС ethernet-enp0s8, ΠΎΠ½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сСтСвой интСрфСйс enp0s8.

Настройка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ncmli позволяСт Π»Π΅Π³ΠΊΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. НапримСр, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ динамичСский (DHCP) Π½Π° статичСский IP-адрСс.

ΠŸΡƒΡΡ‚ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ IP-адрСс Ρ€Π°Π²Π½Ρ‹ΠΌ 192.168.4.26. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΠ΅Ρ€Π²Π°Ρ нСпосрСдствСнно установит IP-адрСс, Π° вторая ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ установки IP-адрСса Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽΒ» (manual):

$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Ρ‚ΡŒ маску подсСти. Для нашСго тСстового ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ это 255.255.255.0, ΠΈΠ»ΠΈ с /24 для бСсклассовой ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ (CIDR).

Π§Ρ‚ΠΎΠ±Ρ‹ измСнСния вступили Π² силу, Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ соСдинСниС вновь:

$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveC

Если Π²Π°ΠΌ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ DHCP, вмСсто manual ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ auto:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Π Π°Π±ΠΎΡ‚Π° с устройствами

Для этого ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠ΅ΠΊΡ†ΠΈΡŽ Device.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса устройств

$ nmcli device status
DEVICE  TYPE      STATE      CONNECTION        
enp0s3  ethernet  connected  Wired connection 1
enp0s8  ethernet  connected  ethernet-enp0s8    
enp0s9  ethernet  connected  Wired connection 3
lo      loopback  unmanaged  --  

Запрос ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± устройствС

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ дСйствиС show ΠΈΠ· сСкции Device (Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя устройства). Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ достаточно ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, часто Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… страницах.
Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° интСрфСйс enp0s8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ нашС Π½ΠΎΠ²ΠΎΠ΅ соСдинСниС. УбСдимся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€ΠΎΠ²Π½ΠΎ Ρ‚ΠΎΡ‚ IP-адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ установили Ρ€Π°Π½Π΅Π΅:

$ nmcli device show enp0s8
GENERAL.DEVICE:                         enp0s8
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:81:16:20
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ethernet-enp0s8
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.4.26/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]:                         fe80::6d70:90de:cb83:4491/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ достаточно ΠΌΠ½ΠΎΠ³ΠΎ. Π’Ρ‹Π΄Π΅Π»ΠΈΠΌ Π³Π»Π°Π²Π½ΠΎΠ΅:

  • Имя сСтСвого интСрфСйса: enp0s8.
  • Π’ΠΈΠΏ соСдинСния: ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠ΅ Ethernet-соСдинСниС.
  • ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ MAC-адрСс устройства.
  • Π£ΠΊΠ°Π·Π°Π½ Maximum transmission unit (MTU) β€” ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ Π±Π΅Π· Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
  • Устройство Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ.
  • Имя соСдинСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ устройство: ethernet-enp0s8.
  • Устройство ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ IP-адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ установили Ρ€Π°Π½Π΅Π΅: 192.168.4.26/24.

Другая информация относится ΠΊ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ шлюза соСдинСния. Они зависят ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ сСти.

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ nmcli

Π£ nmcli Ρ‚Π°ΠΊΠΆΠ΅ имССтся ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½Π΅Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для соСдинСния ethernet-enp0s8, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ дСйствиС edit:

$ nmcli connection edit ethernet-enp0s8

Π£ Π½Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ нСбольшая справка, которая, ΠΏΡ€Π°Π²Π΄Π°, уступаСт ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ консольной вСрсии:

===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>

Если Π²Ρ‹ Π²Π²Π΅Π΄Ρ‘Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ print ΠΈ Π½Π°ΠΆΠΌΡ‘Ρ‚Π΅ Enter, nmcli ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ всС свойства соСдинСния:

===============================================================================
                 Connection profile details (ethernet-enp0s8)
===============================================================================
connection.id:                          ethernet-enp0s8
connection.uuid:                        09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              enp0s8
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1593967212
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ свойство DHCP, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ goto ipv4 ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter:

nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search, 
dns-options, dns-priority, addresses, gateway, routes, route-metric, 
route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, 
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname, 
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail, 
dad-timeout
nmcli ipv4>

Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ set method auto ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter:

nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ статичСский IP-адрСс, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Π²Π΅Π΄ΠΈΡ‚Π΅ no ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Ссли Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ понадобится Π²Π°ΠΌ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Но Π΄Π°ΠΆΠ΅ с сохранСнным статичСским IP-адрСсом Π±ΡƒΠ΄Π΅Ρ‚ использован DHCP, Ссли method установлСн Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ auto.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ save, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния:

nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ quit, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° nmcli. Если ΠΏΠ΅Ρ€Π΅Π΄ΡƒΠΌΠ°Π»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ back.

И это Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всё

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ nmcli ΠΈ посмотритС, сколько сущСствуСт настроСк ΠΈ сколько свойств ΠΈΠΌΠ΅Π΅Ρ‚ каТдая настройка. Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ β€” ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ инструмСнт, Π½ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ nmcli Π² однострочниках ΠΈΠ»ΠΈ скриптах, Π²Π°ΠΌ понадобится обычная вСрсия для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ основы, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ со справочной страницСй nmcli, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ Π΅Ρ‰Ρ‘ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.

На ΠΏΡ€Π°Π²Π°Ρ… Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹

Π­ΠΏΠΈΡ‡Π½Ρ‹Π΅ сСрвСры β€” это Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ сСрвСры Π½Π° Windows ΠΈΠ»ΠΈ Linux с ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ процСссорами сСмСйства AMD EPYC ΠΈ ΠΎΡ‡Π΅Π½ΡŒ быстрыми NVMe дисками Intel. Π‘ΠΏΠ΅ΡˆΠΈΡ‚Π΅ Π·Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ!

УправляСм сСтСвыми ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ Π² Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ консольной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ nmcli

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ