IP-hálózat konfigurálása az 'nmcli' segítségével Linux alatt
Linux rendszergazdaként különféle eszközök állnak rendelkezésére a hálózati kapcsolatok konfigurálásához, például az nmtui, a NetworkManager GNOME grafikus felhasználói felülettel, és természetesen a >nmcli (hálózatkezelő parancssori eszköz).
Megfigyeltem, hogy sok rendszergazda használja az nmtui alkalmazást az egyszerűsége miatt. Az nmcli használata azonban időt takarít meg, növeli önbizalmát, lehetővé teszi a szkriptekbe való integrációt, és a Linux szerverhálózatok hibaelhárításának elsődleges eszköze, amely gyorsan visszaállítja a funkcionalitást.
Miután észrevettem számos megjegyzést, amelyek segítséget kértek az nmclihez, úgy döntöttem, megírom ezt a cikket. Természetesen mindig figyelmesen olvassa el a man oldalakat (ezek az első számú források az Ön számára). Célom, hogy időt takarítsak meg, és néhány hasznos tanácsot adjak.
nmcli parancs szintaxis
Az nmcli szintaxisa a következő:
nmcli [OPTIONS] OBJECT {COMMAND | help}
Ahol az OBJECT
az általános, hálózati, rádiós, kapcsolati, eszköz és ügynök egyike.
Ellenőrizze a hálózati eszköz állapotát Linux alatt
Jó kiindulási pont az lenne, ha ellenőriznénk eszközeinket:
nmcli dev status
DEVICE TYPE STATE CONNECTION
docker0 bridge connected docker0
virbr0 bridge connected virbr0
enp0s3 ethernet connected enp0s3
virbr0-nic ethernet disconnected --
lo loopback unmanaged --
Amint az első oszlopban láthatjuk, ott van a hálózati eszközeink listája. Van egy hálózati kártyánk, melynek neve enp0s3
. A gépén különböző neveket láthat.
Az elnevezés a hálózati kártya típusától függ (beépített-e, PCI kártya stb.). Az utolsó oszlopban a konfigurációs fájljainkat látjuk, amelyeket eszközeink a hálózathoz való csatlakozáshoz használnak
Könnyű megérteni, hogy az eszközeink önmagukban semmit sem tehetnek. Szükségük van egy konfigurációs fájl létrehozására, amely utasítja őket a hálózati kapcsolat elérésére. Ezeket a fájlokat „kapcsolati profiloknak” is nevezik, és az /etc/sysconfig/network-scripts könyvtárban találjuk őket.
cd /etc/sysconfig/network-scripts/
ls
Minta kimenet
ifcfg-enp0s3 ifdown-isdn ifup ifup-plip ifup-tunnel
ifcfg-lo ifdown-post ifup-aliases ifup-plusb ifup-wireless
ifdown ifdown-ppp ifup-bnep ifup-post init.ipv6-global
ifdown-bnep ifdown-routes ifup-eth ifup-ppp network-functions
ifdown-eth ifdown-sit ifup-ib ifup-routes network-functions-ipv6
ifdown-ib ifdown-Team ifup-ippp ifup-sit
ifdown-ippp ifdown-TeamPort ifup-ipv6 ifup-Team
ifdown-ipv6 ifdown-tunnel ifup-isdn ifup-TeamPort
Amint itt látható, az 'ifcfg-'
-vel kezdődő nevű fájlok (interfészkonfiguráció) kapcsolati profilok. Amikor új kapcsolatot hozunk létre, vagy módosítunk egy meglévőt az nmcli vagy az nmtui segítségével, az eredmények itt kapcsolati profilként kerülnek mentésre.
Megmutatok kettőt a gépemről, az egyiket dhcp konfigurációval, a másikat pedig statikus ip-vel.
cat ifcfg-static1
cat ifcfg-Myoffice1
Tisztában vagyunk azzal, hogy egyes tulajdonságok eltérő értékekkel rendelkeznek, mások pedig nem léteznek, ha nem szükségesek.
Nézzük gyorsan a legfontosabbakat.
TYPE
– itt van az Ethernet típus. Lehetne WiFi, csapat, kötvény és egyebek is.DEVICE
– a profilhoz társított hálózati eszköz neve.BOOTPROTO
– ha értéke „dhcp ”, akkor kapcsolati profilunk dinamikus IP-címet kap a DHCP-kiszolgálótól. Ha az értéke „none”, akkor nem használ dinamikus IP-címet, és valószínűleg statikus IP-címet rendelünk hozzá.IPADDR
– a profilunkhoz hozzárendelt statikus IP-cím.PREFIX
– az alhálózati maszk. A 24 érték azt jelenti, hogy 255.255.255.0. Az alhálózati maszkot jobban megértheti, ha felírja a bináris formátumát. Például a 16, 24 és 26 értékek azt jelentik, hogy az első 16, 24< A, illetve a 26 bit értéke 1, a többi pedig 0. Ez határozza meg a hálózati címet és a hozzárendelhető IP-címek tartományát.GATEWAY
– az átjáró IP-címe.DNS1
,DNS2
– két DNS-szerver, amelyet használni szeretnénk.ONBOOT
– ha értéke “igen”, az azt jelenti, hogy rendszerindításkor a számítógépünk beolvassa ezt a profilt, és megpróbálja hozzárendelni az eszközéhez.
Ellenőrizze a hálózati kapcsolatot Linux alatt
Most pedig menjünk tovább, és ellenőrizzük a kapcsolatainkat:
nmcli con show
Az eszközök utolsó oszlopa segít megérteni, hogy melyik kapcsolat ’FEL’ és fut, és melyik nem. A fenti képen a két aktív kapcsolat látható: Myoffice1 és enp0s8.
Tipp: Ha csak az aktív kapcsolatokat szeretné látni, írja be:
nmcli con show -a
Tipp: Az nmcli használatakor használhatja az automatikus kiegészítést a Tab
megnyomásával, de jobb, ha a parancs minimális formátuma.
Így a következő parancsok egyenlőek:
nmcli connection show
nmcli con show
nmcli c s
Ellenőrizze az IP-címet Linux alatt
Ha megnézem az eszközeim IP-címét:
ip a
Úgy látom, hogy az enp0s3
eszközöm elvette a 192.168.1.6 IP-címet a dhcp-kiszolgálótól, mert a fent lévő Myoffice1
kapcsolati profil dhcp-konfigurációval rendelkezik.
Ha a “up ”
kapcsolati profilomat static1
néven hozom létre, akkor az eszközöm a statikus 192.168.1.40 IP-címet veszi fel, ahogy az a csatlakozási profil.
nmcli con down Myoffice1 ; nmcli con up static1
nmcli con show
Nézzük újra az IP-címet:
ip a
Elkészíthetjük az első kapcsolati profilunkat. A minimálisan meghatározandó tulajdonságok a következők: type, ifname, és con-name:
type
– a kapcsolat típusa.ifname
– a kapcsolatunkhoz rendelt eszköznévhez.con-name
– a kapcsolat nevéhez.
Új Ethernet kapcsolat létrehozása Linux alatt
Hozzunk létre egy új ethernet kapcsolatot Myhome1
néven, egy enp0s3
eszközhöz rendelve:
nmcli con add type ethernet con-name Myhome1 ifname enp0s3
Ellenőrizze a konfigurációját:
cat ifcfg-Myhome1
Amint láthatja, a BOOTPROTO=dhcp
kódja van, mivel nem adtunk meg statikus IP-címet.
Tipp: Bármilyen kapcsolatot módosíthatunk az „nmcli con mod“
paranccsal. Ha azonban módosít egy dhcp-kapcsolatot, és statikusra állítja, ne felejtse el módosítani az “ipv4.method ”
értékét “auto ”
-ról „manual ”-ra
. Ellenkező esetben két IP-címet kapsz: egyet a dhcp-kiszolgálótól, és egy statikust.
Készítsünk egy új Ethernet kapcsolati profilt static2
néven, amely egy enp0s3
eszközhöz lesz hozzárendelve, statikus IP 192.168.1.50, alhálózat maszk 255.255.255.0=24, és átjáró 192.168.1.1.
nmcli con add type ethernet con-name static2 ifname enp0s3 ip4 192.168.1.50/24 gw4 192.168.1.1
Ellenőrizze a konfigurációját:
cat ifcfg-static2
DNS-kiszolgálók módosítása Linux rendszerben
Módosítsuk az utolsó kapcsolati profilt, és adjunk hozzá két DNS-kiszolgálót.
nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”
Tipp: Van itt valami, amire figyelnie kell: az IP-cím és az átjáró tulajdonságai eltérő nevet kapnak a kapcsolat hozzáadásakor és módosításakor. A kapcsolatok hozzáadásakor a „ip4 ”
és a „gw4 ”
, míg módosításakor az „ipv4 ”
és “ kódot használja. gwv4 ”
.
Hozd létre az Ethernet-kapcsolatot Linuxban
Most hozzuk létre ezt a kapcsolati profilt:
nmcli con down static1 ; nmcli con up static2
Amint látja, az enp0s3
eszköz IP-címe immár 192.168.1.50.
ip a
Tipp: Számos tulajdonságot módosíthat. Ha nem emlékszik rájuk fejből, segíthet magának, ha beírja az “nmcli con show ”
parancsot, majd utána a kapcsolat nevét:
nmcli con show static2
Ezeket a kisbetűkkel írt tulajdonságokat módosíthatja.
Például: amikor leállít egy kapcsolati profilt, a NetworkManager másik kapcsolati profilt keres, és automatikusan előhívja. (Gyakorlatnak hagyom, hogy ellenőrizzem). Ha nem szeretné, hogy kapcsolati profilja automatikusan csatlakozzon:
nmcli con mod static2 connection.autoconnect no
Az utolsó gyakorlat nagyon hasznos: létrehozott egy kapcsolati profilt, de azt szeretné, hogy bizonyos felhasználók használják. Jó osztályozni a felhasználókat!
Állítsa be az Ethernet csatlakozási engedélyeket a Felhasználóra Linux rendszeren
Ezt a profilt csak a stella felhasználó használhatja:
nmcli con mod static2 connection.permissions stella
Tipp: Ha egynél több felhasználónak szeretne engedélyt adni, akkor be kell írnia a user:user1,user2
szót szóköz nélkül:
nmcli con mod static2 connection.permissions user:stella,john
Ha másik felhasználóként jelentkezik be, nem tudja „fel” előhozni ezt a kapcsolati profilt:
nmcli con show
nmcli con up static2
ls /etc/sysconfig/network-scripts
Egy hibaüzenet azt mondja, hogy a „static2” kapcsolat nem létezik, még akkor is, ha azt látjuk, hogy létezik. Ennek az az oka, hogy egy jelenlegi felhasználónak nincs engedélye a kapcsolat létrehozására.
Következtetés: ne habozzon az nmcli használatával. Könnyű és hasznos.