All Projects → faejr → tnnlink

faejr / tnnlink

Licence: GPL-3.0 license
Simple HTTP tunnel using SSH remote port forwarding

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to tnnlink

Lanproxy
lanproxy是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面、http代理、https代理、socks5代理...)。技术交流QQ群 678776401
Stars: ✭ 4,784 (+22680.95%)
Mutual labels:  tunnel, ngrok
Lunnel
fast reverse-proxy
Stars: ✭ 293 (+1295.24%)
Mutual labels:  tunnel, ngrok
Docker Ngrok
An Ngrok v2 container based on wizardapps/ngrok and fnichol/ngrok
Stars: ✭ 368 (+1652.38%)
Mutual labels:  tunnel, ngrok
Tcptunnel
将本地内网服务器映射到公网。
Stars: ✭ 72 (+242.86%)
Mutual labels:  tunnel, ngrok
Sish
HTTP(S)/WS(S)/TCP Tunnels to localhost using only SSH.
Stars: ✭ 2,087 (+9838.1%)
Mutual labels:  tunnel, ngrok
Ngrok
Expose your localhost to the web. Node wrapper for ngrok.
Stars: ✭ 1,897 (+8933.33%)
Mutual labels:  tunnel, ngrok
Tunnel
Use Ngrok In Termux With Advanced Options
Stars: ✭ 133 (+533.33%)
Mutual labels:  tunnel, ngrok
Pyngrok
A Python wrapper for ngrok
Stars: ✭ 159 (+657.14%)
Mutual labels:  tunnel, ngrok
tunman
Comprehensive solution for SSH tunnels - respawning, healthchecking/monitoring
Stars: ✭ 43 (+104.76%)
Mutual labels:  tunnel
fuso
一款体积小, 快速, 稳定, 高效, 轻量的内网穿透, 端口转发工具 支持多连接,级联代理,传输加密 (A small volume, fast, stable, efficient, and lightweight intranet penetration, port forwarding tool supports multiple connections, cascading proxy, and transmission encryption)
Stars: ✭ 1,132 (+5290.48%)
Mutual labels:  tunnel
edgevpn
⛵ The immutable, decentralized, statically built p2p VPN without any central server and automatic discovery! Create decentralized introspectable tunnels over p2p with shared tokens
Stars: ✭ 223 (+961.9%)
Mutual labels:  tunnel
bmx7
BMX7 / SEMTOR Securely Entrusted Mesh Routing Protocol
Stars: ✭ 55 (+161.9%)
Mutual labels:  tunnel
django-facebook-messenger-bot-tutorial
Code for my Tutorial on building a Facebook Messenger bot using Django/Python
Stars: ✭ 71 (+238.1%)
Mutual labels:  ngrok
learn-ngrok
☁️ Learn how to use ngrok to share access to a Web App/Site running on your "localhost" with the world!
Stars: ✭ 50 (+138.1%)
Mutual labels:  ngrok
tlstun
A socks tunnel client and server using websockets over http and tls
Stars: ✭ 36 (+71.43%)
Mutual labels:  tunnel
alexa-typescript-starter
This is a simple starter project for Alexa skills using Typescript.
Stars: ✭ 38 (+80.95%)
Mutual labels:  ngrok
ap-kcp
用于穿透恶劣网络环境的高性能可靠传输协议,基于 KCP 优化和修改,使用 Rust 实现
Stars: ✭ 121 (+476.19%)
Mutual labels:  tunnel
Pshell
ICMP/IP tunnel manager for Linux.
Stars: ✭ 24 (+14.29%)
Mutual labels:  tunnel
dvsync
🐳️ Easy and secure way to copy data between Docker volumes, even across data centers
Stars: ✭ 59 (+180.95%)
Mutual labels:  tunnel
knx-go
KNX clients and protocol implementation in Go
Stars: ✭ 62 (+195.24%)
Mutual labels:  tunnel

tnnlink

Build Status

Simple HTTP tunneling using SSH, authorized using github public keys.

Self-hosted ngrok alternative.

Visit tnnl.ink to see it in action.

Connecting

ssh <github-username>@localhost -p 2222 -R 80:localhost:<local-port>

Planned features (no order)

  • TCP tunnel
  • Custom sub-domain

Dependencies

Usage

  1. Install Go
  2. Get the code
go get github.com/liljebergxyz/tnnlink
  1. Compile & Install
go install github.com/liljebergxyz/tnnlink
  1. Generate a passwordless host key
ssh-keygen -t rsa -b 4096 -f host_rsa
  1. 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 = ""
  1. Launch
tnnlink --config="./config.toml"

Explanation of whitelist

The whitelist config entry is a comma-seperated list of github usernames

Notes

  1. 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.
  2. SSL is not activated by default and you are expected to generate a letsencrypt wildcard certificate in order to utilize it
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].