/termshark

A terminal UI for tshark, inspired by Wireshark

Primary LanguageGoMIT LicenseMIT

Termshark

A terminal user-interface for tshark, inspired by Wireshark.

V2 is out now with stream reassembly, dark-mode and more! Here's the ChangeLog.

demo2

If you're debugging on a remote machine with a large pcap and no desire to scp it back to your desktop, termshark can help!

Table of Contents

Features

  • Read pcap files or sniff live interfaces (where tshark is permitted).
  • Inspect each packet using familiar Wireshark-inspired views
  • Filter pcaps or live captures using Wireshark's display filters
  • Reassemble and inspect TCP and UDP flows
  • Copy ranges of packets to the clipboard from the terminal
  • Written in Golang, compiles to a single executable on each platform - downloads available for Linux, macOS, FreeBSD, Android (termux) and Windows

tshark has many more features that termshark doesn't expose yet! See What's Next.

Install Packages

Termshark is pre-packaged for the following platforms: Arch Linux, Debian (unstable), FreeBSD, Homebrew, Kali Linux, NixOS, SnapCraft, Termux (Android) and Ubuntu.

Building

Termshark uses Go modules, so it's best to compile with Go 1.11 or higher. Set GO111MODULE=on then run:

go install github.com/gcla/termshark/v2/cmd/termshark

Then add ~/go/bin/ to your PATH.

For all packet analysis, termshark depends on tshark from the Wireshark project. Make sure tshark is in your PATH.

Quick Start

Inspect a local pcap:

termshark -r test.pcap

Capture ping packets on interface eth0:

termshark -i eth0 icmp

Run termshark -h for options.

Downloads

Pre-compiled executables are available via Github releases. Or download the latest build from the master branch - Build Status.

User Guide

See the termshark user guide (and my best guess at some FAQs)

Dependencies

Termshark depends on these open-source packages:

  • tshark - command-line network protocol analyzer, part of Wireshark
  • tcell - a cell based terminal handling package, inspired by termbox
  • gowid - compositional terminal UI widgets, inspired by urwid, built on tcell

Note that tshark is a run-time dependency, and must be in your PATH for termshark to function. Version 1.10.2 or higher is required (approx 2013).

Contributors

Thanks to everyone that's contributed ports, patches and effort!

Ross Jacobs
Ross Jacobs

πŸ’»πŸ› πŸ““πŸ“–πŸ€”
Hongarc
Hongarc

πŸ“–
Ryan Steinmetz
Ryan Steinmetz

πŸ“¦
Nicolai SΓΈborg
Nicolai SΓΈborg

πŸ“¦
Elliott Sales de Andrade
Elliott Sales de Andrade

πŸ’»
Romanos
Romanos

πŸ’»
Denys
Denys

πŸ›
jerry73204
jerry73204

πŸ“¦
Jon Knapp
Jon Knapp

πŸ“¦
Mario Harjac
Mario Harjac

πŸ“¦
Andrew Benson
Andrew Benson

πŸ›
sagis-tikal
sagis-tikal

πŸ›
punkymaniac
punkymaniac

πŸ›
msenturk
msenturk

πŸ›
Sandor SzΓΌcs
Sandor SzΓΌcs

πŸ›
Dawid Dziurla
Dawid Dziurla

πŸ› πŸ“¦
jJit0
jJit0

πŸ›
inzel
inzel

πŸ›
thejerrod
thejerrod

πŸ€”
gdluca
gdluca

πŸ›
Patrick Winter
Patrick Winter

πŸ“¦
Robert Larsen
Robert Larsen

πŸ€” πŸ““
MinJae Kwon
MinJae Kwon

πŸ›
the-c0d3r
the-c0d3r

πŸ€”
Gisle Vanem
Gisle Vanem

πŸ›
hook
hook

πŸ›
Lennart Koopmann
Lennart Koopmann

πŸ€”
Fernandez, ReK2
Fernandez, ReK2

πŸ›
mazball
mazball

πŸ€”
wfailla
wfailla

πŸ€”
荣怑
荣怑

πŸ€”
thebyrdman-git
thebyrdman-git

πŸ›
Clemens Mosig
Clemens Mosig

πŸ›
Michael Rash
Michael Rash

πŸ““
joelparker
joelparker

πŸ““
Dragos Maftei
Dragos Maftei

πŸ€”
Matthew Giassa
Matthew Giassa

πŸ€”

Contact

License

License: MIT