Skip to content

Chisel

A tool that tunnels TCP and UDP traffic over HTTP, encrypted with SSH, for getting past firewalls.

Stars
16.7k
Forks
1.6k
Licence
MIT
Language
Go
Last update
26 days ago
Type
CLI

What it is

Chisel is a single program that runs as either a server or a client and forwards network connections between them. Its traffic is wrapped in HTTP and encrypted using the SSH protocol, which lets it pass through firewalls and proxies that block other kinds of traffic. The README says it is mainly useful for getting through firewalls, and can also give a secure entry point into a private network.

  • Expose a local port (for example 3000) on a remote server through a chisel server
  • Forward a remote service to your own machine using a reverse port forward, if the server is started with reverse enabled
  • Run a SOCKS5 proxy through the server, if the server is started with socks5 enabled
  • Use chisel as a ProxyCommand so ssh can connect through an HTTP path

Great for

  • Developers who need to reach a service on a private machine from outside its network
  • People on networks that restrict traffic and only allow web-style connections
  • Admins who want a simple encrypted entry point into an internal network
  • Anyone who wants SSH to work through an HTTP proxy using the stdio ProxyCommand option

Not ideal for

  • Users who need a managed, hosted service with support, since this is self-run software with no hosting offered in the README
  • Those who need a polished graphical interface, since the README only describes command-line usage
  • Anyone unable to run a server they control, because the server side must be hosted somewhere reachable
Step-by-step guide: how to use ChiselInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Go (only if installing from source)

    Install from source with Go

    go install github.com/jpillora/chisel@latest

    Fedora install

    sudo dnf -y install chisel
  2. 2

    Run it

    • Start a server with: chisel server --port $PORT --backend http://example.com
    • Deploy the server to a host you control, or run it on your own machine
    • From another machine, connect a client with: chisel client <server-url> 3000
    • Visit the server's address in a browser or use the forwarded port locally
  3. 3

    Get the most out of it

    • Set --authfile or --auth so only known users can connect, and anchor address patterns as the README advises
    • Pin the server key with --keyfile or --key and share the fingerprint with clients to detect man-in-the-middle attacks
    • Use --backend to make the server answer normal web requests with another site, which helps it blend in
    • Enable --reverse and --socks5 on the server only when you need those features

Downloads

Strengths

  • Single executable containing both client and server
  • Encrypted connections via SSH and optional fingerprint checks against man-in-the-middle attacks
  • Client reconnects automatically with exponential backoff after network drops

Trade-offs

  • Security depends on correct setup: the README notes that authfile patterns are not anchored by default and need care
  • Some features such as reverse forwarding and SOCKS5 must be explicitly enabled on the server
  • The README describes minimum OS versions and points older systems to an older release

How it compares

ProjectStarsTypeLevelUpdatedBest for
chisel (this)16.7kCLIintermediate26 days agoDevelopers who need to reach a service on a private machine from outside its network
gost18.3kCLIintermediate2 months agoDevelopers who want a single binary to run a local or remote SOCKS5 or HTTP proxy
bore11.6kCLIbeginner9 months agoDevelopers who want to share a local web app or API with someone for a quick test
croc40.8kCLIbeginner4 days agoPeople who need to send a file to someone without setting up a server, accounts, or port forwarding
kratos26kLibraryintermediate4 days agoGo developers building a set of backend services that talk over HTTP or gRPC
chi23kLibraryintermediate19 days agoGo developers building REST API services

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.