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.