Tutoriel Linux

Modifier profil pomocí nmcli aniž byste ztratili síťový přístup

Débutant5 min de lecture

Změna IP adresy, brány nebo DNS na vzdáleném stroji se provádí jedním příkazem nmcli. Tato nastavení jsou uložena v profilu NetworkManageru a opětovné aktivování tohoto profilu může přerušit SSH relaci, kterou právě používáte k zadání příkazu.

Před úpravou profilu identifikujte ten, který odpovídá aktivnímu spojení, a udržujte otevřenou druhou relaci nebo konzoli hypervisoru. Omezte každou změnu na jednu oblast nastavení, zkontrolujte změněnou hodnotu, znovu aktivujte a poté zkontrolujte trasu a DNS, než uzavřete nouzovou relaci.

Ethernetový kabel připojený k mini serveru Linux s viditelným záložním připojením
Připravte konzoli nebo druhé připojení před znovuaktivováním síťového profilu.

Zkontrolujte správce a připravte nouzový přístup

nmcli spravuje pouze připojení řízená NetworkManagerem. Na stroji spravovaném systemd-networkd, ifupdown nebo Netplan s jiným backendem tyto příkazy nemají žádný vliv na skutečnou síť.

systemctl is-active NetworkManager
nmcli general status
nmcli connection show --active
ip route get 1.1.1.1

Příkaz systemctl is-active by měl vrátit aktivní a nmcli general status by měl odpovědět bez chyby. Příkaz ip route get 1.1.1.1 vrátí rozhraní, bránu a zdrojovou adresu použité k dosažení tohoto cíle: poznamenejte si tyto tři hodnoty, slouží jako reference po opětovné aktivaci.

Jedna SSH relace nestačí, když profil, který chcete upravit, přenáší tuto relaci: přerušení během opětovné aktivace ji ukončí a odstraní možnost vrátit se zpět. Udržujte otevřenou druhou relaci; na VM nebo vzdáleném serveru poskytuje konzole hypervisoru nebo hostitele tento druhý přístup.

Identifikujte profil s aktivním spojením

Vypište uložené profily a poté prozkoumejte ten, který je připojen k aktivnímu rozhraní.

nmcli -f NAME,UUID,TYPE,DEVICE connection show
PROFILE='Kabelové připojení 1'
nmcli -f connection.id,connection.uuid,connection.interface-name,ipv4.method,ipv4.addresses,ipv4.gateway,ipv4.dns connection show "$PROFILE"
nmcli connection show --active

Nahraďte Kabelové připojení 1 názvem uvedeným v systému, v uvozovkách pokud obsahuje mezery. Proměnná PROFILE zůstává dostupná pro následující příkazy ve stejném terminálu. Výstup ukazuje, zda IPv4 pochází z DHCP nebo z ruční konfigurace, s adresou, bránou a DNS aktuálně přidruženými k profilu.

Porovnejte pole DEVICE profilu s aktivním řádkem nmcli connection show --active. Profil Wi-Fi a profil Ethernetu často koexistují: úprava neaktivního profilu nepřeruší aktuální relaci, ale nezmění nic na cílové síti.

Upravit vlastnost a zkontrolovat její hodnotu

Začněte vlastností, která nemá vliv na adresu nebo trasu: tento krok potvrdí název profilu a sudo oprávnění, aniž by ohrozil aktuální relaci. connection.autoconnect-priority je vhodná, aplikuje se pouze na další výběr profilu a nic neznovuaktivuje. Na profilu, který nepřenáší aktivní relaci, je tato opatrnost volitelná: selhání nic nezpůsobí.

sudo nmcli connection modify "$PROFILE" connection.autoconnect-priority 20
nmcli -f connection.id,connection.autoconnect-priority connection show "$PROFILE"

Druhý příkaz by měl zobrazit 20. Poznamenejte si původní hodnotu před jejím změněním, abyste ji mohli obnovit. Udržujte každou změnu v jedné oblasti nastavení: priorita automatického připojení, DNS nebo adresace. Kontrola před znovuaktivací; pokud pak ověření selže, příčina zůstává omezena na tuto změnu.

Pro ignorování DNS poskytovaných DHCP je nastavení explicitní:

sudo nmcli connection modify "$PROFILE" ipv4.ignore-auto-dns yes

Poté uveďte řešitele pomocí ipv4.dns, oddělené mezerou a v uvozovkách:

sudo nmcli connection modify "$PROFILE" ipv4.dns "1.1.1.1 1.0.0.1"
nmcli -f ipv4.ignore-auto-dns,ipv4.dns connection show "$PROFILE"

1.1.1.1 a 1.0.0.1 slouží jako příklad. Pokud vaše firma nebo poskytovatel ukládá své řešitele, ponechte je: nezaměňujte je za veřejné adresy bez ověření politiky sítě. Porušená resoluce přeruší přístup spolehlivěji než chybná trasa.

Pro přepnutí profilu na ruční adresaci slouží jeden příkaz, který spojuje metodu, adresu a bránu:

sudo nmcli connection modify "$PROFILE" ipv4.method manual ipv4.addresses 198.51.100.10/24 ipv4.gateway 198.51.100.1
nmcli -f ipv4.method,ipv4.addresses,ipv4.gateway connection show "$PROFILE"

198.51.100.10/24 a 198.51.100.1 patří do rezervovaného příkladu: přizpůsobte je adresnímu plánu stroje. Před přepnutím si poznamenejte adresu a bránu DHCP zobrazenou příkazem ip route get: návrat zpět opět přepne ipv4.method na auto a znovu aktivuje profil.

Oficiální dokumentace nmcli od NetworkManageru uvádí názvy vlastností a jejich syntaxi podle nainstalované verze.

Znovu aktivujte připojení a poté zkontrolujte trasu a DNS

Změněné hodnoty zůstávají necitlivé, dokud není profil znovu aktivován. nmcli connection up může krátce přerušit provoz, včetně SSH, i když je příkaz správný.

sudo nmcli connection up id "$PROFILE"
nmcli connection show --active
ip route get 1.1.1.1
getent hosts example.com
resolvectl status

nmcli connection up by měl skončit bez chyby a profil by měl být zobrazen jako aktivní v nmcli connection show --active. Porovnejte rozhraní a bránu vrácené funkcí ip route get s hodnotami zaznamenanými při diagnostice.

getent hosts example.com testuje řešení s mechanismy nakonfigurovanými na stroji. resolvectl status podrobně popisuje aktuální DNS, když systemd-resolved spravuje řešení; pokud příkaz neexistuje na vaší distribuci, ověřte skutečný resolver, který používáte, místo abyste považovali DNS za validované.

Správná trasa s názvem, který se již neřeší, označuje DNS, nikoli trasu. Průvodce ip route pod Linuxem odděluje trasu, bránu a zdrojovou adresu. Pro přečtení adres rozhraní doplňuje průvodce ip addr pod Linuxem kontrolu.

Ukážte, že postup zastavujete, pokud jiný nástroj spravuje síť

Pokud počáteční diagnostika ukazuje jiného správce, neaktivujte žádný profil pomocí nmcli. Na Ubuntu mohou být YAML soubory řízeny Netplanem s backendem odlišným od NetworkManageru: reverzibilní test Netplan je vhodný pro tuto konfiguraci.

Druhá SSH relace a konzole pro nouzovou situaci omezují riziko ztráty přístupu během přepínání, nezpůsobují však, že špatný cíl je bez rizika. Ověřte, že profil, rozhraní, trasa a řešení odpovídají očekávaným hodnotám před uzavřením nouzové relace.