Czy istnieje jakieś polecenie wiersza polecenia lub inny sposób na znalezienie i wyświetlenie zajętych i wolnych numerów portów na moim komputerze z systemem Linux?
źródło
Czy istnieje jakieś polecenie wiersza polecenia lub inny sposób na znalezienie i wyświetlenie zajętych i wolnych numerów portów na moim komputerze z systemem Linux?
Komenda
netstat -antu
pokaże wszystkie używane porty tcp i udp. Dane wyjściowe będą wyglądać mniej więcej tak:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:59753 0.0.0.0:* LISTEN
Liczba po dwukropku w polu Adres lokalny wskazuje używany port. Jeśli stan to „LISTEN”, oznacza to port używany do połączeń przychodzących. Jeśli adres IP w Local Address
polu oznacza, 0.0.0.0
że połączenia przychodzące będą akceptowane na dowolny adres IP przypisany do interfejsu - oznacza to, że połączenia pochodzą z zewnątrz urządzenia.
Jeśli to powiedziałoby localhost
lub 127.0.0.1
będzie akceptować tylko połączenia z twojego komputera.
Dodatkowo, jeśli dodasz -p
parametr i uruchomisz go jako root, wyświetli się proces, który otworzył port:
$ sudo netstat -antup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:59753 0.0.0.0:* LISTEN 860/rpc.statd
Wszystko, co nie jest pokazane jako używane, jest bezpłatne, jednak użytkownicy (konta nieuprzywilejowane) mogą otwierać porty tylko powyżej 1023.
-antu
można zapisać jako-tuna
🐟Sam opracowałem małą listę .
Niektóre z moich ulubionych to:
źródło
Dobrym i niezawodnym sposobem sprawdzenia otwartych portów jest użycie
ss
(zamiennik przestarzałychnetstat
), można go używać w skrypcie bez konieczności podwyższonych uprawnień (tjsudo
.).Użycie: opcja
-l
nasłuchiwania portów, opcja-n
obejścia rozdzielczości DNS i filtr na porcie źródłowymNN
:src :NN
(zamieńNN
na port, który chcesz monitorować). Aby uzyskać więcej opcji, zobaczman ss
Przykłady:
W skrypcie, używając grep, możemy sprawdzić, czy dane wyjściowe zawierają żądany port. Przykład z używanym portem 80 (patrz wyżej):
Przykład z nieużywanym portem 81 (patrz wyżej)
źródło
Inny sposób:
Jeśli port jest wolny, pojawi się błąd. Jeśli port jest zajęty, telnet połączy się.
(znalezione na http://www.unix.com/unix-for-dummies-questions-and-answers/8456-how-know-whether-particular-port-number-free-not.html )
źródło