İçeriğe geç
ipkontrol.net

IP Temelleri

Linux’ta IP Adresi Nasıl Öğrenilir? (ip a)

ip a, hostname -I ve curl ile genel adres; eski ifconfig karşılığı.

Linux'ta IP adresini öğrenmenin kısa yolu terminalde ip a yazmak. Daha kısa ve okunaklı bir özet için ip -br a: her arayüz tek satırda, adıyla, durumuyla ve adresiyle. Yalnızca adresleri isterseniz hostname -I.

Bütün platformların kısa yolları IP adresi nasıl bulunur yazısında. Bu yazı Linux'a özgü: çıktıyı satır satır okumak, birden fazla arayüz varken hangi adresin gerçekten kullanıldığını bulmak ve eski komutların yeni karşılıkları.

Tek bakışta özet: ip -br a

-br (brief) seçeneği çıktıyı üç sütuna indirir: arayüz, durum, adresler. Birkaç arayüzü olan bir sunucuda ya da dizüstünde ilk komut bu olmalı. Durum sütunu:

DurumAnlamı
UPArayüz açık ve bağlantı var
DOWNArayüz kapalı ya da kablo takılı değil
UNKNOWNDurum bildirmeyen arayüz; lo ve bazı tüneller için normal
DORMANTAçık ama kimlik doğrulama bekliyor; Wi-Fi'da şifre aşamasında görülür

ip a çıktısını okumak

Tam çıktı her arayüz için bir blok verir. Bir Wi-Fi arayüzünün tipik satırları ve anlamları:

Satır parçasıAnlamı
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP>Arayüz adı ve bayraklar; LOWER_UP fiziksel bağlantının olduğunu söyler
link/ether 3c:…MAC adresi
inet 192.168.1.40/24IPv4 adresi ve önek uzunluğu; /24 = 255.255.255.0
brd 192.168.1.255Yayın adresi
scope global dynamicGenel kapsamlı, adresi DHCP'den almış
valid_lft 85912secDHCP kirasının kalan süresi
inet6 fe80::…/64 scope linkYalnızca yerel ağda geçerli IPv6 adresi
inet6 2a02:…/64 scope global temporaryGenel IPv6 adresi; "temporary" olan gizlilik için değişir

dynamic yazmıyorsa adres elle ya da yapılandırma dosyasıyla verilmiştir. Önek uzunluğunun hangi maskeye denk geldiğini subnet hesaplama aracı gösterir; kavram için subnet mask nedir.

Hangi adres gerçekten kullanılıyor?

Kablo, Wi-Fi, VPN ve Docker aynı makinede açıkken birkaç adres görürsünüz. Trafiğin hangisinden çıktığını tahmin etmek yerine çekirdeğe sorun:

ip route get 1.1.1.1

Çıktı 1.1.1.1 via 192.168.1.1 dev wlp2s0 src 192.168.1.40 gibi bir satır verir. via ağ geçidi, dev kullanılan arayüz, src o bağlantıda kullanılacak kaynak adres. VPN açıkken aynı komut tünel arayüzünü gösteriyorsa trafik tünelden gidiyor; göstermiyorsa bölünmüş tünel ya da yönlendirme hatası var.

Tüm yönlendirme tablosu için ip r; default via ile başlayan satır varsayılan ağ geçididir. Ağ geçidinin ne işe yaradığını gateway nedir yazısında anlattık.

hostname -I neden fazla adres veriyor?

hostname -I makinedeki bütün adresleri, arayüz adı olmadan, tek satırda yazar. Docker kuruluysa 172.17.0.1, sanal makine yazılımı varsa 192.168.122.1 gibi adresler de listede çıkar. Bunlar makinenin kendi içindeki sanal ağlar; ev ağındaki adresiniz değil. Betik yazarken ilk adresi körlemesine almak bu yüzden hatalı sonuç verir; ip route get daha güvenilir.

Arayüz adları

AdNe olduğu
loKendi kendine bağlantı, 127.0.0.1
eth0Eski adlandırma ya da sanal sunucu Ethernet'i
enp3s0, eno1Ethernet; ad kartın takılı olduğu yuvadan türetilir
wlp2s0, wlan0Wi-Fi
docker0, br-…Docker köprü ağları
virbr0Sanal makine ağı
tun0, wg0VPN tünelleri (OpenVPN, WireGuard)

Eski komutların karşılıkları

ifconfig, route ve netstat net-tools paketinden gelir ve birçok yeni dağıtımda varsayılan olarak kurulu değildir. Yerlerini ip ve ss aldı:

EskiYeni
ifconfigip a
route -nip r
arp -aip neigh
netstat -tulpnss -tulpn
ifconfig eth0 upip link set eth0 up

Masaüstü dağıtımlarda NetworkManager varsa nmcli device show adres, ağ geçidi ve DNS'i bir arada verir. DNS sunucularını görmek için systemd kullanan sistemlerde resolvectl status.

Genel adres

Ev ağındaki bir Linux makinenin gördüğünüz adresleri yerel adreslerdir; internetin sizi gördüğü genel adres modemde durur. Farkı genel IP ve yerel IP farkı yazısında. Terminalden genel adres için curl -4 ifconfig.me (IPv6 için -6); konum ve operatörle birlikte görmek için sorgulama aracımız. Bulut sunucularında ise çoğu zaman genel adres doğrudan arayüzde görünür, çünkü arada modem yoktur.

Sıkça sorulan sorular

Linux’ta IP adresi nasıl öğrenilir?

Terminalde ip a komutu tüm arayüzlerin adreslerini gösterir. Kısa bir özet için ip -br a, yalnızca adresler için hostname -I kullanılabilir.

Birden fazla adres var, hangisi kullanılıyor?

ip route get 1.1.1.1 komutu trafiğin hangi arayüzden ve hangi kaynak adresle çıktığını gösterir. Tahmin etmek yerine bu komuta bakın.

ifconfig komutu bulunamadı diyor.

ifconfig net-tools paketindedir ve yeni dağıtımlarda varsayılan kurulu değildir. Aynı işi ip a komutu yapar.

hostname -I çıktısındaki 172.17.0.1 nedir?

Docker’ın oluşturduğu sanal köprü ağının adresidir. Ev ağındaki adresiniz değildir.

ip a çıktısındaki valid_lft ne demek?

Adresin geçerlilik süresidir. DHCP ile alınan adreslerde kiranın kalan süresini saniye olarak gösterir; forever yazıyorsa adres elle verilmiştir.