Skip to content

wikicensorship/tracevis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TraceVis

Traceroute with any packet. Visualize the routes. Discover Middleboxes and Firewalls

CodeQL Dockerise unittest

TraceVis is a research project whose main goal is to find middleboxes. Where a packet is tampered with or blocked. This tool also has other features such as downloading and visualizing traceroute data from RIPE Atlas probes.

example graph

Install and build

Note:

You need to install npcap in Windows. If you already have programs like Wireshark or Nmap/Zenmap, they will install this automatically.

(Not required on Linux.)

Using docker:

Pull docker image from github container registry:
docker pull ghcr.io/wikicensorship/tracevis
Or clone project and build docker image on your machine:
docker build -t tracevis .

Directly:

Download or clone project and then install Python dependencies:
python3 -m pip install -r requirements.txt

How to use

Default DNS trace:
python3 ./tracevis.py --dns

or with docker image:

docker run ghcr.io/wikicensorship/tracevis --dns

or trace in paris mode:

python3 ./tracevis.py --dns --paris
Packet trace:
python3 ./tracevis.py --packet

or with docker image:

docker run -it ghcr.io/wikicensorship/tracevis --packet
trace with a config file:
python3 ./tracevis.py --config ./samples/quicv0xbabababa.conf

or you can override:

python3 ./tracevis.py --config ./samples/syn.conf -i "75.2.60.5,99.83.231.61"

(There is more in ./samples: Client-Hello, NTP, HTTP-GET, and more QUIC packets)

Download traceroute data from a RIPE Atlas probe:
python3 ./tracevis.py --ripe [probe-id]

or with docker image:

docker run \
    --mount type=bind,source=/path/to/results,target=/tracevis_data/ \
    ghcr.io/wikicensorship/tracevis --ripe [probe-id]
# OR
docker run \
    -v /path/to/results/:/tracevis_data/ \
    ghcr.io/wikicensorship/tracevis --ripe [probe-id]
Visualize a json file:
python3 ./tracevis.py --file ./path/to/file.json

or with docker image:

docker run \
    --mount type=bind,source=/path/to/results,target=/tracevis_data/ \
    ghcr.io/wikicensorship/tracevis --file /tracevis_data/file.json
# OR
docker run \
    -v /path/to/results/:/tracevis_data/ \
    ghcr.io/wikicensorship/tracevis --file /tracevis_data/file.json
See the help message:
python3 ./tracevis.py -h

or with docker image:

docker run ghcr.io/wikicensorship/tracevis

Examples:

example graph

example cli

example cli

example cli

example graph

example graph

example graph