Linux'taki açık portların sayısı nasıl bulunur?


17

Linux'taki açık portların sayısı nasıl bulunur? Bağlantı noktalarının bitip bitmediğini görmek istiyorum. Ayrıca, işletim sistemimin sınırını nasıl görebilirim?


2
Limanlar tükenmekten korktuğun için ne yapıyorsun?
MDMarra

Yanıtlar:


27

Modern Linux'ta, ss (soket istatistikleri) yardımcı programını kullanın.

$ ss -s
Total: 10160 (kernel 10262)
TCP:   10349 (estab 8886, closed 408, orphaned 0, synrecv 0, timewait 393/0), ports 3147

Transport Total     IP        IPv6
*         10262     -         -        
RAW       0         0         0        
UDP       5         5         0        
TCP       9941      9941      0        
INET      9946      9946      0        
FRAG      0         0         0        

9
netstat -an | grep ESTABLISHED | wc -l

benim durumumda 32 açık port sayısını verecektir.

cat /proc/sys/net/ipv4/ip_local_port_range

Gibi bir şey dönecektir:

32768 61000

yani, 61000 - 32768 - $ OPENPORTS = AvailablePorts

Kutumda şu:

61000-32768-32 = 28200 kullanılabilir bağlantı noktası numarası.


-a46 işe yaramadı. Herhangi bir yardım?
Haziran'da erotsppa

hangi dağıtımı yapıyorsun (Ubuntu sunucusu 10.04 LTS üzerinde çalışır). Tabii ki, yüklü ipv6 yoksa, o zaman netstat -a kullanın.
Haziran'da Grizly

CentOS kutumda test edildi, ad çözümlemesini durdurmak için "-n" kullanmıyorsanız askıda kalıyor gibi görünüyor. (netstat -an | grep ESTABLISHED | wc -l)
Grizly

Sadece aşağıda "ss" gördüm, thats awesome, bu konuda bilmiyordum .. çok daha iyi! Linux'unuzun nelere izin verecek şekilde yapılandırıldığını belirlemek için ip_local_port_range'i kullanın, ancak bu size şu anda çok daha erişilebilir bir biçimde ne kullandığınızı gösterir!
Grizly

8

Diğerlerinin de belirttiği gibi, netstat şu anda hangi portların kullanımda olduğunu belirlemek için kullanılacak bir araçtır. Sınırlara gelince, mevcut port sayısı, size 0-65535 aralığını veren 16 bit işaretsiz bir tam sayıdır. Uygulamaların bağlanabileceği bağlantı noktaları ayrılmış ayrıcalıklı / kök bağlantı noktaları (0-1024) artı geçici bağlantı noktası aralığınızın kapsamına girmeyen bağlantı noktalarıdır.

Geçici bağlantı noktalarınızı çalıştırarak görüntüleyebilirsiniz cat /proc/sys/net/ipv4/ip_local_port_range.

Bunu kalıcı olarak değiştirmek için, /etc/sysctl.conf dosyasına "net.ipv4.ip_local_port_range" veya etkileşimli olarak sysctl -n net.ipv4.ip_local_port_range="<start_port> <end_port>"


1
nit toplama, ama tam olarak bir ipv4 sınırı değil. Bu bir tcp / udp sınırıdır. ve ipv4'ten bağımsız çalışanlar. (ör. ipv6, taşıma katmanı için hiçbir şey yapmaz)
Joel K

Aaah, haklısın. Cevabımdaki IPV4 referansını kaldırdım.
Alex

1

Şahsen nmap'ı tercih ederim. Tüm bağlantı noktalarının durumunu nmap-P 1-65535 hedefi vererek bulabilirsiniz. Çoğu dağıtımda bu paket, paket yöneticileri aracılığıyla kullanılabilir olmalıdır.


1

Deneyin

# lsof -n -i -P 

Bütünlük uğruna :)


0

netstat, hangi portların açık olduğunu görmenize, ihtiyaçlarınıza en uygun olanı görmek için "netstat -" yapmanıza izin verecektir.


1
netstat --ineten çok yardımcı olacak.
Paul Tomblin

Demek istedim -? eksik karakter.
jer.salamon

veya
manpage'i

Ayrıca --inet6 (her ikisi için kısa: -4 -6), IPv6 soketleri ve ip-agnostik soketleri almak için (ikincisi çift yığın ana makinelerde varsayılan değerdir, bkz. Rfc 3493 bölüm 3.7).
Tobu

0

'nmap localhost', üzerinde çalışan tüm açık portlarınızı ve servislerinizi verecektir.


1
gerçekten değil, sadece 127.0.0.1 için portları tarar, herhangi bir wan IP için değil
Lucas Kauffman

0

netstat -tulnp

Netstat programının argümanları aşağıda listelenmiştir:

*

  t - Show TCP
*

  u - Show UDP
*

  l - Show only listening processes (netstat can show both listening and all established connections, i.e. as a client too)
*

  n - Do not resolve network IP address names or port numbers
*

  p - Show the process name that is listening on the port

0

tüm bağlantı noktalarını kontrol etmek için terminalde aşağıdaki komutu kullanın

netstat -lntu

Belirli bir bağlantı noktası durumunu görmek için aşağıdaki komutu kullanın

netstat -an | grep ':6060'

6060'ı özel port numaranızla değiştirin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.