Chcę śledzić aktywność sieciową polecenia, próbowałem tcpdump i strace bez powodzenia.
Na przykład: jeśli instaluję pakiet lub używam dowolnego polecenia, które próbuje dotrzeć do jakiejś witryny, chcę wyświetlić tę aktywność sieciową (witrynę, do której próbuje dotrzeć).
Myślę, że możemy to zrobić za pomocą tcpdump. Próbowałem, ale śledzi całą aktywność sieciową mojego systemu. Powiedzmy, że jeśli uruchamiam wiele poleceń związanych z siecią i chcę śledzić tylko określoną aktywność w sieci poleceń, trudno jest znaleźć dokładne rozwiązanie.
Czy jest na to sposób?
AKTUALIZACJA:
Nie chcę śledzić wszystkiego, co dzieje się w moim interfejsie sieciowym. Chcę tylko śledzić aktywność sieciową polecenia (na przykład #yum install -y vim). Takich jak strona, do której próbuje dotrzeć.
Odpowiedzi:
netstat dla uproszczenia
Używanie
netstat
i grepping na PID lub nazwie procesu:I możesz użyć
watch
do aktualizacji dynamicznych:Z:
-n
: Pokaż adresy numeryczne zamiast próbować określić symboliczny host, port lub nazwę użytkownika-p
: Pokaż PID i nazwę programu, do którego należy każde gniazdo.--inet
: Pokaż tylko gniazda protokołu raw, udp i tcp.miejsce na gadatliwość
Powiedziałeś, że wypróbowałeś
strace
narzędzie, ale czy wypróbowałeś tę opcjętrace=network
? Zauważ, że wyjście może być dość szczegółowe, więc możesz potrzebować trochę grepowania. Możesz zacząć od grepowania na „sin_addr”.Lub, dla już uruchomionego procesu, użyj PID:
źródło
netstat
którego IMHO jest najprostszym i najczystszym rozwiązaniem.strace
wyjściowe, utrzymując tylkoconnect
wywołania systemowe i usuwającdns
żądania (port 53) za pomocą:| grep connect | grep -v 'sin_port=htons(53)'
Utworzyłbym nową przestrzeń nazw sieci , przerzuciłbym ją do prawdziwej sieci, a następnie monitorowałem pomost za pomocą
tcpdump
.źródło
sysdig
pozwala monitorować całą aktywność jądra lub kilku poleceń uruchomionych w twoim systemie w czasie pracy, w tym między innymi aktywność sieciową.Ponieważ wynik może być duży, musisz zbudować filtry, dlatego domyślna strona dla najbardziej podstawowych filtrów jest dość zrozumiała.
Ma również tę zaletę, że nie jest używane jako opakowanie aplikacji, jak w
strace
, i może być dość potężne.Z przykładów Sysdig
źródło
Możesz użyć wireshark do wąchania całego ruchu wejściowego i wyjściowego interfejsu sieciowego. Jeśli potrzebujesz opcji bez GUI, możesz użyć tshark.
Dzięki obu opcjom możesz zobaczyć cały ruch sieciowy i zapisać go, aby później przeanalizować wszystkie ustanowione połączenia.
źródło