A top-like tunnel manager
Project description
tunneltop
A tunnel manager in the familiar top style written with ncurses and asyncio.
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 G
move 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b879370c98d15e026d5769d8767e8ebe31ed17e5109f3f45a3d207cb1bc0878 |
|
MD5 | 36af7a714f1a2a0e994df1642f5bf2b6 |
|
BLAKE2b-256 | b3d8de713395b6e81fc21586a96b456ea024c4d293c2bc59ebe4f1430a021493 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebd3344f6e2a510736bdb9c2462a8b7805a4ab42e61fbc31b8d0a33f51021348 |
|
MD5 | 6db537ad4daec273447f1747a30fbe6a |
|
BLAKE2b-256 | 2baa105edc7ca6db215351de46fd96e8ac171955aaa9f473af20f9a501f08a44 |