Simple HTTP tunneling using SSH, authorized using github public keys.
Self-hosted ngrok alternative.
Visit tnnl.ink to see it in action.
ssh <github-username>@localhost -p 2222 -R 80:localhost:<local-port>
- TCP tunnel
- Custom sub-domain
- Install Go
- Get the code
go get github.com/liljebergxyz/tnnlink
- Compile & Install
go install github.com/liljebergxyz/tnnlink
- Generate a passwordless host key
ssh-keygen -t rsa -b 4096 -f host_rsa
- Create a config file
[http]
addr = ":8080"
sslAddr = ":4433"
mainDomain = ".localtest.me/"
ssl = false
cert = "./cert.pem"
key = "./key.pem"
[ssh]
addr = ":2222"
key = "./host_rsa"
whitelist = ""
- Launch
tnnlink --config="./config.toml"
The whitelist config entry is a comma-seperated list of github usernames
- This software has not been audited in anyway and was a fun weekend project I intend to continue supporting, but it is my first time writing a full application in Go for actual every-day use.
- SSL is not activated by default and you are expected to generate a letsencrypt wildcard certificate in order to utilize it