Skip to main content

A top-like tunnel manager

Project description

tunneltop

A tunnel manager in the familiar top style written with ncurses and asyncio.

Image

Install

pipx install tunneltop

what it is

  • a simple tunnel manager written in python that uses the standard library only(standard library only in python 3.11)
  • it starts and manages the tunnels for you
  • lets the user interactively manage the tunnels as well
  • will reload the config file if it receives a SIGHUP
  • it is intentionally written as simple and tunnel-agnostic
  • may or may not work on windows(let me know if you test it on windows)

toml file

tunneltop expects its config file to be at at $HOME/.tunneltoprc.

You can see an example config file below:

[color]
header_fg = 4
header_bg = 0
active_fg = 23
active_bg = 0
disabled_fg = 8
disabled_bg = 0
timeout_fg = 63
timeout_bg = 0
unknown_fg = 38
unknown_bg = 0
down_fg = 208
down_bg = 0
box_fg = 22
box_bg = 0

[tunnel.socks5ir]
address = "127.0.0.1"
port = 9997
command = "autossh -M 0 -N -D 9997 -o ServerAliveInterval=180 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes -l debian -p 22 100.100.100.101"
test_command = 'curl -s -o /dev/null -s -w "%{http_code}" -k -I -4 --socks5 socks5h://127.0.0.1:9997 https://icanhazip.com'
test_command_result = "200"
test_interval = 300
test_timeout = 10
auto_start = false

[tunnel.socks5_3]
address = "127.0.0.1"
port = 9995
command = "autossh -M 0 -N -D 0.0.0.0:9995 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o VerifyHostKeyDNS=no -o ServerAliveInterval=180 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes -l debian -p 2022 100.100.100.100"
test_command = 'curl -s -o /dev/null -s -w "%{http_code}" -k -I -4 --socks5 socks5h://127.0.0.1:9995 https://icanhazip.com'
test_command_result = "200"
test_interval = 300
test_timeout = 10
auto_start = true

The tunnel names must be unique.

address

Displays the address at which the tunnel is available at. It is a display-only option.

port

Displays the port at which the tunnel is available at. It is a display-only option.

command

The command used to start the tunnel.

test_command

The command used to test the state of the tunnel.

test_command_result

The expected result of the test command.

test_interval

How often should the test_command be run.

test_timeout

How long before the test is considered to have timed out.

auto_start

Whether to automatically start this tunnel on startup.

keybindings

j and k move you up and down.

g and Gmove you to the first or last tunnel.

s toggles a tunnel from enabled to disabled or vice versa.

r restarts a tunnel.

t runs the test right now.

pgup and ctrl-b move you up a page.

pgdown and ctrl-f move you down a page.

ctrl-u and ctrl-d move you up and down half a page respectively.

To quit send a SIGINT or a SIGTERM. I'm working on improving this of course.

tunneltop will reload its config file upon receiving a SIGHUP and apply the changes immediately if there are any.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tunneltop-0.4.6.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tunneltop-0.4.6-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file tunneltop-0.4.6.tar.gz.

File metadata

  • Download URL: tunneltop-0.4.6.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.5 Linux/6.12.33_1

File hashes

Hashes for tunneltop-0.4.6.tar.gz
Algorithm Hash digest
SHA256 4c9bf203390951c1187c64d4f84a88c51b519db4860c8511d97a5312eccd1f18
MD5 c639f198940a03b932d52d292f96243f
BLAKE2b-256 e1e39a8cafd6deaefa01bf58fc20437041cf0e391ce06e3c57e82bb97ade56f5

See more details on using hashes here.

File details

Details for the file tunneltop-0.4.6-py3-none-any.whl.

File metadata

  • Download URL: tunneltop-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.5 Linux/6.12.33_1

File hashes

Hashes for tunneltop-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d1d899849c7b1b8ccfadb004a5c636e31aa4442a36b72835ab74170ccee25be4
MD5 03f773d614d2b6dbef81defcf6ef2dfa
BLAKE2b-256 743db7af0715181f3fdd1cc417410bf27f51b70958f443c5935f87236f3b8983

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page