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.