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

19

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

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

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

Джон Хопкинс
источник

Ответы:

17

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

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

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

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

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?
Ричард Хоскинс
Это для захвата соединений от других пользователей, которые могут устанавливать сетевые соединения. Даже если вы являетесь единственным пользователем, возможно, что некоторые системные учетные записи могут выполнять сетевые подключения.
Тим
7

использование 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»

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

Nettop - это встроенный инструмент командной строки. Вы можете запустить его в Терминале, набрав nettop. Вид по умолчанию немного слишком многословен, поэтому я всегда нажмите cи dключи , чтобы увидеть одно приложение в каждой строке ( c) и увидеть текущее использование полосы пропускания вместо общего сетевого трафика ( d). Вам, вероятно, нужно развернуть окно терминала, чтобы увидеть все столбцы.

Больше информации и скриншоты здесь .

Псмит
источник