Ağ Arayüzlerini Yapılandırmak için 24 Faydalı "IP" Komutu
Kısa: Bu kılavuzda ip komutunun bazı pratik örneklerini tartışacağız. Bu kılavuzun sonunda kullanıcılar, Linux'ta ağ oluşturma görevlerini komut satırı arayüzünden verimli bir şekilde gerçekleştirebilecekler.
Sistem yöneticilerinin genellikle Linux sunucularında ağ oluşturma görevlerini gerçekleştirmesi gerekir. Piyasada çeşitli grafik ve komut satırı araçları bulunmaktadır. Ancak çoğu Linux kullanıcısı, basitliği ve zengin işlevselliği nedeniyle ip komutunu kullanmayı tercih ediyor.
ip komutu, bir ağ arayüzüne IP adresi atamak veya bir Linux sistemindeki yararlı ağ değişkenlerini yapılandırmak/güncellemek için kullanılan yeni bir ağ komut satırı yardımcı programıdır.
iproute2 paketinin bir parçasıdır ve ağ arayüzlerini açmak veya kapatmak, IP adreslerini ve rotalarını atamak ve kaldırmak, ARP önbelleğini yönetmek ve çok daha fazlası gibi çeşitli ağ yönetimi görevleri sunar.
ip komutu eski ifconfig komutuna çok benzer, ancak kendisine eklenen daha fazla işlev ve özellik sayesinde çok daha güçlüdür.
Tüm modern Linux dağıtımlarında ifconfig komutu kullanımdan kaldırılmış ve yerini ip komutu almıştır. Ancak ifconfig komutu hâlâ çalışıyor ve çoğu Linux dağıtımında kullanılabilir.
Not: Lütfen herhangi bir değişiklik yapmadan önce yapılandırma dosyasının yedeğini alın.
1. Linux'ta Statik IP Adresini Kalıcı Olarak Yapılandırma
Linux'ta statik bir IP adresini kalıcı olarak yapılandırmak için, sisteme statik bir IP adresi atamak amacıyla ağ yapılandırma dosyasını güncellemeniz veya düzenlemeniz gerekir. Terminalden veya komut isteminden su (kullanıcıyı değiştir) komutuna sahip bir süper kullanıcı olmanız gerekir.
RHEL Sistemlerinde Statik IP Adresini Ayarlama
Favori metin düzenleyicinizi kullanarak (eth0 veya eth1) için ağ yapılandırma dosyalarını açın ve düzenleyin. Örneğin RHEL tabanlı dağıtımlarda aşağıdaki gibi eth0 arayüzüne IP Adresi atamak.
vi /etc/sysconfig/network-scripts/ifcfg-eth0 [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
Debian Sistemlerinde Statik IP Adresi Ayarlama
Kalıcı statik IP adresini yapılandırmak için, Debian tabanlı dağıtımlar için aşağıda gösterildiği gibi kalıcı değişiklikler yapmak üzere ağ arayüzü yapılandırma dosyanızı /etc/network/interfaces değiştirmeniz gerekir.
sudo nano /etc/network/interfaces [On Debian, Ubuntu and Mint]
Daha sonra aşağıdaki komutu kullanarak tüm detayları girdikten sonra ağ servislerini yeniden başlatın.
sudo systemctl restart networking
2. Linux'ta Statik IP Adresini Geçici Olarak Yapılandırma
Geçici ağ yapılandırmalarında, belirli bir arayüze (eth2) anında bir IP adresi atamak için ip komutunu kullanabilirsiniz.
ip addr add 172.19.1.10/24 dev eth2
OR
sudo ip addr add 172.19.1.10/24 dev eth2
Not: Maalesef sistem yeniden başlatıldığında tüm bu ayarlar kaybolacaktır.
3. Tüm Ağ Arayüzleri Nasıl Görüntülenir?
ip komutunda bağlantı nesnesi ağ arayüzünü temsil eder. Tüm ağ arayüzlerini görüntülemek için show komutunu kullanabiliriz.
Şimdi aşağıdaki komutu kullanarak tüm ağ arayüzlerini görüntüleyelim:
ip link show
Yukarıdaki çıktı, arayüz adı, bayraklar, durum, bağlantı adresi, yayın adresi vb. gibi tüm ağ arayüzlerinin ayrıntılarını gösterir.
4. Belirli Bir Ağ Arayüzünün IP Adresi Nasıl Kontrol Edilir
Bireysel ağ arayüzünüzün IP Adresi gibi derinlik bilgilerini ve MAC Adresi bilgilerini almak için aşağıda gösterildiği gibi aşağıdaki komutu kullanın.
ip link show eth2
Şu ana kadar ağ arayüzleri hakkında detaylı bilgi gösteren link nesnesini kullandık. Ancak ağ arayüzüyle ilişkili IP adresini göstermez. Bu sınırlamayı aşmak için ip komutuyla birlikte addr
nesnesini kullanabiliriz.
Bunu bir örnekle anlayalım.
ip addr show
Burada, çıktının diğer ayrıntılarla birlikte tüm ağ arayüzlerinin IP adreslerini gösterdiğini görebiliriz.
Bireysel ağ arayüzünün IP adresini görüntülemek için, komuta argüman olarak ağ arayüzü adını vermeniz yeterlidir.
ip addr show eth2
5. Renkli Çıktıda IP Adresi Nasıl Görüntülenir?
ip komutu ağ nesneleri hakkında ayrıntılı bilgi gösterir. Ancak bazen sınırlı bilgilere de göz atmamız gerekiyor. Bu gibi durumlarda renkli çıktıyı etkinleştirebiliriz. Bu seçenek önemli ayrıntıları farklı renklerde vurgular.
Çıktıyı farklı renklerde görüntülemek için komutun --color
seçeneğini kullanalım:
ip --color addr show eth2
Yukarıdaki çıktıda arayüz adının, ethernet adresinin ve durumunun farklı renklerle vurgulandığını görebiliriz.
6. IP Adresi JSON Formatında Nasıl Görüntülenir?
Önceki örneklerde ip komutunun anlamlı bilgiler gösterdiğini gördük. Ancak ham çıktıyı ayrıştırmak ve basit komut dosyalarını kullanarak anlamlı bilgiler çıkarmak kolay bir iş değildir. Bu gibi durumlarda, ip komutuna çıktıyı JSON biçiminde oluşturması talimatını verebiliriz.
Öyleyse, aynı çıktıyı JSON formatında görüntülemek için komutla birlikte -j
seçeneğini kullanalım:
ip -j link show eth2
Bu yöntem otomasyon yaparken kullanışlıdır çünkü JSON yaygın olarak kabul edilen bir formattır ve çeşitli programlama dillerinde çok sayıda JSON ayrıştırıcı kitaplığı/aracı mevcuttur.
7. JSON Çıktısını Daha Okunabilir Hale Getirme
Önceki örnekte çıktıyı JSON biçiminde görüntülemek için -j
seçeneğini kullandık. Bu varsayılan JSON biçimi kompakttır ve yerden tasarruf sağlar. Ancak girinti eksikliği nedeniyle çıktının okunması kolay değildir.
Bu sınırlamayı aşmak için çıktıyı girintileyerek daha okunaklı hale getiren -p
seçeneğini kullanabiliriz. Bunu aşağıdaki örnekle anlayalım:
ip -j -p link show eth2
Burada aynı çıktının önceki örneklere göre çok daha okunabilir olduğunu görüyoruz.
8. Ağ Arayüzünden IP Adresi Nasıl Kaldırılır
Önceki örnekte IP adresi atamak için add alt komutunu kullandık. Benzer şekilde, belirli bir IP adresini kaldırmak için del alt komutunu kullanabiliriz.
Aşağıdaki komut, atanmış bir IP adresini verilen arayüzden (eth2) kaldıracaktır.
ip addr del 172.19.1.10/24 dev eth2
OR
sudo ip addr del 172.19.1.10/24 dev eth2
Şimdi IP adresinin kaldırıldığını doğrulayalım:
ip -j -p addr show eth2
Yukarıdaki çıktıda artık eth2 ağ arayüzünün yalnızca bir IP adresine sahip olduğunu görebiliriz.
9. Ağ Arayüzünü Etkinleştirme
Arayüz adını (eth2) içeren “up” bayrağı bir ağ arayüzünü etkinleştirir. Örneğin aşağıdaki komut eth2 ağ arayüzünü etkinleştirecektir.
ip link set eth2 up
OR
sudo ip link set dev eth2 up
Şimdi güncellenmiş durumu kontrol edelim:
ip -j -p link show eth2 | grep operstate
10. Ağ Arayüzünü Devre Dışı Bırakma
Arayüz adını (eth2) içeren “aşağı” işareti bir ağ arayüzünü devre dışı bırakır. Örneğin, aşağıdaki komut eth2 ağ arayüzünü devre dışı bırakır.
ip link set eth2 down
OR
sudo ip link set eth2 down
Şimdi eth2 ağ arayüzünün durumunu kontrol edelim:
ip -j -p link show eth2 | grep operstate
Yukarıdaki çıktı ağ arayüzünün değiştirilmiş durumunu gösterir.
11. Ağ Arayüzünün IP Adresleri Nasıl Temizlenir
Önceki örnekte, bir IP adresini kaldırmak için del alt komutunun nasıl kullanılacağını gördük. Ancak bazen belirli bir ağ arayüzünün tüm IP adreslerini kaldırmamız gerekir. Bu gibi durumlarda flush alt komutunu kullanabiliriz.
İlk olarak, eth2 ağ arayüzünün tüm IP adreslerini kaldırmak için temizle alt komutunu kullanın:
sudo ip addr flush eth2
Şimdi eth2 ağ arayüzünün tüm IP adreslerinin kaldırıldığını kontrol edelim:
ip -j -p addr show eth2
Yukarıdaki çıktıda addr_info alanı boş JSON dizisini gösterir. Bu, eth2 ağ arayüzüyle ilişkili herhangi bir IP adresi olmadığını gösterir.
12. Yönlendirme Tablosunu Nasıl Kontrol Edebilirim
Yönlendirme tablosu, bir ağ paketini doğru hedefe iletmek için gerekli bilgileri saklar. Yönlendirme kurallarını görüntülemek için ip komutunun route nesnesini kullanabiliriz.
Yönlendirme tablosunun tüm kurallarını listelemek için aşağıdaki komutu kullanalım:
ip route show
Yukarıdaki çıktıda, ilk sütun hedefi, son sütun ise kaynak IP adresini temsil eder.
13. Yeni Statik Rotayı Nasıl Eklerim?
Trafiğin varsayılan ağ geçidinden geçmemesi gerektiğinden neden statik yollar veya manuel yollar eklemeniz gerekiyor? Trafiği hedefe ulaşmak için en iyi yoldan geçirmek için statik rotalar eklememiz gerekiyor.
sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2
Şimdi girişin başarıyla eklendiğini doğrulayalım:
ip route show
15. Statik Rota Nasıl Kaldırılır
del alt komutu belirli bir girişi yönlendirme tablosundan kaldırır. Örneğin, aşağıdaki komut eth2 cihaz rotasının girişini kaldırır:
sudo ip route del 172.19.1.0/24
Şimdi girişin başarıyla kaldırıldığını doğrulayalım:
ip route show
16. Kalıcı Statik Rotaları Nasıl Eklerim
Sistemin yeniden başlatılmasından sonra yukarıdaki rotaların tümü kaybolacaktır. Kalıcı bir statik rota eklemek için /etc/sysconfig/network-scripts/route-eth2 dosyasını düzenleyin ((eth2) için statik rotayı saklıyoruz. Varsayılan olarak, route-eth2 dosyası orada olmayacak ve oluşturulması gerekecek.
RHEL Sistemlerinde Kalıcı Rota Belirleyin
vi /etc/sysconfig/network-scripts/route-eth2
ve aşağıdaki satırları ekleyip kaydedip çıkıyoruz.
172.19.1.0/24 via 172.19.1.2 dev eth2
Debian Sistemlerinde Kalıcı Rota Belirleyin
/etc/network/interfaces dosyasını açın ve sonuna kalıcılık statik rotalarını ekleyin. IP Adresleri ortamınızda farklılık gösterebilir.
sudo vi /etc/network/interfaces
auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2
Daha sonra aşağıdaki komutu kullanarak tüm detayları girdikten sonra ağ servislerini yeniden başlatın.
sudo systemctl restart networking
17. Varsayılan Ağ Geçidini Nasıl Eklerim
Ağ oluşturmada varsayılan ağ geçidi önemli bir rol oynar. Yönlendirme tablosunun hedef hakkında herhangi bir bilgi içermediği durumlarda kullanılır.
Varsayılan ağ geçidi genel olarak veya arayüze özel yapılandırma dosyaları için belirtilebilir. Varsayılan ağ geçidinin avantajı, sistemde birden fazla NIC'nin bulunmasıdır. Komutun altında gösterildiği gibi varsayılan ağ geçidini anında ekleyebilirsiniz.
Öncelikle varsayılan ağ geçidi olarak bir eth0 ağ arayüzü ekleyelim:
sudo ip route add default via 172.17.0.1
Şimdi aşağıdaki komutu kullanarak varsayılan ağ geçidi ayarını doğrulayalım:
ip route show
Lütfen bu komutu bir test makinesinde çalıştırdığımızı unutmayın. Bu komutu üretim ortamında kullanırken dikkatli olun.
18. Varsayılan Ağ Geçidini Kaldırma
Varsayılan ağ geçidini kaldırmak için aşağıdaki komutu kullanabiliriz:
sudo ip route del default
Şimdi varsayılan ağ geçidinin kaldırıldığını doğrulamak için yönlendirme tablosunu listeleyelim:
ip route show
19. ARP Önbelleği Nasıl Görüntülenir
ARP, belirli bir IP adresiyle ilişkili MAC adresini bulmak için kullanılan Adres Çözümleme Protokolü anlamına gelir.
ARP önbelleğini görüntülemek için neigh nesnesini ip komutuyla birlikte kullanabiliriz:
ip neigh show
Yukarıdaki komutta kişne komşu nesneleri temsil eder.
20. ARP Girişi Nasıl Eklenir?
Yeni bir ARP girişi oluşturmak için neigh nesnesiyle birlikte ekle alt komutunu kullanabiliriz.
sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2
Şimdi ARP önbellek girişlerini listeleyelim:
ip neigh show
Yukarıdaki çıktıda eth2 ağ arayüzü için yeni girişi görebiliriz.
21. ARP Girişi Nasıl Kaldırılır
Diğer ağ nesneleri gibi ARP girişini kaldırmak için del alt komutunu kullanabiliriz. Örneğin, aşağıdaki komut eth2 ağ arayüzünün ARP girişini kaldırır:
sudo ip neigh del 172.19.1.0 dev eth2
Şimdi ARP önbelleğini listeleyerek girişin kaldırıldığını doğrulayalım:
ip neigh show
22. ARP Girişleri Nasıl Temizlenir
Birden fazla ARP girişini kaldırmak için temizleme alt komutunu kullanabiliriz. Bunu anlamak için öncelikle STALE durumuna sahip birkaç ARP girişi ekleyin:
sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale
Ardından, yeni girişlerin başarıyla eklendiğini doğrulayın:
ip neigh show
Ardından aşağıdaki komutu kullanarak tüm girişleri temizleyin:
sudo ip neigh flush all
Son olarak tüm girişlerin kaldırıldığını doğrulayın:
ip neigh show
23. Ağ Arayüzü için MTU Nasıl Ayarlanır
MTU, tek bir işlemde aktarılabilecek en büyük paket boyutunu temsil eden Maksimum İletim Birimi anlamına gelir. MTU boyutunu performans gereksinimlerimize göre değiştirebiliriz.
Öncelikle eth2 ağ arayüzünün MTU'sunu bulalım:
ip -j -p link show eth2 | grep mtu
Daha sonra, eth2 ağ arayüzünün MTU boyutunu 3000 olarak güncelleyin:
sudo ip link set mtu 3000 dev eth2
Son olarak MTU'nun başarıyla güncellendiğini doğrulayın:
ip -j -p link show eth2 | grep mtu
24. Ağ Mac Adresi Nasıl Değiştirilir
ip komutu ağ arayüzünün MAC adresini değiştirmemize olanak tanır. Bunu başarmak için set alt komutunu link nesnesiyle birlikte kullanabiliriz:
Öncelikle eth2 ağ arayüzünün mevcut MAC adresini listeleyin:
ip -j -p link show eth2 | grep address
Daha sonra aşağıdaki komutu kullanarak ağ arayüzünün MAC adresini değiştirin:
sudo ip link set dev eth2 address 02:42:ac:13:01:03
Son olarak MAC adresinin değiştirildiğini doğrulayın:
ip -j -p link show eth2 | grep address
IP Komutu hakkında daha fazla bilgi edinmek için lütfen terminal/komut isteminden man ip yapma kılavuzu sayfasına bakın.
man ip
Çözüm
Bu makalede ip komutunun bazı yaygın örneklerini tartıştık. Bu örnekler günlük yaşamda ağ yönetimini gerçekleştirmek için kullanılabilir.
Linux'ta ip komutunun en iyi başka örneğini biliyor musunuz? Aşağıdaki yorumlarda görüşlerinizi bize bildirin.