В Mac OS X как я могу отслеживать, что использует мое интернет-соединение?

31803
Jon Hopkins

У меня относительно ограниченное широкополосное соединение (я живу в милях от ближайшей станции обмена), и время от времени доступ к сети (но больше ничего) замедляется до почти полного сканирования.

Из небольшого количества программного обеспечения для мониторинга я знаю, что соединение используется довольно интенсивно, что объясняет это, но я не знаю, что его использует. Конечно, есть много вещей, которые могут (в наши дни существуют десятки приложений, которые будут либо регулярно, либо нечасто проверять данные или загружать обновления), но как я могу узнать?

Я рад заплатить (небольшую сумму) денег, если это необходимо, хотя в этом случае я бы предпочел, чтобы я просто что-то гуглил.

18

5 ответов на вопрос

17
mikl

Little Snitch позволяет вам выборочно предоставлять доступ в Интернет программам, чтобы вы могли решить, с какими номерами портов и именами хостов разрешено разговаривать приложению.

Это очень удобный персональный брандмауэр, и я первым делом установлю его на новый Mac. Запрет приложений звонить домой или делать что-либо в Интернете может иметь решающее значение для конфиденциальности.

Little Snitch неоценим в управлении тем, что происходит с вашего компьютера на уровне приложения. Chealion 14 лет назад 1
Little Snitch также позволяет отображать панель мониторинга, которая показывает трафик вверх / вниз для каждого приложения, подключенного к вашему сетевому соединению. Это выглядит так: http://www.obdev.at/Images/littlesnitch/network-monitor-zoomed.jpg chrish 12 лет назад 1
9
kermic
7
Tim

Вы можете пройти часть пути с помощью следующей команды, запущенной из терминала:

sudo lsof |grep TCP | grep ESTAB 

Это перечислит все открытые соединения TCP. В первом столбце перечислены приложения, которые устанавливают соединение, так что вы можете выяснить, кто является вероятным виновником. Пример пары строк вывода может выглядеть так:

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) 

Итак, я вижу, что и Mail, и ssh используют соединения. Если решение не очевидно из этого, вы можете использовать dtrace для получения более подробной информации. В частности, ознакомьтесь с DTrace Tools, некоторые из которых уже установлены на вашем Mac в каталоге / 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 

Я думаю, что вам нужно в вашей ситуации, вероятно, либо tcpsnoop или tcptop, которые, по-видимому, не доступны на Mac по умолчанию, что заставляет меня задаться вопросом, были ли какие-то проблемы с портированием.

Требуется ли здесь sudo? Richard Hoskins 14 лет назад 0
Это для захвата соединений от других пользователей, которые могут устанавливать сетевые соединения. Даже если вы являетесь единственным пользователем, возможно, что некоторые системные учетные записи могут устанавливать сетевые подключения. Tim 14 лет назад 0
7
russian_spy

использование iftop

Шаг 0: установите iftop через MacPorts или Homebrew (это также автоматически установит все зависимости)

sudo port install iftop brew install iftop 

Шаг 1: посмотрите список сетевых «интерфейсов» в вашей системе (по умолчанию iftop использует en0, который в широкополосной сети Cricket дает вам пустой экран)

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

Шаг 2: запускать iftop с разными сетевыми «интерфейсами», пока не работает iftop (ppp0 в моей системе)

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

Шаг 3: выйти из iftop, нажав «q»

Где взять `iftop` на OS X? `sudo: iftop: команда не найдена` Daniel Beck 12 лет назад 1
Запустите "sudo port install iftop" (если у вас установлен macports). Это установит iftop и его зависимости. russian_spy 12 лет назад 0
Благодарю. Это также доступно на Homebrew. Эта информация будет полезна как часть поста ;-) Daniel Beck 12 лет назад 1
Хорошо, мне пришлось использовать другой интерфейс (en1), сначала я получил пустой экран. Кроме того, +1 для доморощенного вместо macports. noio 11 лет назад 0
3
psmith

Nettop is a built in command line tool. You can start it in the Terminal by typing nettop. The default view is a bit too verbose, so I always press c and d keys to see one application per line (c) and see the current bandwidth usage instead of the total network traffic (d). You probably need to maximize the terminal window to see all columns.

More info and screenshots here.