Sunucumun IP Adresini Nasıl Bulurum?
Hosting paneli, SSH ve komut satırından sunucu adresini öğrenme.
Kiraladığınız bir sunucunun, VPS'in ya da barındırma hesabının adresi birkaç yerden öğrenilebiliyor. Ama bu yerlerin verdiği adres her zaman aynı değil. Bu yazı hangi adresin nerede göründüğünü ve hangisinin ne işe yaradığını anlatıyor.
Başkasının sitesinin adresini dışarıdan bulmak farklı bir soru; web sitesinin IP adresini bulma yazımızda anlattık. Burada sunucu sizin.
Üç kaynak
| Kaynak | Nasıl | Ne gösterir |
|---|---|---|
| Sağlayıcının paneli | Sunucu ya da hesap özeti sayfası | Size atanmış genel adres(ler) |
| Sunucunun içi | SSH ile bağlanıp komut | Ağ arayüzündeki adres — özel olabilir |
| Dışarıdan yansıtma | Sunucudan bir adres servisine istek | Giden trafiğin gerçekte çıktığı adres |
Çoğu durumda üçü aynı adresi veriyor. Farklı çıktığı durumlar aşağıda.
1. Panel
VPS ve bulut sağlayıcılarında adres sunucunun özet sayfasında genellikle "IPv4", "Public IP" ya da "Genel IP" satırında duruyor. Paylaşımlı barındırmada hesap bilgileri sayfasında "Paylaşılan IP" ya da "Sunucu IP" adıyla geçiyor. Ekran adları sağlayıcıya göre değişiyor.
Paylaşımlı barındırmada bu adres sizin değil, aynı sunucudaki yüzlerce sitenin ortak adresi. Alan adınızın A kaydına bu adresi yazıyorsunuz; sunucu gelen isteği alan adına bakarak doğru siteye yönlendiriyor.
2. Sunucunun içi
SSH ile bağlandıktan sonra Linux sunucuda:
ip -4 addr show— arayüzlerdeki IPv4 adresleriip -6 addr show— IPv6 adreslerihostname -I— bütün adresler tek satırdaip route get 1.1.1.1— dışarıya giden trafiğin hangi arayüzden ve hangi kaynak adresle çıktığı
Çıktının satır satır okunuşu
Linux IP adresi öğrenme yazımızda var. Windows sunucuda karşılığı ipconfig;
ayrıntısı Windows yazısında.
hostname -I çıktısında 172.17.0.1 gibi
adresler görürseniz bunlar Docker ya da benzeri sanal arayüzlere ait;
sunucunun internetteki adresi değil.
Bulut sunucusunda özel adres
Bazı bulut sağlayıcılarında sunucunun içinden baktığınızda
10.x.x.x ya da 172.16–31.x.x gibi bir adres
görüyorsunuz; paneldeki genel adres arayüzde hiç yok. Bu bir hata
değil.
Sağlayıcı genel adresi kendi ağının kenarında tutuyor ve sunucunuza gelen trafiği NAT ile içerideki özel adrese çeviriyor. Sunucu kendi genel adresini bilmiyor. Bu adres aralıklarının neden internette yönlendirilmediğini özel IP aralıkları yazımızda anlattık.
Sonucu şu: sunucudaki bir yazılım "hangi adrese bağlanayım" diye
sorarsa genel adresi değil, arayüzdeki özel adresi ya da
0.0.0.0'ı dinlemesi gerekiyor. Genel adresi yazarsanız
servis başlamıyor çünkü o adres sunucuda yok.
3. Dışarıdan yansıtma: giden adres
Sunucudan bir adres servisine istek atıp cevabı okumak, trafiğin internete hangi adresle çıktığını gösteriyor:
curl -4 ifconfig.me— IPv4 çıkış adresicurl -6 ifconfig.me— IPv6 çıkış adresi
Bu adres gelen adresle çoğunlukla aynı, ama şu durumlarda farklı:
- Sunucu özel ağda ve dışarıya ayrı bir NAT geçidinden çıkıyor
- Sunucuya birden fazla genel adres atanmış; giden trafik varsayılan olanı kullanıyor
- Giden trafik bir proxy ya da tünel üzerinden gidiyor
Hangi adres nerede kullanılır?
| İş | Kullanılacak adres |
|---|---|
| Alan adının A / AAAA kaydı | Gelen genel adres (panel) |
| SSH ile bağlanmak | Gelen genel adres |
| Bir API'nin izin listesine yazmak | Giden adres (yansıtma) |
| Veritabanı sunucusunda erişim izni | Giden adres; aynı ağdaysa özel adres |
| Sunucudaki servisin dinleyeceği adres | Arayüzdeki adres ya da tümü |
Üçüncü satır sık yapılan bir hatayı gösteriyor: izin listesine panelde gördüğünüz adresi yazıp isteklerin reddedildiğini görmek. Karşı taraf isteğin geldiği adrese bakıyor; giden adres farklıysa izin tutmuyor.
DNS kaydıyla karşılaştırma
Alan adınız doğru sunucuyu gösteriyor mu? DNS sorgulama aracında A kaydına bakın ve paneldeki adresle karşılaştırın.
- Aynı: kayıt doğru.
- Farklı ve adres bir CDN'e ait: site bir ara katmanın arkasında; bu da doğru olabilir. Adresin sahibini IP adresi kime ait yazısındaki yolla bulun.
- Farklı ve eski sunucunun adresi: taşıma sonrası kayıt güncellenmemiş ya da yayılma süresi henüz dolmamış.
Sıkça sorulan sorular
Sunucumun IP adresini nasıl bulurum?
En kolay yol sağlayıcının panelindeki sunucu özeti. Sunucuya SSH ile bağlıysanız ip -4 addr show komutu arayüzdeki adresi, bir adres servisine curl ile istek atmak da dışarıya çıkan adresi gösterir.
Sunucuda gördüğüm adres paneldekinden neden farklı?
Bazı bulut sağlayıcıları genel adresi kendi ağının kenarında tutuyor ve trafiği NAT ile sunucudaki özel adrese çeviriyor. Sunucunun içinden bakınca yalnızca özel adres görünüyor; bu normal.
API izin listesine hangi adresi yazmalıyım?
Sunucunun dışarıya çıktığı adresi. Bunu sunucudan bir adres servisine istek atarak öğrenin; NAT geçidi ya da birden fazla adres varsa paneldeki adresten farklı olabilir.
Paylaşımlı barındırmada IP adresi bana mı ait?
Hayır. Paylaşımlı barındırmadaki adres aynı sunucudaki çok sayıda sitenin ortak adresi. Sunucu gelen isteği alan adına bakarak doğru siteye gönderiyor.
hostname -I çıktısında birden fazla adres var, hangisi doğru?
172.17.0.1 gibi adresler Docker ve sanal arayüzlere ait. Hangi adresin kullanıldığını görmek için ip route get 1.1.1.1 komutunun çıktısındaki src değerine bakın.