Czy istnieje sposób na pokazanie połączeń procesu? Coś w tym stylu:
show PID
w którym show
jest to polecenie, i PID
jest pid procesu. Dane wyjściowe, które chcę, składają się z całego połączenia procesu (w czasie rzeczywistym). Na przykład, jeśli proces spróbuje połączyć się z 173.194.112.151, wynikiem jest 173.194.112.151
.
Bardziej konkretny przykład z Firefoksem:
show `pidof firefox`
a wraz z firefoxem najpierw wchodzę na google.com , potem na unix.stackexchange.com i na końcu 192.30.252.129 . Wyjście, gdy zamykam przeglądarkę, musi wynosić:
google.com
stackexchange.com
192.30.252.129
(Oczywiście w przeglądarce dane wyjściowe nie są realistyczne, ponieważ istnieje wiele innych powiązanych powiązań, ale to tylko przykład.)
Odpowiedzi:
Szukasz
strace
! Znalazłem tę odpowiedź na askubuntu , ale jest ona poprawna dla Uniksa:W przeciwnym razie, ale jest to specyficzne dla Linuksa, możesz uruchomić proces w izolowanej sieciowej przestrzeni nazw i użyć Wireshark do monitorowania ruchu . Prawdopodobnie będzie to wygodniejsze niż czytanie
strace
dziennika:źródło
strace
jest właściwie specyficzny dla jądra Linuksa, więc nie działa na wszystkich systemach operacyjnych uniksopodobnych. Jak rozumiem, systemy podobne do BSD mają podobne narzędzia (DTrace i kratownice). W każdym razie dobra odpowiedź (tak pozytywnie oceniona). Witamy w Stack Exchange.strace
wyjście podczas badaniagit fetch
. Spodziewałem się, że w danych wyjściowych pojawi się jakiś adres URL, zgodnie z żądaniem OP. Czy ktoś może pomóc?Próbować
źródło
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /home/user/.gvfs Output information may be incomplete.
-r1
powtarzania wyjścia co sekundę i-w
ukrywania ostrzeżeń.(in real-time)
jakofrom the point in time of tracking and forward
.Oto inne podejście:
ss -nap | grep $(pidof firefox)
Przykładowe dane wyjściowe:
źródło
Możesz spróbować również z
netstat -p
. Ze strony podręcznika:Aby wyświetlić tylko połączenia sieciowe, użyj
netstat -tup
. Zauważ, że aby zobaczyć PID procesu, może być konieczne rootowanie.Jeśli nie masz
netstat
w swoim systemie, możesz miećss
, który ma prawie dokładną składnię. Możesz wtedy użyćss -tup
(jako root).źródło