Chcę wyświetlić listę wszystkich portów, na których aktualnie nasłuchuje PID.
Jak poleciłbyś uzyskać takie dane na temat procesu?
ip
monitoring
port-forwarding
iproute
ThorSummoner
źródło
źródło
ss
nie ma filtrowania na PID, z wyjątkiem gniazd netlink.Odpowiedzi:
Możesz użyć
ss
z pakietu iproute2 (który jest podobny donetstat
):lub (dla starszej wersji iproute2):
Zamień 1234 na PID programu.
źródło
-u
lub tylko-t
dla udb lub tcp. : +1: I to wszystko można takss -tlnp
ss -tlnp | cat
ss -nlp | cat
, to z grubsza, pokaż mi procesy nasłuchiwania (-l), ich numery portów (-n) i informacje o ich procesach (-p) i nie próbuj dopasowywać danych wyjściowych do mojej powłoki| cat
( lub mniej lub cokolwiek). Dopiero po dwóch latach przyzwyczaiłem się do tego: DNie znam sposobu korzystania z
iproute2
narzędzi. Ale w celu obejścia tego problemu możesz wypróbować ten.powinien dać ci informacje, których szukasz.
Wynik
Dostałem to polecenie stąd, ale nie jestem pewien dokładnego linku, ponieważ wszystkie zapisałem w notatniku. Ale możesz sprawdzić również stamtąd.
źródło
Możesz użyć
netstat
do tego, aby ustalić pid każdego procesu nasłuchiwania.netstat - Drukuj połączenia sieciowe, tabele routingu, statystyki interfejsu, połączenia maskaradowe i członkostwa multiemisji
-a, --all Pokazuje gniazda nasłuchujące i nie nasłuchujące (dla TCP oznacza to ustanowione połączenia). Dzięki opcji --interfaces wyświetl interfejsy, które nie są oznaczone
--numeric, -n Pokazuje adresy numeryczne zamiast próbować określić symboliczny host, port lub nazwę użytkownika.
-p, --program Pokazuje PID i nazwę programu, do którego należy każde gniazdo.
Oto przykład:
źródło
netstat
został wycofany przez narzędzia iproute2 i chcę tego uniknąć.Odpowiedź @ jofel pokazuje odpowiednie narzędzie do użycia
ss
, oto zamienniki innych narzędzi sieciowych w iproute2.Przestarzałe polecenia i ich odpowiedniki iproute2 są następujące:
Podstawowa lista znajduje się również tutaj na Wikipedii: http://en.wikipedia.org/wiki/Iproute2 .
Bibliografia
źródło
Inna metoda,
lsof
jeśli nie znasz PID, a jedynie nazwę programu:źródło
lsof
4.89 na Ubuntu 16.04pgrep <program name>
następnie wybierz PID potrzebny do powyższego polecenia. zamieniając$(pgrep [programName])
na PID #Próbowałeś, to robi to samo
źródło