
Лучшее приложение для macOS, позволяющее видеть каждый пакет сети на вашем Mac. Альтернатива Wireshark.
# TCP Viewer <p align="center"> <img src="https://raw.githubusercontent.com/proxymanapp/tcpviewer/main/README.assets/hero.png" alt="TCP Viewer. Более простая альтернатива Wireshark для разработчиков на Mac." width="900"> </p> <p align="center"> Простой нативный просмотрщик пакетов для Mac. </p> <p align="center"> <a href="https://tcpviewer.proxyman.com">Сайт</a> · <a href="https://api-tcpviewer.proxyman.com/api/releases/download/tcpviewer.dmg">Скачать</a> · <a href="https://tcpviewer.proxyman.com/docs/">Документация</a> · <a href="https://github.com/ProxymanApp/TCPViewer/releases">Релизы</a> </p> TCP Viewer захватывает и читает сетевые пакеты на macOS. Для захвата используется системный `libpcap`, а для глубокого анализа пакетов — библиотеки Wireshark. ## Возможности - Нативное приложение для macOS, созданное с использованием AppKit - Построено на базе библиотек Wireshark, альтернатива Wireshark - Захват трафика в реальном времени. - Группировка пакетов по приложению, домену или IP-адресу. - Фильтрация TCP, UDP, DNS, HTTP, TLS, WebSocket и других протоколов. - Просмотр полей протоколов и необработанных байтов. - Открытие файлов PCAP и PCAPNG. - Отслеживание потоков TCP и UDP. - Экспорт пакетов в формате PCAP или PCAPNG. - Запросы к AI-агенту о вашем захвате с помощью TCP Viewer MCP. - Автоматизация захвата, вкладок, разделённых панелей, фильтров, статистики, отслеживания TCP/UDP и сравнения пакетов с помощью [`tcpviewer-cli`](https://github.com/proxymanapp/tcpviewer/blob/main/CLI.md) или [MCP](https://github.com/proxymanapp/tcpviewer/blob/main/MCP.md). - Просмотр полного исходного кода. ### Простой захват пакетов - Выберите сетевой интерфейс. - Запуск и остановка одним щелчком. - Насыщенные захваты остаются удобными для чтения. [](https://tcpviewer.proxyman.com/demo/main-demo.mp4) [Посмотреть видео захвата в реальном времени](https://tcpviewer.proxyman.com/demo/main-demo.mp4) ### TCP Viewer MCP - Подключите TCP Viewer к Codex или другому MCP-клиенту. - Проверьте статус захвата. - Просмотрите список сетевых интерфейсов. - Находите пакеты с помощью простого запроса. - Доступно в TCP Viewer PRO. <p align="center"> <img src="https://raw.githubusercontent.com/proxymanapp/tcpviewer/main/README.assets/tcp-viewer-mcp.jpg" alt="Codex запрашивает у TCP Viewer MCP статус захвата, интерфейсы и пакеты" width="760"> </p> ### Открытие файлов захвата - Перетащите файл PCAP или PCAPNG. - Просматривайте пакеты сразу же. - Используйте тот же вид, что и при захвате в реальном времени. [](https://tcpviewer.proxyman.com/demo/open-pcap.mp4) [Посмотреть видео предпросмотра файлов](https://tcpviewer.proxyman.com/demo/open-pcap.mp4) ### Отслеживание потоков TCP и UDP - Восстановите TCP-сессию или просмотрите UDP-датаграммы в порядке захвата. - Откройте поток из меню пакета или меню «Инструменты». - Показывайте оба направления вместе. - Показывайте только данные клиента или сервера. - Переключайтесь между текстом и hex. - Ищите по потоку. - Возвращайтесь к исходному пакету. [](https://tcpviewer.proxyman.com/demo/follow-tcp.mp4) [Посмотреть видео отслеживания TCP-потока](https://tcpviewer.proxyman.com/demo/follow-tcp.mp4) ### Группировка трафика - Группировка пакетов по приложению. - Группировка пакетов по домену. - Группировка пакетов по IP-адресу. - Переходите к нужному трафику. [](https://tcpviewer.proxyman.com/demo/group-by-app-domains.mp4) [Посмотреть видео группировки трафика](https://tcpviewer.proxyman.com/demo/group-by-app-domains.mp4) ### Фильтры протоколов - Используйте быстрые фильтры для распространённых протоколов. - Комбинируйте фильтры с текстовым поиском. - Быстро сосредоточьтесь на нужных пакетах. [](https://tcpviewer.proxyman.com/demo/advanced-filter.mp4) [Посмотреть видео фильтрации по протоколам](https://tcpviewer.proxyman.com/demo/advanced-filter.mp4) ### Экспорт захватов - Экспорт всех, отфильтрованных или выбранных пакетов. - Сохранение в формате PCAP или PCAPNG. - Открытие результата в других инструментах для работы с пакетами. <p align="center"> <img src="https://raw.githubusercontent.com/proxymanapp/tcpviewer/main/README.assets/export-captures.png" alt="Экспорт выбранных пакетов в формате PCAP или PCAPNG" width="620"> </p> ### Детали пакетов - Просмотр деревьев протоколов уровня Wireshark. - Изучение имён и значений полей. - Сопоставление полей с необработанными байтами. - Поиск по деталям пакета. [](https://tcpviewer.proxyman.com/demo/detail-packet.mp4) [Посмотреть видео с деталями пакетов](https://tcpviewer.proxyman.com/demo/detail-packet.mp4) ## Открытый исходный код - Лицензировано под GPL-2.0-or-later. - Просмотрите конвейер захвата. - Просмотрите декодирование пакетов. - Просмотрите нативный интерфейс macOS. - Сообщайте о проблемах или отправляйте pull request.  ## Создано командой Proxyman - Создано командой, стоящей за [Proxyman](https://proxyman.com) и [Tiny Shield](https://tinyshield.proxyman.com/). - Разработано для macOS. - Ориентировано на приватность и понятную отладку сети.  ## Требования Для запуска TCP Viewer: - Mac на Apple Silicon. - macOS 15 или новее. Для сборки TCP Viewer: - Xcode 16 или новее. - Git. - CMake, Ninja, Meson, pkg-config и autotools. ```bash brew install cmake ninja meson pkg-config autoconf automake libtool ``` ## Настройка Клонируйте с подмодулями. Затем выполните начальную настройку закреплённой зависимости Wireshark. ```bash git clone --recurse-submodules <repo-url> cd TCPViewer cp Config/TCPViewer.local.xcconfig.example Config/TCPViewer.local.xcconfig ./scripts/bootstrap-wireshark.sh ``` Уже клонировали без подмодулей? ```bash git submodule update --init --recursive ./scripts/bootstrap-wireshark.sh ``` Скрипты начальной настройки: - Сначала запускают `scripts/bootstrap-wireshark-deps.sh`. - Собирают runtime-библиотеки Wireshark из исходного кода. - Записывают их в `Vendor/.install/wireshark-deps`. - Используют macOS 15 в качестве целевой версии развёртывания. - Используют Homebrew только для инструментов сборки. - Никогда не копируют dylib-файлы из бутылок Homebrew в релиз. Держите локальные значения подписи, appcast, Sparkle, Sentry и релиза вне Git. Используйте `Config/TCPViewer.local.xcconfig`, `.env`, переменные окружения или инструменты на базе Keychain. ## Запуск В Xcode: 1. Откройте `TCPViewer.xcodeproj`. 2. Выберите схему `TCPViewer`. 3. Выберите `My Mac`. 4. Нажмите Run. Сборка из командной строки: ```bash xcodebuild -project TCPViewer.xcodeproj -scheme TCPViewer build ``` Если Xcode запрашивает подпись, выберите команду разработчиков для `TCPViewer` и `PcapPlusPlusCore`. ## Тестирование ```bash xcodebuild test \ -project TCPViewer.xcodeproj \ -scheme TCPViewer \ -destination 'platform=macOS' ``` ## Релиз Скрипт релиза может: - Собрать и нотаризовать приложение. - Подписать обновление Sparkle. - Загрузить файлы в Cloudflare R2. - Опубликовать релиз в бэкенде. Первоначальная настройка: ```bash npm install bundle install gh auth login ``` Создайте локальный `.env` из `.env.example`. Добавьте необходимые значения для релиза. Никогда не коммитьте реальные секреты. Используйте `#` для комментариев в `.env`. `sentry-cli` не принимает комментарии `//`. Для production-релиза добавьте соответствующую запись в `ReleaseNote.json`. Затем выполните: ```bash npm run release ``` При запросе выберите `beta` или `production`. Production-релизы также: - Создают appcast для Sparkle. - Отправляют тег `v<version>`. - Публикуют релиз на GitHub. Чтобы создать только pull request для Homebrew Cask для последнего публичного production-релиза, выполните `make build` и выберите `Homebrew Cask PR from latest release`. Также можно выполнить прямую команду: ```bash npm run release:homebrew ``` Это проверяет публичный DMG на соответствие ресурсу релиза GitHub, отправляет ветку в `ProxymanApp/homebrew-cask` и открывает pull request для внесения вклада в `Homebrew/homebrew-cask`. Артефакты записываются в: ```bash ~/Desktop/tcpviewer-production/ ``` ## Лицензия TCP Viewer лицензирован под GPL-2.0-or-later. Это соответствует использованию библиотек Wireshark. - См. `COPYING` для полного текста GPL. - См. `THIRD_PARTY_NOTICES.md` для уведомлений третьих сторон. - См. `SOURCE_CODE_OFFER.md` для условий предоставления исходного кода бинарных релизов. ## Благодарности - [Wireshark](https://www.wireshark.org/) обеспечивает разбор пакетов. - [HexFiend](https://github.com/HexFiend/HexFiend) обеспечивает встроенный hex-просмотрщик. Wireshark является товарным знаком Wireshark Foundation. TCP Viewer не связан с Wireshark Foundation и не одобрен ею.