Jak znaleźć liczbę otwartych portów w systemie Linux?


17

Jak znaleźć liczbę otwartych portów w systemie Linux? Chcę sprawdzić, czy brakuje mi portów. Jak mogę sprawdzić limit mojego systemu operacyjnego?


2
Co robisz, że boisz się, że zabraknie Ci portów?
MDMarra,

Odpowiedzi:


27

W nowoczesnym systemie Linux użyj narzędzia ss (socket stats).

$ 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

poda liczbę otwartych portów, w moim przypadku 32.

cat /proc/sys/net/ipv4/ip_local_port_range

Zwróci coś takiego:

32768 61000

co oznacza, 61000 - 32768 - $ OPENPORTS = Dostępne porty

Na moim pudełku to:

61000-32768-32 = 28200 dostępnych numerów portów.


-a46 nie działał. Jakaś pomoc?
erotsppa

Jaką dystrybucję prowadzisz? (działa na serwerze Ubuntu 10.04 LTS). Oczywiście, jeśli nie masz zainstalowanego IPv6, po prostu użyj netstat -a.
Grizly

Testowany na moim polu CentOS, wydaje się, że zawiesza się, jeśli nie użyjesz „-n”, aby zatrzymać rozpoznawanie nazw. (netstat -an | grep ESTABLISHED | wc -l)
Grizly

Właśnie widziałem poniżej „ss”, to niesamowite, nie wiedziałem o tym… znacznie lepiej! Użyj ip_local_port_range, aby określić, na co zezwala twój Linux, ale pokazuje ci to, czego aktualnie używasz, w znacznie bardziej dostępnym formacie!
Grizly,

8

Jak wspomnieli inni, netstat to narzędzie, za pomocą którego można określić, które porty są aktualnie używane. Jeśli chodzi o limity, liczba dostępnych portów to 16-bitowa liczba całkowita bez znaku, co daje zakres 0-65535. Porty, które są dostępne dla aplikacji do połączenia, to zarezerwowane porty uprzywilejowane / root (0-1024) oraz cokolwiek, co nie jest objęte twoim efemerycznym zakresem portów.

Możesz wyświetlić efemeryczne porty, uruchamiając cat /proc/sys/net/ipv4/ip_local_port_range.

Aby zmodyfikować to trwale, musisz dodać / zmodyfikować „net.ipv4.ip_local_port_range” w pliku /etc/sysctl.conf lub interaktywnie z sysctl -n net.ipv4.ip_local_port_range="<start_port> <end_port>"


1
wybieranie nitów, ale nie jest to dokładnie limit IPv4. Jest to limit tcp / udp. i te działają niezależnie od ipv4. (np. ipv6 nie robi nic dla warstwy transportowej)
Joel K

Ach, masz rację. Usunąłem odniesienie IPV4 w mojej odpowiedzi.
Alex

1

Osobiście wolę nmap. Możesz znaleźć stan wszystkich portów, wydając cel nmap -P 1-65535. Większość dystrybucji powinna mieć ten pakiet dostępny za pośrednictwem menedżera pakietów.



0

netstat pozwoli ci zobaczyć, które porty są otwarte, wykonaj „netstat -”, aby zobaczyć, co najlepiej odpowiada Twoim potrzebom.


1
netstat --inetnajbardziej pomoże.
Paul Tomblin,

Miałem na myśli -? brakująca postać.
jer.salamon

lub przeczytaj stronę podręcznika
MDMarra

Dołącz także --inet6 (skrót od obu: -4 -6), aby uzyskać gniazda IPv6 i gniazda agnostyczne ip (to drugie ustawienie domyślne na hostach z dwoma stosami, patrz sekcja 3.7).
Tobu,


0

netstat -tulnp

Argumenty programu netstat są wymienione poniżej:

*

  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

użyj następującego polecenia na terminalu, aby sprawdzić wszystkie porty

netstat -lntu

Aby zobaczyć status określonego portu, użyj następującego polecenia

netstat -an | grep ':6060'

zastąp 6060 swoim numerem portu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.