Udnyt det fulde udbytte af NetworkManager-netværksadministrationsværktøjet på Linux-kommandolinjen ved hjælp af nmcli-værktøjet.
Hjælpeprogram
Den dukkede op i 2010 og er for mange blevet en alternativ måde at konfigurere netværksgrænseflader og forbindelser på. Selvom nogle mennesker stadig bruger
ncmli kommandosyntaks
Generelt ser syntaksen sådan ud:
$ nmcli <options> <section> <action>
- muligheder er parametre, der bestemmer finesserne af nmcli-drift,
- sektion (sektion) - bestemmer hvilke funktioner i værktøjet der skal bruges,
- handling - giver dig mulighed for at specificere, hvad der rent faktisk skal gøres.
Der er i alt 8 sektioner, som hver er forbundet med et bestemt sæt kommandoer (handlinger):
- Hjælp giver hjælp om ncmcli-kommandoer og deres brug.
- Generelt returnerer NetworkManager-status og global konfiguration.
- netværk inkluderer kommandoer til at forespørge om netværksforbindelsesstatus og aktivere/deaktivere forbindelser.
- Radio inkluderer kommandoer til at forespørge om WiFi-netværksforbindelsesstatus og aktivere/deaktivere forbindelser.
- Overvåg omfatter kommandoer til at overvåge NetworkManager-aktivitet og observere ændringer i netværksforbindelsernes tilstand.
- Forbindelse omfatter kommandoer til styring af netværksgrænseflader, tilføjelse af nye forbindelser og sletning af eksisterende.
- Enhed bruges hovedsageligt til at ændre enhedsrelaterede parametre (såsom interfacenavn) eller til at forbinde enheder ved hjælp af en eksisterende forbindelse.
- Secret registrerer nmcli som en NetworkManager "hemmelig agent", der lytter efter hemmelige beskeder. Denne sektion bruges sjældent, fordi nmcli fungerer på denne måde som standard, når der oprettes forbindelse til netværk.
Simple eksempler
Før du begynder, skal du sørge for, at NetworkManager kører, og at nmcli kan kommunikere med det:
$ nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
Arbejdet begynder ofte med at se alle netværksforbindelsesprofiler:
$ 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
Denne kommando bruger effekt vis for afsnittet Forbindelse.
Testmaskinen kører Ubuntu 20.04. I dette tilfælde fandt vi tre kablede forbindelser: enp0s3, enp0s8 og enp0s9.
Administrer forbindelser
Det er vigtigt at forstå, at i nmcli mener vi med udtrykket Connection en enhed, der indeholder al information om forbindelsen. Med andre ord er dette netværkskonfigurationen. Forbindelse indkapsler al forbindelsesrelateret information, inklusive linklag og IP-adresseringsoplysninger. Disse er Layer 2 og Layer 3 i OSI-netværksmodellen.
Når du opsætter et netværk i Linux, opsætter du normalt forbindelser, der ender med at blive bundet til netværksenheder, som igen er netværksgrænseflader installeret på computeren. Når en enhed bruger en forbindelse, betragtes den som aktiv eller forhøjet. Hvis en forbindelse ikke er i brug, er den inaktiv eller nulstillet.
Tilføjelse af netværksforbindelser
ncmli-værktøjet giver dig mulighed for hurtigt at tilføje og straks konfigurere forbindelser. For at tilføje Wired forbindelse 2 (med enp0s8), skal du for eksempel køre følgende kommando som superbruger:
$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.
I typeindstillingen angiver vi, at dette vil være en Ethernet-forbindelse, og i indstillingen ifname (interfacenavn) angiver vi den netværksgrænseflade, vi ønsker at bruge.
Dette er, hvad der vil ske efter at have kørt kommandoen:
$ 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 --
En ny forbindelse er blevet oprettet, ethernet-enp0s8. Det blev tildelt et UUID, og forbindelsestypen var Ethernet. Lad os hæve det ved hjælp af op-kommandoen:
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
Lad os tjekke listen over aktive forbindelser igen:
$ 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
En ny forbindelse ethernet-enp0s8 er blevet tilføjet, den er aktiv og bruger enp0s8 netværksgrænsefladen.
Opsætning af forbindelser
ncmli-værktøjet giver dig mulighed for nemt at ændre parametrene for eksisterende forbindelser. For eksempel skal du ændre din dynamiske (DHCP) IP-adresse til en statisk IP-adresse.
Lad os sige, at vi skal indstille IP-adressen til 192.168.4.26. For at gøre dette bruger vi to kommandoer. Den første indstiller IP-adressen direkte, og den anden vil skifte IP-adresseindstillingsmetoden til manuel:
$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual
Glem ikke også at indstille undernetmasken. For vores testforbindelse er dette 255.255.255.0 eller med /24 for klasseløs routing (CIDR).
For at ændringerne træder i kraft, skal du deaktivere og derefter genaktivere forbindelsen:
$ 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
Hvis du tværtimod skal installere DHCP, skal du bruge auto i stedet for manuel:
$ nmcli connection modify ethernet-enp0s8 ipv4.method auto
Arbejde med enheder
Til dette bruger vi sektionen Enhed.
Kontrollerer enhedsstatus
$ 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 --
Anmoder om enhedsoplysninger
For at gøre dette skal du bruge showhandlingen fra enhedssektionen (du skal angive enhedsnavnet). Værktøjet viser en masse information, ofte på flere sider.
Lad os se på enp0s8-grænsefladen, som vores nye forbindelse bruger. Lad os sikre os, at den bruger præcis den IP-adresse, som vi har angivet tidligere:
$ 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
Der er ret mange oplysninger. Lad os fremhæve det vigtigste:
- Netværksgrænsefladenavn: enp0s8.
- Forbindelsestype: kablet Ethernet-forbindelse.
- Vi ser enhedens MAC-adresse.
- Maksimal transmissionsenhed (MTU) angivet — den maksimale størrelse af en nyttig datablok af én pakke, der kan transmitteres af protokollen uden fragmentering.
- enhed aktuelt tilsluttet.
- Forbindelsesnavnhvilken enhed bruger: ethernet-enp0s8.
- Enheden bruger IP-adresse, som vi installerede tidligere: 192.168.4.26/24.
Andre oplysninger vedrører standard routing- og forbindelsesgatewayparametre. De afhænger af det specifikke netværk.
Interaktiv nmcli editor
nmcli har også en simpel interaktiv editor, som kan være mere behagelig for nogle at arbejde med. For at køre det på en ethernet-enp0s8-forbindelse for eksempel, brug effekt redigere:
$ nmcli connection edit ethernet-enp0s8
Den har også en lille hjælp, som dog er mindre i størrelsen end konsolversionen:
===| 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>
Hvis du skriver udskriftskommandoen og trykker på Enter, vil nmcli vise alle forbindelsesegenskaberne:
===============================================================================
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: --
For at indstille forbindelsen til DHCP, skriv goto ipv4 og klik Indtast:
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>
Skriv derefter sæt metode auto og klik Indtast:
nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:
Hvis du vil slette den statiske IP-adresse, skal du klikke på Indtast. Ellers skal du skrive nej og trykke på Enter. Du kan gemme den, hvis du tror, du får brug for den i fremtiden. Men selv med en gemt statisk IP-adresse, vil DHCP blive brugt, hvis metoden er indstillet til auto.
Brug gem-kommandoen til at gemme dine ændringer:
nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>
Skriv quit for at afslutte nmcli Interactive Editor. Hvis du ændrer mening om at tage af sted, skal du bruge tilbagekommandoen.
Og det er ikke alt
Åbn nmcli Interactive Editor og se, hvor mange indstillinger der er, og hvor mange egenskaber hver indstilling har. Den interaktive editor er et fantastisk værktøj, men hvis du vil bruge nmcli i one-liners eller scripts, skal du bruge den almindelige kommandolinjeversion.
Nu hvor du har det grundlæggende, så tjek ud
Om reklamernes rettigheder
Episke servere - Er
Kilde: www.habr.com