Existuje mnoho případů, kdy můžeme chtít nastavit statickou IP pro síťové rozhraní. V RHEL 8 / CentOS 8 jsou síťová připojení spravována démonem NetworkManager, takže v tomto tutoriálu uvidíme, jak můžeme takový úkol provést přímou úpravou souboru rozhraní pomocí nástroje příkazového řádku nmcli nebo prostřednictvím textového uživatelského rozhraní nmtui .
V tomto tutoriálu se naučíte:
- Jak nastavit statickou IP adresu přímou úpravou souboru rozhraní
- Jak nastavit statickou IP adresu pomocí nástroje nmcli
- Jak nastavit statickou IP adresu pomocí nmtui

Upravený soubor síťového rozhraní
Požadavky na software a použité konvence
| Kategorie | Požadavky, konvence nebo použitá verze softwaru |
|---|---|
| Systém | RHEL 8 / CentOS 8 |
| Software | Veškerý software zmíněný v tomto tutoriálu je součástí minimální instalace RHEL 8 nebo CentOS 8. |
| Jiné | Oprávnění ke spuštění příkazu s právy root. |
| Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Úvod
V Red Hat Enterprise Linux 8 jsou síťová rozhraní spravována NetworkManager démona, takže abychom mohli změnit nastavení síťového rozhraní, musíme s ním nějak interagovat. V tomto tutoriálu uvidíme, jak můžeme nastavit statickou IP adresu, bránu a DNS server pro NIC pomocí různých tří metod.
Identifikace našeho rozhraní
První věc, kterou chceme udělat, je najít rozhraní, které chceme upravit. K výpisu všech rozhraní v našem systému můžeme použít ip addr příkaz:
$ ip addr
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.122.189/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
valid_lft 3004sec preferred_lft 3004sec
inet6 fe80::9ab6:ba48:1ddd:a8e1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
</broadcast,multicast,up,lower_up></loopback,up,lower_up>
Ve výše uvedeném výstupu, který je výsledkem spuštění příkazu na mém virtualizovaném počítači rhel8, můžeme vidět dvě rozhraní:lo a enp1s0 . První je „virtuální“ rozhraní, které systém používá k „mluvení“ sám se sebou. Druhá je ta, která nás zajímá, a její IPv4 adresa je aktuálně 192.168.122.189:chceme ji změnit.
Metoda 1 – ruční úprava konfiguračního souboru rozhraní
Pro každé síťové rozhraní spravované démonem NetworkManager je vytvořen konfigurační soubor v /etc/sysconfig/network-scripts adresář. Název souboru se skládá z ifcfg- prefix plus název rozhraní. Pokud zkontrolujeme soubor související s naší NIC, uvidíme jeho skutečné nastavení:
$ cat /etc/sysconfig/network-scrIPts/ifcfg-enp1s0 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="enp1s0" UUID="d5f41bf4-de0a-43b3-b633-7e2ec6212e58" DEVICE="enp1s0" ONBOOT="yes"."
BOOTPROTO volba je nastavena na dhcp :volba nastavuje protokol, který se má použít při spouštění pro nastavení IP adresy rozhraní. Možné možnosti použití jsou:
- žádný – neměl by být používán žádný protokol
- bootp – použijte protokol bootp
- dhcp – použijte protokol dhcp
Protože chceme nastavit statickou adresu IPv4, chceme změnit hodnotu BOOTPROTO na none a staticky nakonfigurujte naši IP, předponu trasy, bránu a DNS server. Toho můžeme dosáhnout pomocí příslušného IPADDR , PREFIX , GATEWAY a DNS možnosti. Protože lze zadat mnoho serverů DNS, DNS možnost musí být hlášena spolu s progresivním číslem počínaje 1. Po potřebných úpravách by náš soubor měl vypadat
takto:
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="enp1s0" UUID="d5f41bf4-de0a-43b3-b633-7e2ec6212e58" DEVICE="enp1s0" ONBOOT="yes" IPADDR=192.168.122.66 PREFIX=24 GATEWAY=192.168.122.1 DNS1=192.168.122.1
Naši statickou IP jsme nastavili na 192.168.122.66 a nastavte naši bránu i DNS server na 192.168.122.1 . Nyní, aby naše změny byly účinné, musíme odložit a znovu spustit síťové rozhraní. Uvědomte si, že to naruší existující připojení ssh přes uvedené rozhraní:
$ sudo nmcli connection down enp1s0 && sudo nmcli connection up enp1s0
Spuštěním ip addr znovu můžeme ověřit, že se IP adresa změnila:
IP addr|grep enp1s0|grep inet inet 192.168.122.66/24 brd 192.168.122.255 scope global noprefix
Metoda 2 – pomocí nmcli
Nmcli je nástroj příkazového řádku používaný k ovládání NetworkManageru. Jeho použitím můžeme mimo jiné měnit nastavení sítě pro konkrétní rozhraní. V našem případě musíme použít nmcli s connection dílčí příkaz s modify nebo edit akce. První nám umožňuje přímo měnit nastavení, zatímco druhý spouští shell nmcli, kde můžeme pracovat interaktivně.
Přímé použití nmcli
Chcete-li změnit IP adresu rozhraní „enp1s0“ přímým příkazem nmcli, spustíme:
$ sudo nmcli connection modify enp1s0 IPv4.address 192.168.122.66/24
Všimněte si, že jsme specifikovali směrovací prefix společně s IP pomocí tzv. CIDR notace (Classes Inter-Domain Routing). Ke změně brány a nastavení DNS používáme podobnou syntaxi:
$ sudo nmcli connection modify enp1s0 IPv4.gateway 192.168.122.1 $ sudo nmcli connection modify enp1s0 IPv4.dns 192.168.122.1
Nakonec nastavíme metodu na manual abyste se vyhnuli použití jiného spouštěcího protokolu pro rozhraní. Tento příkaz nastaví volbu BOOTPROTO na none v konfiguračním souboru rozhraní:
$ sudo nmcli connection modify enp1s0 IPv4.method manual
Použití prostředí nmcli
Jak jsme uvedli výše, k provedení stejných změn můžeme použít i interaktivní metodu. Chcete-li zadat nmcli shell používáme edit akce, za kterou následuje název rozhraní, které chceme upravit:
$ sudo nmcli connection edit enp1s0 ===| nmcli interactive connection editor |=== Editing existing '802-3-ethernet' connection: 'enp1s0' Type 'help' or '?' for available commands. Type 'print' to show all the connection properties. Type 'describe [.]' 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>
Blikající kurzor nám říká, že shell přijímá příkazy:můžeme napsat help Chcete-li získat seznam dostupných, print zobrazit všechny vlastnosti připojení nebo describe následuje nastavení a jedna z jeho vlastností (reprezentovaná tečkovou notací), abyste získali popis druhé. Například:
nmcli> nmcli> describe IPv4.address === [addresses] === [NM property descrIPtion] Array of IP addresses. [nmcli specific descrIPtion] Enter a list of IPv4 addresses formatted as: IP[/prefix], IP[/prefix],... Missing prefix is regarded as prefix of 32. Example: 192.168.1.5/24, 10.0.0.11/24
Chcete-li změnit adresu našeho rozhraní:
nmcli> set IPv4.address 192.168.122.66/24
Stejný princip se používá pro změnu ostatních vlastností:
nmcli> set IPv4.gateway 192.168.122.1 nmcli> set IPv4.dns 192.168.122.1 nmcli> set IPv4.method manual
Chcete-li uložit provedené úpravy, musíme vydat poslední příkaz:
nmcli> save Connection 'enp1s0' (d5f41bf4-de0a-43b3-b633-7e2ec6212e58) successfully updated.
Pro ukončení shellu nmcli stačí napsat quit a stiskněte enter:
nmcli> quit
Opět, aby byly změny účinné, měli bychom znovu načíst rozhraní pomocí stejného příkazu, který jsme použili dříve.
Metoda 3 – pomocí nmtui
Kromě změny parametrů síťového rozhraní ruční úpravou jeho souboru nebo pomocí utility nmcli můžeme NetworkManager ovládat také pomocí textového uživatelského rozhraní. Pro jeho spuštění stačí zavolat nmtui v našem terminálu:
$ sudo nmtui

Textové uživatelské rozhraní nmtui
Vybereme Edit a connection a pak název rozhraní, se kterým chceme manipulovat; poté pokračujeme ve změně požadovaných hodnot. Například:

Úprava nastavení připojení pomocí nmtui
Poté, co jsme spokojeni, vybereme OK a stiskněte enter:vrátíme se zpět do nabídky výběru rozhraní. Tentokrát zvolíme back a poté zvolte quit k východu. Chcete-li použít nastavení, musíme znovu načíst připojení rozhraní:
$ sudo nmcli connection down enp1s0 && sudo nmcli connection up enp1s0
Závěry
V tomto tutoriálu jsme viděli tři metody, které můžeme použít k nastavení statické IP adresy na Red Hat Enterprise Linux 8. Vidíme, jaké možnosti bychom měli změnit a co bychom měli přidat do konfiguračního souboru rozhraní při jeho ruční úpravě a jak provést stejné změny pomocí nmcli a nmtui, což jsou nástroje příkazového řádku a textové uživatelské rozhraní:oba se používají k ovládání démona NetworkManager.