7 releases

0.3.3 Apr 19, 2022
0.3.2 Feb 2, 2022
0.3.1 Oct 28, 2021
0.2.1 Sep 27, 2021
0.1.0 Aug 7, 2021

#2719 in Command line utilities

Download history 4/week @ 2024-02-25 1/week @ 2024-03-10 105/week @ 2024-03-31

106 downloads per month

GPL-3.0-or-later OR copyleft-next-0.3.1

26KB
264 lines

multi-tunnel

multi-tunnel allows starting and managing SSH tunnels in a straightforward manner. Create a TOML configuration file, start the service and you're all set. If you change the configuration, send a SIGHUP (aka systemctl reload) and it'll start/stop tunnels as necessary.

Tunnels that get stopped or killed for any reason will be restarted after a 5-second delay. Every 60s it will SSH into the host to run health checks to make sure the ports are accessible over HTTP. Note that curl must be installed on the remote host.

Configuration

For example, to tunnel httpd running on port 8080 to a remote server on 8000 and nginx running on port 8081 to 8001 on the remote server:

connection = "remote.host"

[httpd]
local = 8080
remote = 8000

[nginx]
local = 8081
remote = 8001

The name is arbitrary and is used only for log entries.

Monitoring

A Prometheus endpoint to scrape is available at http://0.0.0.0:46581/metrics.

License

multi-tunnel is dual licensed under the GPL v3 or later OR copyleft-next 0.3.1, see LICENSES/.

Dependencies

~11–20MB
~267K SLoC