Linux'ta 'nmcli' ile IP Ağını Yapılandırma


Bir Linux yöneticisi olarak, ağ bağlantılarınızı yapılandırmak için nmtui, GNOME grafik kullanıcı arayüzüne sahip NetworkManager'ınız ve tabii ki gibi, kullanabileceğiniz çeşitli araçlara sahipsiniz. >nmcli (ağ yöneticisi komut satırı aracı).

Pek çok yöneticinin basitliği nedeniyle nmtui kullandığını gözlemledim. Bununla birlikte, nmcli'yi kullanmak size zaman kazandırır, güveninizi artırır, komut dosyalarıyla entegrasyona olanak tanır ve Linux sunucu ağında sorun gidermede birincil araç olup, işlevselliğini hızlı bir şekilde geri yükler.

nmcli ile ilgili yardım isteyen çok sayıda yorum fark ettim ve bu makaleyi yazmaya karar verdim. Elbette man sayfalarını her zaman dikkatlice okumalısınız (bunlar sizin için 1 numaralı kaynaktır). Amacım size zaman kazandırmak ve bazı yararlı ipuçları vermek.

nmcli Komut Söz Dizimi

nmcli'nin sözdizimi şöyledir:

nmcli [OPTIONS] OBJECT {COMMAND | help}

Burada OBJECT genel, ağ, radyo, bağlantı, cihaz ve aracıdan biridir.

Linux'ta Ağ Cihazı Durumunu Kontrol Edin

Cihazlarımızı kontrol etmek iyi bir başlangıç noktası olabilir:

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     --         

İlk sütunda görebileceğimiz gibi ağ cihazlarımızın bir listesi bulunmaktadır. enp0s3 adında bir ağ kartımız var. Makinenizde farklı adlar görebilirsiniz.

Adlandırma, ağ kartının türüne bağlıdır (yerleşik mi, PCI kart mı, vb.). Son sütunda ise cihazlarımızın ağa bağlanmak için kullandığı konfigürasyon dosyalarımızı görüyoruz.

Cihazlarımızın tek başına hiçbir şey yapamayacağını anlamak kolaydır. Ağ bağlantısının nasıl sağlanacağı konusunda onlara talimat verecek bir yapılandırma dosyası oluşturmamıza ihtiyaçları var. Bu dosyalara "bağlantı profilleri" de denir ve bunları /etc/sysconfig/network-scripts dizininde buluruz.

cd /etc/sysconfig/network-scripts/
ls
Örnek Çıktı
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

Burada gördüğünüz gibi adları 'ifcfg-' (arayüz konfigürasyonu) ile başlayan dosyalar bağlantı profilleridir. nmcli veya nmtui ile yeni bir bağlantı oluşturduğumuzda veya mevcut bağlantıyı değiştirdiğimizde, sonuçlar buraya bağlantı profilleri olarak kaydedilir.

Size makinemden iki tanesini göstereceğim; biri dhcp konfigürasyonlu, diğeri statik IP'li.

cat ifcfg-static1
cat ifcfg-Myoffice1

Bazı özelliklerin farklı değerlere sahip olduğunu, bazılarının ise gerekli olmadıkça var olmadığının farkındayız.

En önemlilerine hızlıca bir göz atalım.

  • TYPE – burada Ethernet türü var. Ayrıca Wi-Fi, ekip, bağ ve diğerlerine de sahip olabiliriz.
  • DEVICE – bu profille ilişkili ağ cihazının adı.
  • BOOTPROTO – eğer “dhcp ” değerine sahipse, bağlantı profilimiz DHCP sunucusundan dinamik bir IP alır. "yok" değerine sahipse dinamik IP kullanmaz ve muhtemelen statik bir IP atarız.
  • IPADDR – profilimize atadığımız statik IP'dir.
  • PREFIX – alt ağ maskesi. 24 değeri 255.255.255.0 anlamına gelir. Alt ağ maskesini ikili biçimini yazarak daha iyi anlayabilirsiniz. Örneğin, 16, 24 ve 26 değerleri ilk 16, 24<'ün olduğu anlamına gelir veya 26 bit sırasıyla 1'e, geri kalanı ise 0'a ayarlanır. Bu, ağ adresini ve atanabilecek IP adresi aralığını tanımlar.
  • GATEWAY – ağ geçidi IP'si.
  • DNS1, DNS2 – kullanmak istediğimiz iki DNS sunucusu.
  • ONBOOT“yes” değerine sahipse, bu, bilgisayarımızın önyükleme sırasında bu profili okuyacağı ve onu cihazına atamaya çalışacağı anlamına gelir.

Linux'ta Ağ Bağlantısını Kontrol Edin

Şimdi devam edelim ve bağlantılarımızı kontrol edelim:

nmcli con show

Son cihaz sütunu, hangi bağlantının "UP" olduğunu ve çalıştığını, hangisinin olmadığını anlamamıza yardımcı olur. Yukarıdaki resimde iki etkin bağlantıyı görebilirsiniz: Myoffice1 ve enp0s8.

İpucu: Yalnızca etkin bağlantıları görmek istiyorsanız şunu yazın:

nmcli con show -a

İpucu: nmcli kullandığınızda Sekme tuşuna basarak otomatik tamamlamayı kullanabilirsiniz, ancak bunu kullanmak daha iyidir komutun minimum formatı.

Dolayısıyla aşağıdaki komutlar eşittir:

nmcli connection show
nmcli con show
nmcli c s

Linux'ta IP Adresini Kontrol Edin

Cihazlarımın ip adreslerini kontrol edersem:

ip a

enp0s3 cihazımın 192.168.1.6 IP'sini dhcp sunucusundan aldığını görüyorum çünkü mevcut Myoffice1 bağlantı profili bir dhcp yapılandırmasına sahip.

static1 adlı bağlantı profilimi “up” getirirsem, cihazım, burada tanımlandığı gibi 192.168.1.40 statik IP'sini alır. bağlantı profili.

nmcli con down Myoffice1 ; nmcli con up static1
nmcli con show

IP adresini tekrar görelim:

ip a

İlk bağlantı profilimizi yapabiliriz. Tanımlamamız gereken minimum özellikler type, ifname ve con-name'dir:

  • type – bağlantı türü için.
  • ifname – bağlantımıza atanan cihaz adı için.
  • con-name – bağlantı adı için.

Linux'ta Yeni Ethernet Bağlantısı Oluşturma

enp0s3 cihazına atanmış Myhome1 adıyla yeni bir ethernet bağlantısı kuralım:

nmcli con add type ethernet con-name Myhome1 ifname enp0s3

Yapılandırmasını kontrol edin:

cat ifcfg-Myhome1

Gördüğünüz gibi herhangi bir statik ip adresi vermediğimiz için BOOTPROTO=dhcp var.

İpucu: “nmcli con mod“ komutuyla herhangi bir bağlantıyı değiştirebiliriz. Ancak, eğer bir dhcp bağlantısını değiştirip statik olarak değiştirirseniz, “ipv4.method ” kısmını “auto ” yerine “manual ” olarak değiştirmeyi unutmayın. . Aksi halde iki IP adresiniz olur: biri dhcp sunucusundan, diğeri statik.

Statik IP 192.168.1.50, alt ağ ile enp0s3 aygıtına atanacak olan static2 adında yeni bir Ethernet bağlantı profili oluşturalım. maske 255.255.255.0=24 ve ağ geçidi 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

Yapılandırmasını kontrol edin:

cat ifcfg-static2

Linux'ta DNS Sunucularını Değiştirme

Son bağlantı profilini değiştirelim ve iki adet dns sunucusu ekleyelim.

nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”

İpucu: Burada dikkat etmeniz gereken bir şey var: IP adresi ve ağ geçidine ilişkin özellikler, bir bağlantıyı eklediğinizde ve değiştirdiğinizde farklı adlara sahip olur. Bağlantı eklediğinizde “ip4 ” ve “gw4 ” kullanırsınız, bunları değiştirirken ise “ipv4 ” ve “ kullanırsınız gwv4 ”.

Linux'ta Ethernet Bağlantısını Kurun

Şimdi bu bağlantı profilini açalım:

nmcli con down static1 ; nmcli con up static2

Gördüğünüz gibi enp0s3 cihazının artık 192.168.1.50 IP adresi var.

ip a

İpucu: Değiştirebileceğiniz birçok özellik vardır. Bunları ezbere hatırlamıyorsanız “nmcli con show ” ve ardından bağlantı adını yazarak kendinize yardımcı olabilirsiniz:

nmcli con show static2

Küçük harflerle yazılan bu özelliklerin tamamını değiştirebilirsiniz.

Örneğin: bir bağlantı profilini kapattığınızda, NetworkManager başka bir bağlantı profili arar ve onu otomatik olarak getirir. (Bunu kontrol etmek için bir egzersiz olarak bırakıyorum). Bağlantı profilinizin otomatik olarak bağlanmasını istemiyorsanız:

nmcli con mod static2 connection.autoconnect no

Son alıştırma çok faydalıdır: bir bağlantı profili oluşturdunuz ancak bunun belirli kullanıcılar tarafından kullanılmasını istiyorsunuz. Kullanıcılarınızı sınıflandırmak iyidir!

Linux'ta Ethernet Bağlantı İzinlerini Kullanıcıya Ayarlayın

Bu profili yalnızca stella kullanıcısının kullanmasına izin veriyoruz:

nmcli con mod static2 connection.permissions stella

İpucu: Birden fazla kullanıcıya izin vermek istiyorsanız aralarında boşluk bırakmadan user:user1,user2 yazmalısınız:

nmcli con mod static2 connection.permissions user:stella,john

Başka bir kullanıcı olarak oturum açarsanız bu bağlantı profilini "açamazsınız":

nmcli con show
nmcli con up static2
ls /etc/sysconfig/network-scripts

Bir hata mesajı, var olduğunu görsek bile 'statik2' bağlantısının mevcut olmadığını söylüyor. Bunun nedeni, mevcut kullanıcının bu bağlantıyı kurma izninin olmamasıdır.

Sonuç: nmcli'yi kullanmaktan çekinmeyin. Kolay ve faydalıdır.