All Projects → function61 → holepunch-client

function61 / holepunch-client

Licence: Apache-2.0 license
Totally self-contained SSH reverse tunnel written in Go

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to holepunch-client

unlock-luks-partition
Unlock a LUKS partition via SSH
Stars: ✭ 31 (-51.56%)
Mutual labels:  reverse-tunnel
jumper
Automated Reverse TCP tunneling using a digitalocean instance and aploium's shootback repo (https://github.com/aploium/shootback)
Stars: ✭ 14 (-78.12%)
Mutual labels:  ssh-tunnel
vex
reverse HTTP proxy tunnel via secure SSH connections.
Stars: ✭ 20 (-68.75%)
Mutual labels:  ssh-tunnel
tunman
Comprehensive solution for SSH tunnels - respawning, healthchecking/monitoring
Stars: ✭ 43 (-32.81%)
Mutual labels:  ssh-tunnel
holepunch
Holepunch API
Stars: ✭ 41 (-35.94%)
Mutual labels:  reverse-tunnel
Fenix
A simple and visual static web server with collaboration features.
Stars: ✭ 1,559 (+2335.94%)
Mutual labels:  ssh-tunnel
Glider
glider is a forward proxy with multiple protocols support, and also a dns/dhcp server with ipset management features(like dnsmasq).
Stars: ✭ 1,710 (+2571.88%)
Mutual labels:  ssh-tunnel
Mole
CLI application to create ssh tunnels focused on resiliency and user experience.
Stars: ✭ 1,520 (+2275%)
Mutual labels:  ssh-tunnel
Algo
Set up a personal VPN in the cloud
Stars: ✭ 24,275 (+37829.69%)
Mutual labels:  ssh-tunnel
rsp
Rapid SSH Proxy
Stars: ✭ 223 (+248.44%)
Mutual labels:  ssh-tunnel
libssh2-tunnel-example
Example of permanent SSH tunnel using libssh2
Stars: ✭ 18 (-71.87%)
Mutual labels:  ssh-tunnel
sshtun
Go package to create SSH tunnels
Stars: ✭ 62 (-3.12%)
Mutual labels:  ssh-tunnel
ssh tunnel
No description or website provided.
Stars: ✭ 28 (-56.25%)
Mutual labels:  ssh-tunnel

Build status Download

What?

UPDATE: You might be best served by mesh VPN like Tailscale (or WireGuard), they can even expose subnets.

This is a standalone binary for creating a semi-persistent (client tries its best to detect errors, use keepalives and do reconnects) SSH reverse tunnel.

You can use the native OpenSSH server as a server, or function61/holepunch-server which brings some fancier optional features like purely-over-HTTP operation.

Failed connections are automatically retried and includes a helper to add this service to system startup (Systemd).

Usage

Download a suitable binary (we support Linux/AMD64, Linux/ARM and Windows/AMD64) for you from the download link.

First, generate a keypair for you:

$ ssh-keygen -t ecdsa -b 521 -C "my awesome private key" -f id_ecdsa

Copy content of id_ecdsa.pub to your SSH server's authorized_keys file.

Write holepunch.json (see holepunch.example.json). You can use this with a vanilla SSH server, but if you're using function61/holepunch-server, you can also connect via WebSocket if you use format like ws://example.com/_ssh as server address (or wss:// for https).

If you use holepunch-server, the default username is hp, but it can be overridden (see the server documentation).

Run client:

$ ./holepunch connect

To exit, type Ctrl + c for graceful stop.

To make holepunch automatically start on system startup (and restart on crashes):

$ ./holepunch write-systemd-file
Wrote unit file to /etc/systemd/system/holepunch.service
Run to enable on boot & to start now:
        $ systemctl enable holepunch
        $ systemctl start holepunch
        $ systemctl status holepunch

How to build & develop

How to build & develop (with Turbo Bob, our build tool). It's easy and simple!

If you prefer to not install Turbo Bob, standard Go build commands work (instructions here).

Credits

Hugely inspired by codref's gist

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].