ip

ip komutu, modern Linux sistemlerinde ağ yapılandırmasını yönetmek için kullanılan temel araçtır. iproute2 paketinin bir parçasıdır ve ifconfig, route, arp, netstat -r gibi eski net-tools paketindeki komutların yerini almıştır. ip komutu daha tutarlı bir sözdizimine sahiptir ve IPv6, policy routing, network namespaces gibi modern ağ özelliklerini daha iyi destekler.

ip komutu, yönetilecek nesneye (object) göre alt komutlar alır. En sık kullanılan nesneler şunlardır:

  • link: Ağ arayüzlerini (fiziksel veya sanal) yönetir.

  • address (veya addr): Arayüzlere atanan IP adreslerini (IPv4/IPv6) yönetir.

  • route: Yönlendirme tablosunu yönetir.

  • neighbour (veya neigh): ARP (IPv4) ve NDP (IPv6) komşu tablolarını yönetir.

  • rule: Policy routing kurallarını yönetir.

  • tunnel: IP tünellerini yönetir.

  • tuntap: TUN/TAP sanal arayüzlerini yönetir.

  • netns: Ağ isim alanlarını (network namespaces) yönetir.

Temel Kullanım Örnekleri

Arayüzleri Listeleme (ip link)

Sistemdeki tüm ağ arayüzlerini ve durumlarını listeler:

ip link show
# veya kısaca:
ip link

Renkli çıktı için -c seçeneği eklenebilir: ip -c link show.

IP Adreslerini Gösterme (ip addr)

Tüm arayüzlere atanmış IP adreslerini (IPv4 ve IPv6) gösterir:

ip addr show
# veya kısaca:
ip addr
# veya sadece belirli bir arayüz için:
ip addr show eth0 

Sistem üzerindeki NIC cihazlarının IP adreslerini öğrenmek için:

ip addr show

Örnek Çıktı:

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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic enp0s3
       valid_lft 86300sec preferred_lft 86300sec
    inet6 fe80::a00:27ff:fe12:3456/64 scope link 
       valid_lft forever preferred_lft forever

IP Adresi Ekleme/Silme (ip addr add/del)

Bir arayüze geçici olarak IP adresi eklemek veya silmek için kullanılır (kalıcı ayarlar için NetworkManager, systemd-networkd veya /etc/network/interfaces gibi araçlar kullanılmalıdır). IP adresi CIDR notasyonu ile (örn. /24) belirtilmelidir.

# enp0s3 cihazına 192.168.1.150/24 IP'sini ekle
sudo ip addr add 192.168.1.150/24 dev enp0s3

# Aynı IP'yi sil
sudo ip addr del 192.168.1.150/24 dev enp0s3

Bir arayüzdeki tüm IP adreslerini temizlemek için flush kullanılabilir: sudo ip addr flush dev enp0s3.

Arayüzü Açma/Kapatma (ip link set up/down)

Bir ağ arayüzünü etkinleştirmek veya devre dışı bırakmak için:

sudo ip link set enp0s3 up
sudo ip link set enp0s3 down

Yönlendirme Tablosunu Gösterme/Yönetme (ip route)

Çekirdeğin IP yönlendirme tablosunu göstermek için:

ip route show
# veya kısaca:
ip route

Örnek Çıktı:

default via 192.168.1.1 dev enp0s3 proto dhcp metric 100 
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.100 metric 100 

Geçici olarak yönlendirme kuralı eklemek veya silmek için (kalıcı ayarlar için ağ yönetim aracı kullanılmalıdır):

# 10.0.0.0/8 ağına 192.168.1.254 ağ geçidi üzerinden git
sudo ip route add 10.0.0.0/8 via 192.168.1.254

# Belirli bir route'u sil
sudo ip route del 10.0.0.0/8

# Varsayılan ağ geçidini (default route) ekle/değiştir
sudo ip route add default via 192.168.1.1 dev enp0s3 
# veya (mevcutu değiştirmek için):
# sudo ip route replace default via 192.168.1.1 dev enp0s3

Komşu Tablosunu Gösterme (ip neigh)

ARP (IPv4) veya NDP (IPv6) tablosunu (IP-MAC adresi eşleşmeleri) göstermek için:

ip neigh show
# veya kısaca:
ip neigh

ip komutu, iproute2 paketinin sunduğu birçok alt komut ve seçenekle ağ yönetiminin hemen her yönünü kontrol etme imkanı sunar. Daha fazla bilgi için man ip veya ip <nesne> help (örn. ip route help) komutlarına bakılabilir.

Last updated