Linux’ta Çalışan Bir Uygulamanın Dinlediği Portları Tespit Etme

linux port find netstat

IP adresleri, bir ağdaki cihazları benzersiz olarak tanımlar. Portlar ise bir cihaz üzerindeki hizmetleri birbirinden ayırır. TCP ve IP protokolleri aracılığıyla iletişim ve veri alışverişine olanak sağlayarak internetin düzgün çalışmasında önemli bir rol oynarlar. Bu rehberde, Apache HTTP sunucusunun hangi IP adresi ve portta çalıştığını bulmak için kullanabileceğimiz komutlardan bahsedeceğiz.

1. lsof Komutunu Kullanma

lsof komutu, bir Linux sisteminde açık dosyalar, işlemler ve ağ bağlantıları arasındaki ilişkiyi gösterir. Bu, özellikle sorun giderme aşamalarında yardımcı olur ve kaynak kullanımını belirler. Özellikle dosya tanımlayıcıları ve ağ soketleri hakkında ayrıntılı bilgi sunar.

Komutun Kullanımı:

$ sudo lsof -i -P -n | grep apache2

Eğer CentOS gibi bazı dağıtımlarda çalışıyorsanız, apache2 yerine httpd kullanmanız gerekebilir:

$ lsof -i -P -n | grep httpd

Bu komut, açık ağ bağlantılarını listeler ve sonuçları yalnızca Apache ile ilgili olanları gösterecek şekilde grep ile filtreler. Örneğin:

apache2   1687     root    4u  IPv6  25609      0t0  TCP *:80 (LISTEN)

Çıktıda yer alan *:80, Apache’nin 80 numaralı port üzerinden tüm ağ arayüzlerinden gelen bağlantılara açık olduğunu gösterir. Buradaki *:80 ifadesi, Apache’nin yalnızca localhost ile sınırlı olmadığını, tüm mevcut ağ arayüzlerinden erişilebilir olduğunu belirtir.

Komutun Parametreleri:

  • -i: Ağ bağlantılarına ait bilgileri gösterir.
  • -P: Port numaralarının isimlere çevrilmesini engeller.
  • -n: Ağ numaralarının hostname (makine adı) çözümlemesini yapmaz.

Bu parametrelerle, komut hızlı ve doğrudan IP adresi ve port bilgilerini gösterir.

2. netstat Komutunu Kullanma

netstat komutu, Linux işletim sisteminde ağ bağlantıları, yönlendirme tabloları ve arayüz istatistikleri hakkında bilgi sağlar. netstat ile Apache’nin hangi IP adresi ve portu kullandığını öğrenebiliriz.

Aktif Bağlantıları İncelemek İçin:

$ sudo netstat -tlp

Bu komut, yalnızca dinleme durumundaki TCP bağlantılarını listeler. Çıktı şu şekildedir:

tcp6       0      0 [::]:http               [::]:*                  LISTEN      1662/apache2

Burada Apache, hem IPv4 hem de IPv6 arayüzlerinde, HTTP portu üzerinden gelen bağlantılara açıktır. 0.0.0.0 ve [::] adresleri, sunucunun herhangi bir ağ arayüzünden gelen bağlantıları kabul edecek şekilde yapılandırıldığını gösterir.

grep ile Apache’ye Özel Filtreleme:

Belirli bir servis için çıktıyı filtrelemek için grep komutunu kullanabiliriz:

$ sudo netstat -tlp | grep apache2

Bu komutla Apache’nin yalnızca aktif IPv6 bağlantılarını görebiliriz. Çıktıdaki [::]:http ifadesi, Apache’nin tüm IPv6 arayüzlerinde 80 numaralı portu dinlediğini belirtir.

3. ss Komutunu Kullanma

ss, ağ soketleri hakkında bilgi sağlayan bir komuttur. ss, modern Linux sistemlerinde netstat’ın yerine kullanılan daha güncel bir araçtır.

Komut Kullanımı:

$ sudo ss -tlwnp | grep LISTEN

Bu komut, dinleme ve ham TCP soketleri hakkında ayrıntılı bilgi sunar. Çıktı şu şekildedir:

tcp LISTEN 0 511 :80 *: users:(("apache2",pid=10724,fd=4), ...)

Bu çıktıda *:80 ifadesi, Apache’nin tüm arayüzlerde port 80 üzerinden dinleme yaptığını gösterir. Apache’nin çoklu işlem veya çoklu iş parçacıklı modeli kullanarak gelen bağlantılarla başa çıktığını görebiliriz.

Parametrelerin Açıklaması:

  • -t: TCP soketlerini gösterir.
  • -l: Sadece dinleme modundaki soketleri listeler.
  • -w: Ham soketleri gösterir.
  • -n: Host adlarını çözümlemez, adresleri sayısal olarak gösterir.
  • -p: Her soketle ilişkilendirilmiş işlem kimliklerini gösterir.

4. nmap Komutunu Kullanma

nmap, ağ keşfi ve güvenlik taramaları için güçlü bir açık kaynak aracıdır. Eğer sisteminizde nmap yüklü değilse, aşağıdaki komut ile kurabilirsiniz:

$ sudo apt install nmap

Apache’nin IP ve Port Bilgilerini Görmek İçin:

$ sudo nmap -p 80 localhost

Çıktı şu şekildedir:

PORT     STATE SERVICE
80/tcp   open  http

Buradaki açık 80 numaralı port, bir web sunucusunun çalıştığını gösterir.

5. apachectl Komutu Kullanma

apachectl, Apache’nin sanal ana bilgisayar yapılandırmasını gösterir. Bu komut ile Apache’nin hangi IP adreslerinde ve portlarda dinlediğini görebiliriz.

Kullanımı:

$ apachectl -S

Çıktı, Apache’nin tüm IP adresleri üzerinden, özellikle 127.0.1.1 üzerinde port 80’de dinleme yaptığını gösterir.

6. httpd.conf Dosyasını İnceleme

Apache HTTP Sunucusu’nun ana yapılandırma dosyası olan httpd.conf dosyasında, sunucunun davranışını özelleştirebilir ve sanal ana bilgisayarları yönetebilirsiniz. Apache’nin hangi IP adresi ve portu dinlediğini görmek için bu dosyayı inceleyebilirsiniz.


Bu komutlarla, Apache’nin ağ üzerindeki erişilebilirlik bilgilerini kolayca görebilirsiniz. Sunucu yöneticileri için bu bilgileri öğrenmek, özellikle sorun giderme ve güvenlik incelemelerinde oldukça faydalıdır.

Önceki Konu

Linux’ta GRUB Menüsüne İşletim Sistemi Ekleme Yöntemleri

Sonraki Konu

Komut Satırından E-posta Gönderme: curl kullanımı

Bültenimize Abone Olun 📬

En son gönderilerimizin doğrudan e-posta kutunuza gelmesi için e-posta bültenimize abone olun.
Düşüncelerinizi özgür bırakın ✨