Skip to content

GoTunnel

Download GoTunnel Latest Release Public Beta

Secure TCP tunnels that expose a local service to the internet in seconds.

This repository hosts the prebuilt GoTunnel client binaries for the public beta. Use the official download page for the recommended installer for your platform, or grab a release artifact directly from GitHub.

Beta: these are beta builds. Update anytime with gotunnel update.

Download

Get the latest GoTunnel build from the official download page:

Download GoTunnel

Direct release artifacts are also available below:

Platform Architecture Download
macOS Apple Silicon (M1+) gotunnel-darwin-arm64
macOS Intel gotunnel-darwin-amd64
Linux x86-64 gotunnel-linux-amd64
Linux ARM64 gotunnel-linux-arm64
Windows x86-64 gotunnel-windows-amd64.exe

Or see all builds on the releases page.

Install

macOS (Apple Silicon)

curl -L -o gotunnel https://github.com/bakare-dev/gotunnel-io/releases/latest/download/gotunnel-darwin-arm64
chmod +x gotunnel
sudo mv gotunnel /usr/local/bin/gotunnel
xattr -dr com.apple.quarantine /usr/local/bin/gotunnel   # if Gatekeeper blocks it

(For Intel Macs, swap gotunnel-darwin-arm64 for gotunnel-darwin-amd64.)

Linux (x86-64)

curl -L -o gotunnel https://github.com/bakare-dev/gotunnel-io/releases/latest/download/gotunnel-linux-amd64
chmod +x gotunnel
sudo mv gotunnel /usr/local/bin/gotunnel

(For ARM64, use gotunnel-linux-arm64.)

Windows

Download gotunnel-windows-amd64.exe, then in PowerShell install it to a per-user folder and add that folder to your PATH:

$dir = "$env:LOCALAPPDATA\Programs\gotunnel"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
Move-Item -Force "$HOME\Downloads\gotunnel-windows-amd64.exe" "$dir\gotunnel.exe"
$old = [Environment]::GetEnvironmentVariable("Path","User")
if ($old -notlike "*$dir*") { [Environment]::SetEnvironmentVariable("Path", "$old;$dir", "User") }
$env:Path += ";$dir"
gotunnel version

The $env:Path += ";$dir" line makes gotunnel work in the current window; the SetEnvironmentVariable line makes it stick for new terminals. If gotunnel still isn't found, open a new PowerShell window.

Quick start

Expose a local service (e.g. running on port 3000) through the managed server:

gotunnel --server gotunnel.bakaredev.site --local localhost:3000

The first time you run it on a device, GoTunnel asks for your Gmail address and emails you a one-time code to join the beta (one device per address). After that, the device stays signed in and connects straight away.

You'll get a public https://<random>.gotunnel.bakaredev.site URL forwarding to your local port. Press q or Ctrl-C to stop.

Update

Upgrade to the latest release in place:

gotunnel update

Commands

gotunnel --server <host> --local localhost:<port>   Start a tunnel (client)
gotunnel update                                     Update to the latest release
gotunnel version                                    Show the installed version
gotunnel help                                       Show all options

Documentation

GoTunnel isn't fully open source, but the docs below explain how it works so you can understand what you're running before you trust it with your traffic.

Document What it covers
Self-Hosting Run your own GoTunnel server on a VPS instead of the managed host
Architecture How the client, server, tunnels, and security model fit together
Protocol The binary wire protocol: frames, message types, and the session state machine
Changelog What changed in each release

Feedback and issues

Found a bug or have a request? Open an issue. If GoTunnel is useful to you, consider starring the repo to follow releases.