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.5.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

tunneltop-0.4.5-py3-none-any.whl (34.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tunneltop-0.4.5.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.1 Linux/6.6.47_1

File hashes

Hashes for tunneltop-0.4.5.tar.gz
Algorithm Hash digest
SHA256 8b879370c98d15e026d5769d8767e8ebe31ed17e5109f3f45a3d207cb1bc0878
MD5 36af7a714f1a2a0e994df1642f5bf2b6
BLAKE2b-256 b3d8de713395b6e81fc21586a96b456ea024c4d293c2bc59ebe4f1430a021493

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tunneltop-0.4.5-py3-none-any.whl
  • Upload date:
  • Size: 34.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.1 Linux/6.6.47_1

File hashes

Hashes for tunneltop-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ebd3344f6e2a510736bdb9c2462a8b7805a4ab42e61fbc31b8d0a33f51021348
MD5 6db537ad4daec273447f1747a30fbe6a
BLAKE2b-256 2baa105edc7ca6db215351de46fd96e8ac171955aaa9f473af20f9a501f08a44

See more details on using hashes here.

Supported by

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