ssh tunneling made easy.
Tunlr is all about setting up tunnels to your services running on internal networks via a jumphost using a elegant CLI:
tunlr $ connect
? Choose a service: (Use arrow keys)
❯ grafana
mssql-databaseIt uses autossh in the background which ensures your connection is kept steady.
Tunlr uses tunlr.json to list and connect to your services. Example:
[
{
"id": 10000,
"name": "grafana",
"host": "tools-server",
"portLocal": 3002,
"portRemote": 80
},
{
"id": 20000,
"name": "mssql-database",
"host": "database-server",
"portLocal": 1433,
"portRemote": 1433
}
]Note: The
idis used internally as monitoring port forautossh.
Using Docker makes it super easy to get up and running with the CLI. Given the example configuration here above:
$ docker run --rm -p 1433:1433 -p 3002:3002 -v ~/.ssh/:/root/ssh:ro -it bjerkins/tunlrThe internal ssh config file includes all config files under conf.d at the mounted path. This is convenient as to not mix your local configuration with the internal one.
Example of ssh configuration:
$ cat ~/.ssh/conf.d/config-aws
Host jumphost
User username
HostName the.jumphost.server.address
IdentityFile ~/.ssh/key.file
Host database-server
User username
HostName the.database.server.address
IdentityFile ~/.ssh/key.file
ProxyJump jumphost
Host tools-server
User username
HostName the.tools.server.address
IdentityFile ~/.ssh/key.file
ProxyJump jumphost