VDS Sunucu

lsof Nedir? Linux’ta Açık Dosyalar ve Portlar Nasıl Bulunur?

27 Eylül 2026 13 dk okuma 31 görüntülenme Burak A.
lsof Nedir? Linux’ta Açık Dosyalar ve Portlar Nasıl Bulunur?

lsof nedir? sorusunun kısa cevabı, Linux sistemlerde hangi process’in hangi dosya, cihaz, socket veya network bağlantısını kullandığını göstermeye yarayan güçlü bir komut satırı aracıdır.

Linux’ta çalışan her process çeşitli kaynaklarla iletişim kurar. Bir web sunucusu port açabilir, bir veritabanı dosya kullanabilir, bir uygulama log dosyasını açık tutabilir veya bir process belirli bir network bağlantısını kullanabilir.

Bir problem yaşandığında asıl soru çoğu zaman şudur:

“Bu kaynağı hangi process kullanıyor?”

İşte lsof tam olarak bu noktada devreye girer.

Örneğin:

lsof -i :80

ile 80 numaralı portu hangi process’in kullandığını araştırabilirsiniz.

Benzer şekilde:

lsof /var/log/nginx/access.log

ile belirli bir dosyayı hangi process’in açık tuttuğunu görebilirsiniz.

Bu nedenle lsof özellikle:

  • 🌐 Port çakışmaları
  • 📁 Açık dosyalar
  • 🔌 Network bağlantıları
  • 🧩 Process analizi
  • 💾 Silinmiş fakat açık dosyalar
  • 🚨 Servis problemleri
  • 🔐 Açık socket’ler

gibi durumlarda oldukça kullanışlıdır.

⚙️ lsof Nedir Ne İşe Yarar?

lsof, sistemdeki açık kaynaklarla process’ler arasındaki ilişkiyi görmenizi sağlar.

Basitleştirilmiş olarak:

Process
   ↓
Dosya / Socket / Port
   ↓
lsof
   ↓
Hangi process kullanıyor?

Örneğin Nginx’in 80 portunu kullandığını düşünelim.

lsof -i :80

çıktısında Nginx process’ini görebilirsiniz.

Başka bir process aynı portu kullanmaya çalışıyorsa port çakışmasının kaynağını da bu şekilde araştırabilirsiniz.

Bu özellik özellikle “Address already in use” gibi hatalarda oldukça değerlidir.

lsof nasıl çalışır sorusunu gösteren Linux process, dosya ve port ilişkisi
lsof, çalışan process’lerin kullandığı dosya, port, socket ve diğer sistem kaynaklarını tespit ederek process ile kaynak arasındaki ilişkiyi gösterir.

🟢 lsof Nedir Nasıl Kurulur?

Birçok Linux dağıtımında lsof paket yöneticisi üzerinden kurulabilir.

Debian / Ubuntu

sudo apt update
sudo apt install lsof

RHEL / CentOS / Rocky Linux / AlmaLinux

sudo dnf install lsof

Eski sistemlerde:

yum install lsof

kullanılabilir.

Kurulumdan sonra:

lsof -v

ile sürüm bilgisini kontrol edebilirsiniz.

📋 En Temel lsof Nedir Kullanımı

Hiçbir parametre vermeden:

lsof

çalıştırıldığında sistemdeki açık dosyalar ve bunları kullanan process’ler listelenir.

Ancak üretim sunucularında bu çıktı oldukça uzun olabilir.

Bu nedenle çoğu zaman filtreleme kullanmak daha mantıklıdır.

Örneğin belirli bir process’i aramak için:

lsof -c nginx

veya:

lsof -c mysql

kullanabilirsiniz.

PID üzerinden:

lsof -p 1234

şeklinde belirli bir process’i inceleyebilirsiniz.

🌐 lsof Nedir ile Hangi Portun Kullanıldığını Bulma

lsof’un en pratik kullanım alanlarından biri port analizidir.

Örneğin 80 portunu hangi process kullanıyor?

lsof -i :80

443 için:

lsof -i :443

3306 için:

lsof -i :3306

SSH’nin standart portu için:

lsof -i :22

kullanabilirsiniz.

Bu yöntem özellikle bir servisi başlatırken:

Address already in use

hatasıyla karşılaştığınızda oldukça faydalıdır.

Örneğin Nginx başlatılamıyor ve 80 portunun başka bir uygulama tarafından kullanıldığından şüpheleniyorsanız:

lsof -i :80

ile doğrudan kontrol edebilirsiniz.

🔥 TCP ve UDP Bağlantıları Nasıl Görüntülenir?

TCP bağlantılarını filtrelemek için:

lsof -i TCP

UDP bağlantıları için:

lsof -i UDP

kullanabilirsiniz.

Belirli bir IP ile bağlantıları görmek için:

lsof -i @192.168.1.10

gibi filtreler de kullanılabilir.

Belirli bir port aralığını incelemek istediğinizde:

lsof -i :8000-9000

şeklinde kullanım yapılabilir.

Bu özellikle çok sayıda uygulamanın çalıştığı VDS sunucularda network tarafındaki process’leri araştırırken işinize yarayabilir.

🧩 lsof Nedir ile Bir Process’in Kullandığı Dosyalar Nasıl Bulunur?

Belirli bir process’in hangi dosyaları kullandığını görmek için:

lsof -p 1234

kullanabilirsiniz.

Burada 1234, process ID’sidir.

Örneğin çalışan bir PHP-FPM process’inin PID’sini biliyorsanız:

lsof -p 1234

ile process’in açık tuttuğu dosyaları inceleyebilirsiniz.

Bir process’in PID’sini bilmiyorsanız önce:

pgrep nginx

veya:

pidof nginx

kullanabilirsiniz.

Daha sonra elde edilen PID’yi lsof ile inceleyebilirsiniz.

📁 Belirli Bir Dosyayı Hangi Process Kullanıyor?

Bu da lsof’un çok önemli kullanım alanlarından biridir.

Örneğin:

lsof /var/log/nginx/access.log

komutuyla bu dosyayı hangi process’in açık tuttuğunu görebilirsiniz.

Benzer şekilde:

lsof /var/log/mysql/error.log

ile MySQL hata logunun hangi process tarafından kullanıldığını araştırabilirsiniz.

Bu yöntem özellikle bir dosyayı silmek, değiştirmek veya taşıma işlemi yapmak istediğinizde önem kazanır.

Çünkü dosya sisteminde bir dosyanın görünür olması ile bir process tarafından aktif şekilde kullanılması farklı şeylerdir.

🗑️ Silinen Dosya Neden Hâlâ Disk Alanı Kullanıyor?

Linux’ta oldukça ilginç bir durum vardır.

Bir dosyayı rm ile silmiş olabilirsiniz ancak dosyayı kullanan process hâlâ çalışıyorsa disk alanı hemen geri dönmeyebilir.

Bu durumda:

lsof +L1

çok faydalı bir komuttur.

Bu komut, link count değeri sıfırlanmış yani silinmiş fakat process tarafından hâlâ açık tutulan dosyaları araştırmak için kullanılabilir.

Örneğin büyük bir log dosyası silinmiş ancak Nginx veya başka bir uygulama dosyayı açık tutmaya devam ediyor olabilir.

Böyle bir durumda:

Dosya silindi
↓
Process dosyayı açık tutuyor
↓
Disk alanı tamamen serbest kalmıyor
↓
lsof +L1
↓
Açık silinmiş dosyayı bul

şeklinde ilerleyebilirsiniz.

Bu durum özellikle “dosyaları sildim ama disk alanı neden hâlâ dolu?” sorusunda oldukça değerlidir.

💾 lsof Nedir ile Disk Doluluğu Analizi

Sunucuda disk alanı beklenmedik şekilde doluyorsa ilk olarak:

df -h

ile dosya sistemi kullanımını kontrol edebilirsiniz.

Daha sonra büyük dosyaları araştırabilirsiniz.

Ancak dosyaların silinmesine rağmen alanın geri gelmediğinden şüpheleniyorsanız:

lsof +L1

kullanılabilir.

Örneğin:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NLINK NAME
nginx     1234  www    5w   REG  ...    8G      0     access.log (deleted)

benzeri bir çıktı görürseniz process’in silinmiş bir dosyayı hâlâ açık tuttuğunu anlayabilirsiniz.

Burada process’i doğrudan öldürmek yerine önce bunun hangi uygulamaya ait olduğunu ve güvenli şekilde nasıl yeniden başlatılacağını belirlemek gerekir.

🔐 lsof Nedir ile Açık Network Portları Nasıl Kontrol Edilir?

Sunucudaki network socket’lerini incelemek için:

lsof -i

kullanabilirsiniz.

Yalnızca dinleme yapan TCP bağlantılarını görmek için:

lsof -iTCP -sTCP:LISTEN

kullanılabilir.

Bu çıktı sayesinde:

Process
PID
User
Protocol
Local Address
Port

gibi bilgileri inceleyebilirsiniz.

Örneğin bir sunucuda beklemediğiniz bir servis 8080 portunda dinliyorsa lsof ile hangi process’in bunu yaptığını araştırabilirsiniz.

🧠 lsof Nedir ve ss Arasındaki Fark Nedir?

Linux’ta network analizi yaparken ss de çok sık kullanılır.

İki aracın kullanım amacı tamamen aynı değildir.

lsof

Daha çok:

Process
   ↕
Dosya
   ↕
Socket
   ↕
Port

ilişkisini araştırmak için kullanışlıdır.

ss

Daha çok:

Socket
Port
TCP/UDP
Connection
Listening State

gibi network durumlarını incelemek için kullanılır.

Örneğin:

ss -tulpn

ile dinleyen portları görebilirsiniz.

lsof ise:

lsof -i :8080

ile 8080 portunu hangi process’in kullandığını doğrudan araştırabilir.

Bu nedenle ikisini rakip araçlar olarak değil, birbirini tamamlayan araçlar olarak düşünmek daha doğrudur.

⚙️ lsof Nedir ve systemctl Birlikte Nasıl Kullanılır?

Bir servis çalışmıyorsa önce servis durumunu kontrol edebilirsiniz:

systemctl status nginx

Daha sonra portun durumunu:

lsof -i :80

ile inceleyebilirsiniz.

Örneğin Nginx başlatılamıyorsa ve 80 portunun başka bir process tarafından kullanıldığı görülüyorsa problem daha net hale gelir.

Basit teşhis akışı:

systemctl status nginx
          ↓
Servis neden çalışmıyor?
          ↓
lsof -i :80
          ↓
80 portunu kim kullanıyor?
          ↓
PID tespit edildi
          ↓
lsof -p PID
          ↓
Process'in kullandığı kaynaklar

Systemctl ile Linux servis yönetimini ayrıntılı şekilde anlattığımız rehberimizi de bu noktada kullanabilirsiniz.

Systemctl Nedir? Linux Servisleri Nasıl Yönetilir?

📊 lsof Nedir ve pidstat Birlikte Nasıl Kullanılır?

lsof bir process’in hangi kaynakları kullandığını, pidstat ise process’in ne kadar CPU, RAM veya I/O tükettiğinianlamanıza yardımcı olabilir.

Örneğin yüksek CPU kullanan process’i pidstat ile tespit ettiğinizi düşünelim:

pidstat -u 1

Daha sonra PID’yi:

lsof -p 1234

ile inceleyebilirsiniz.

Böylece:

pidstat
↓
Hangi process kaynak tüketiyor?

lsof
↓
Bu process hangi dosya / socket / bağlantıları kullanıyor?

şeklinde daha derin bir analiz yapabilirsiniz.

AydınCloud’un pidstat rehberinde process bazlı CPU, RAM ve Disk I/O analizini ayrıntılı olarak ele alıyoruz.

🚨 lsof Nedir ve ulimit Arasındaki İlişki

Linux’ta process’lerin açabileceği dosya descriptor sayısının bir limiti vardır.

Bu noktada ulimit devreye girer.

Örneğin:

ulimit -n

ile mevcut shell’in açık dosya limitini görebilirsiniz.

Bir uygulamada:

Too many open files

hatası oluşuyorsa process’in açık dosya sayısını araştırmak gerekebilir.

Örneğin process’in açık dosyalarını:

lsof -p 1234

ile inceleyebilirsiniz.

Ayrıca:

cat /proc/1234/limits

ile process limitlerini kontrol edebilirsiniz.

AydınCloud’un ulimit rehberinde de ulimit -n, PID bazlı /proc/PID/limits ve systemd servis limitlerinin birlikte nasıl inceleneceği anlatılıyor.

🧪 Gerçek Bir Port Çakışması Analizi

Bir VDS sunucuda Nginx başlatılmaya çalışıldığında:

bind() failed
Address already in use

hatası aldığınızı düşünelim.

İlk adım:

systemctl status nginx

Ardından 80 portunu kontrol ediyoruz:

lsof -i :80

Örneğin:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2   2451 root   4u  IPv4 ...          TCP *:http (LISTEN)

çıktısı geldi.

Buradan 80 portunu Apache’nin kullandığını görebiliriz.

Sonraki adım:

ps -fp 2451

ile process’i doğrulamak olabilir.

Eğer Apache’nin çalışması gerekmiyorsa ilgili servisin yapılandırması incelenebilir.

Örneğin:

systemctl status apache2

Ardından ihtiyaca göre servis yönetimi yapılabilir.

Burada önemli olan rastgele process öldürmek yerine önce PID’nin hangi servise ait olduğunu doğrulamaktır.

🧹 lsof Nedir Çıktısı Nasıl Filtrelenir?

lsof çıktısı büyük sistemlerde oldukça uzun olabilir.

Bu nedenle Linux’un diğer komutlarıyla birlikte kullanmak oldukça pratiktir.

Örneğin:

lsof -i | grep nginx

veya:

lsof | grep deleted

kullanabilirsiniz.

Belirli bir process:

lsof | grep mysql

Belirli bir port:

lsof -i :443

Belirli bir kullanıcı:

lsof -u www-data

şeklinde filtrelenebilir.

👤 Belirli Bir Kullanıcının Açık Dosyaları Nasıl Bulunur?

Bir kullanıcının açtığı dosyaları görmek için:

lsof -u www-data

kullanabilirsiniz.

Örneğin web sunucusunun www-data kullanıcısıyla çalıştığı sistemlerde bu komut PHP-FPM veya web uygulamalarının kullandığı kaynakları araştırırken faydalı olabilir.

Root kullanıcısının açık dosyaları için:

lsof -u root

kullanabilirsiniz.

Birden fazla kullanıcı için:

lsof -u user1,user2

gibi filtreleme yapılabilir.

📈 lsof VDS Sunucularda Neden Önemlidir?

VDS üzerinde yaşanan problemlerde çoğu zaman yalnızca CPU ve RAM kullanımına bakmak yeterli değildir.

Örneğin:

CPU yüksek
↓
Hangi process?
↓
pidstat

Port çalışmıyor
↓
Hangi process kullanıyor?
↓
lsof

Dosya silindi ama disk boşalmadı
↓
Hangi process açık tutuyor?
↓
lsof +L1

Too many open files
↓
Process kaç dosya açmış?
↓
lsof + ulimit

Bu nedenle lsof, VDS sorun giderme araçları arasında önemli bir yere sahiptir.

Genel performans problemlerinde CPU, RAM, disk ve process’leri birlikte değerlendirmek gerektiğini AydınCloud’un VDS performans rehberinde de ayrıntılı şekilde ele alıyoruz.

🛠️ En Faydalı lsof Nedir Komutları

Günlük Linux sunucu yönetiminde kullanabileceğiniz temel komutları tek yerde toplayalım.

Tüm açık dosyaları göster

lsof

Belirli process

lsof -p 1234

Belirli program

lsof -c nginx

Belirli port

lsof -i :80

HTTPS portu

lsof -i :443

MySQL portu

lsof -i :3306

Dinleyen TCP portları

lsof -iTCP -sTCP:LISTEN

Tüm network bağlantıları

lsof -i

TCP bağlantıları

lsof -i TCP

UDP bağlantıları

lsof -i UDP

Kullanıcıya göre

lsof -u www-data

Silinmiş fakat açık dosyalar

lsof +L1

Belirli dosyayı kullanan process

lsof /var/log/nginx/access.log

⚠️ lsof Kullanırken Nelere Dikkat Edilmeli?

lsof yalnızca analiz aracıdır. Çıktıda bir process gördüğünüz için doğrudan onu sonlandırmak doğru değildir.

Örneğin:

lsof -i :80

ile bir process buldunuz.

Hemen:

kill -9 PID

uygulamak yerine önce:

ps -fp PID

ile process’in ne olduğunu kontrol edin.

Ardından:

systemctl status servis

ile ilgili servis olup olmadığını araştırın.

Özellikle production VDS sunucularda yanlış process’in sonlandırılması web sitesi, database, mail sistemi veya başka bir uygulamanın kesilmesine neden olabilir.

lsof ile Linux sunucu sorunlarının analiz edildiği AydınCloud ortamı
lsof ile port çakışmalarını, açık dosyaları, network bağlantılarını ve process kaynaklarını analiz ederek Linux sunucu sorunlarını daha hızlı tespit edebilirsiniz.

❓ Sıkça Sorulan Sorular

lsof nedir?

lsof, Linux’ta process’lerin kullandığı açık dosya, socket, cihaz ve network kaynaklarını görüntülemek için kullanılan komut satırı aracıdır.

lsof ne işe yarar?

Port çakışmalarını, açık dosyaları, network bağlantılarını ve belirli bir process’in kullandığı kaynakları tespit etmek için kullanılabilir.

Bir portu hangi process kullanıyor?

Örneğin 80 portu:

lsof -i :80

ile kontrol edilebilir.

Silinen dosya neden disk alanı kullanmaya devam ediyor?

Dosya silinmiş olsa bile bir process dosyayı açık tutuyorsa disk alanı process kapanana kadar kullanılmaya devam edebilir. Bu tür durumları araştırmak için:

lsof +L1

kullanılabilir.

lsof ile process nasıl bulunur?

PID biliyorsanız:

lsof -p 1234

kullanabilirsiniz.

lsof ile network bağlantıları görülür mü?

Evet.

lsof -i

ile network bağlantıları ve socket’ler incelenebilir.

lsof ile açık dosya limiti kontrol edilir mi?

lsof açık dosyaları gösterir. Process’in resource limitlerini ayrıca:

cat /proc/PID/limits

ve ulimit üzerinden incelemek gerekir.

lsof ve ss arasındaki fark nedir?

ss network socket ve bağlantılarını incelemeye odaklanırken lsof, socket’leri ilgili process’lerle ilişkilendirerek daha geniş bir kaynak görünümü sağlar.

lsof neden Permission Denied verebilir?

Bazı process ve dosyalar yalnızca root veya yetkili kullanıcı tarafından görülebilir. Gerekli olduğunda:

sudo lsof

kullanılabilir.

🎯 Sonuç

lsof nedir? sorusunun cevabı, Linux sunucularda kaynak ile process arasındaki ilişkiyi ortaya çıkaran güçlü bir analiz aracıdır.

Bir portun kim tarafından kullanıldığını, bir dosyanın hangi process tarafından açık tutulduğunu, bir process’in hangi kaynaklarla çalıştığını veya silinmiş bir dosyanın neden hâlâ disk alanı tükettiğini araştırırken lsof oldukça kullanışlıdır.

Özellikle VDS yönetiminde şu kombinasyon çok değerlidir:

systemctl
↓
Servis durumu

lsof
↓
Process / dosya / port ilişkisi

pidstat
↓
CPU / RAM / I/O kullanımı

ulimit
↓
Resource limitleri

journalctl
↓
Servis logları

Bu araçları birlikte kullanmak, “sunucuda ne sorun var?” sorusundan daha ileri giderek “hangi process hangi kaynağı kullanıyor ve sorun nerede oluşuyor?” sorusuna cevap vermenizi sağlar.

Bu yüzden lsof, Linux VDS yönetiminde temel olarak bilinmesi gereken komutlardan biridir.

Paylaş:
Tüm Yazılara Dön Hemen İnceleyin → VDS Sunucu Paketleri Yüksek performanslı, tam izole VDS sunucu paketlerimizi inceleyin. Tam izole kaynak NVMe SSD %99.9 uptime

Yorum Yap

E-posta adresiniz yayınlanmayacaktır. Zorunlu alanlar işaretlenmiştir.

Yardıma mı ihtiyacınız var? Size nasıl yardımcı olabiliriz?
WhatsApp Destek Bizi Arayın E-posta Gönder