В Mac OS X как я могу отслеживать, что использует мое интернет-соединение?
У меня относительно ограниченное широкополосное соединение (я живу в милях от ближайшей станции обмена), и время от времени доступ к сети (но больше ничего) замедляется до почти полного сканирования.
Из небольшого количества программного обеспечения для мониторинга я знаю, что соединение используется довольно интенсивно, что объясняет это, но я не знаю, что его использует. Конечно, есть много вещей, которые могут (в наши дни существуют десятки приложений, которые либо регулярно, либо нечасто проверяют данные или загружают обновления), но как я могу узнать?
Я рад заплатить (небольшую сумму) денег, если это необходимо, хотя в этом случае я бы предпочел, чтобы я просто что-то погуглил.
5 ответов
Little Snitch позволяет вам выборочно предоставлять доступ в Интернет программам, чтобы вы могли решить, с какими номерами портов и именами хостов разрешено разговаривать приложению.
Это очень удобный персональный брандмауэр, и я первым делом установлю его на новый Mac. Запрет приложениям звонить домой или делать что-либо в Интернете может иметь решающее значение для конфиденциальности.
Как насчет iftop
? Получить через:
использование 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"
Вы можете пройти часть пути с помощью следующей команды, запущенной из терминала:
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 по умолчанию, что заставляет меня задуматься, были ли какие-то проблемы с портированием.
Nettop - это встроенный инструмент командной строки. Вы можете запустить его в Терминале, набрав nettop
, Представление по умолчанию слишком многословно, поэтому я всегда нажимаю c
а также d
ключи, чтобы увидеть одно приложение на строку ( c
) и увидеть текущее использование полосы пропускания вместо общего сетевого трафика ( d
). Вам, вероятно, нужно развернуть окно терминала, чтобы увидеть все столбцы.
Больше информации и скриншоты здесь .