W systemie Mac OS X jak mogę monitorować, co korzysta z mojego połączenia internetowego?

19

Mam stosunkowo ograniczone połączenie szerokopasmowe (mieszkam mile od najbliższej wymiany) i od czasu do czasu dostęp do sieci (ale nic więcej) spowalnia do prawie pełnego indeksowania.

Wiem trochę oprogramowania monitorującego, że połączenie jest dość intensywnie wykorzystywane, co by to wyjaśniało, ale nie wiem, co z niego korzysta. Z pewnością jest wiele rzeczy, które mogą (obecnie są dziesiątki aplikacji, które albo regularnie, albo rzadko sprawdzają dane lub pobierają aktualizacje), ale jak mogę się dowiedzieć?

W razie potrzeby chętnie płacę (niewielką sumę) pieniędzy, ale w takim przypadku wolałbym, aby zalecał mi po prostu Google za coś.

Jon Hopkins
źródło

Odpowiedzi:

17

Little Snitch pozwala selektywnie przyznawać dostęp do Internetu programom, dzięki czemu możesz decydować, z którymi numerami portów i nazwami hostów może rozmawiać aplikacja.

Jest to bardzo przydatna osobista zapora ogniowa i jedna z pierwszych rzeczy, które zainstalowałem na nowym komputerze Mac. Uniemożliwianie aplikacjom dzwonienia do domu lub robienia czegokolwiek w Internecie może mieć kluczowe znaczenie dla prywatności.

mikl
źródło
1
Little Snitch jest nieoceniony w obsłudze tego, co wchodzi / wychodzi z twojego komputera na poziomie aplikacji.
Chealion
1
Little Snitch pozwala również wyświetlić panel monitorowania, który pokazuje ruch w górę / w dół dla każdej aplikacji uzyskującej dostęp do połączenia sieciowego. Wygląda to tak: obdev.at/Images/littlesnitch/network-monitor-zoomed.jpg
chrish
7

Możesz się tam dostać, uruchamiając następujące polecenie z poziomu terminala:

sudo lsof |grep TCP | grep ESTAB

Spowoduje to wyświetlenie listy wszystkich otwartych połączeń TCP. Pierwsza kolumna zawiera listę aplikacji, które nawiązują połączenie, więc możesz dowiedzieć się, który jest prawdopodobnym winowajcą. Przykładowa para wierszy wyników może wyglądać następująco:

ssh       10099            tim   21u     IPv4 0x1164766c        0t0       TCP 10.0.52.158:61830->home:ssh (ESTABLISHED)
Mail      13216            tim   23u     IPv4 0x11660270        0t0       TCP 10.0.52.158:57696->##.##.##.##:imaps (ESTABLISHED)

Widzę więc, że zarówno Mail, jak i ssh używają połączeń. Jeśli rozwiązanie nie jest oczywiste, możesz użyć dtrace, aby uzyskać więcej szczegółów. W szczególności sprawdź Narzędzia DTrace , z których niektóre są już zainstalowane na komputerze Mac pod / usr / bin:

bitesize.d cpuwalk.d creatbyproc.d dappprof dapptrace diskhits dispqlen.d dtruss errinfo execsnoop fddist filebyproc.d hotspot.d httpdstat.d iodbctest iodbctestw iofile.d iofileb.d iopattern iopending iosnoop iotop kill.d lastwords loads.d newproc.d opensnoop otool pathopens.d pidpersec.d plockstat priclass.d pridist.d procsystime runocc.d rwbypid.d rwbytype.d rwsnoop sampleproc seeksize.d setuids.d sigdist.d syscallbypid.d syscallbyproc.d syscallbysysc.d topsyscall topsysproc weblatency.d

Myślę, że tym, który chcesz w swojej sytuacji, jest prawdopodobnie tcpsnoop lub tcptop , które domyślnie nie są dostępne na komputerze Mac, co sprawia, że ​​zastanawiam się, czy wystąpiły jakieś problemy z przenoszeniem.

Tim
źródło
Czy wymagane jest sudo?
Richard Hoskins,
Służy do przechwytywania połączeń od innych użytkowników, którzy mogą nawiązywać połączenia sieciowe. Nawet jeśli jesteś jedynym użytkownikiem, możliwe, że niektóre konta systemowe mogą nawiązywać połączenia sieciowe.
Tim
7

użycie iftop

Krok 0: Zainstaluj iftop przez MacPorts lub Homebrew (spowoduje to również automatyczne zainstalowanie zależności)

sudo port install iftop
brew install iftop

Krok 1: Zobacz listę „interfejsów” sieciowych w twoim systemie (domyślnie iftop używa en0, który w szerokopasmowym Internecie Cricket daje ci pusty ekran)

ifconfig -l    # shows: lo0 gif0 stf0 en0 en1 wlt1 fw3 vnic0 vnic1 vboxnet0 ppp0

Krok 2: Uruchom iftop z różnymi „interfejsami” sieci, aż iftop zadziała (ppp0 w moim systemie)

sudo iftop -i ppp0    # have to use sudo to avoid "pcap_open_live(ppp0): (no devices found) /dev/bpf0: Permission denied"

Krok 3: Wyjdź z iftop, naciskając „q”

rosyjski_szpieg
źródło
1
Gdzie można dostać się iftopna OS X? sudo: iftop: command not found
Daniel Beck
Uruchom „sudo port install iftop” (jeśli masz zainstalowane Macports). Spowoduje to zainstalowanie iftop i jego zależności.
Russian_spy
1
Dzięki. Jest również dostępny w Homebrew. Te informacje byłyby jednak przydatne jako część postu ;-)
Daniel Beck
Fajnie, musiałem użyć innego interfejsu (en1), na początku uzyskałem pusty ekran. Ponadto +1 za homebrew zamiast macports.
noio
3

Nettop to wbudowane narzędzie wiersza poleceń. Możesz go uruchomić w terminalu, pisząc nettop. Domyślny widok jest nieco zbyt szczegółowy, dlatego zawsze naciskam klawisze ci d, aby zobaczyć jedną aplikację na linię ( c) i zobaczyć bieżące wykorzystanie przepustowości zamiast całkowitego ruchu sieciowego (d ). Prawdopodobnie musisz zmaksymalizować okno terminala, aby zobaczyć wszystkie kolumny.

Więcej informacji i zrzuty ekranu tutaj .

psmith
źródło