gotunnel is a high-performance, secure, and easy-to-use intranet penetration (Tunnel/Proxy) tool written in Go. Heavily inspired by frp and ngrok. It enables safe remote access and management of internal network services via a cloud relay server. Supports HTTP, TCP, SSH and more.
- ⚡ Simple deployment, minimal configuration, fast relay
- 🔒 Secure token-based authentication for all traffic
- 🔁 Heartbeat & health check, auto online/offline
- 🏷️ Multi-port & multi-client, support clustered mappings
- 🔧 Flexible config, easy YAML manage
- 📝 English/Chinese i18n logs, friendly debugging
- 🖥️ Cross-platform build: Linux, Mac, Windows (x64)
- 📦 GitHub Actions one-click Release (see workflows)
1. Download Release(or build locally)
# HTTP Example (localhost:3111):
python3 -m http.server 3111
# SSH (default port 22, enable on Mac)
sudo systemsetup -setremotelogin onSee config_template.yaml:
server:
addr: "0.0.0.0:17000"
token: "your-token"
client:
name: "myclient"
token: "your-token"
server_addr: "your-server-ip:17000"
local_ports: [3111] # <== Your local service port
remote_port: 18080 # <== Public access port./gotunnel-server # On remote/cloud server
./gotunnel-client # On your local machine[ User ] <---> [Cloud Server: gotunnel-server] <--tunnel--> [LAN Client: gotunnel-client] --> [Local Service]
- HTTP Demo: see GIF above
- SSH Proxy: see GIF above
- More examples:
example/andlocal_demo/
- Supports manual one-click release action via Github Actions: cross-platform build and auto-upload assets (release.yml)
- Download latest binary & assets from Releases
- Quick Start
- Configuration Guide
- Protocols
- Bugfixes / Bugfixes EN
- See
doc/for more.
Pull requests, issues and feature suggestions are welcome!
MIT © 2023-2025 Richard & Contributors
Inspired by frp, ngrok, contributors and users.


