PAGES
← all tools
◆ Post-Exploitation

chisel

v1.12.0 open-source

Chisel is a fast TCPTCPA network protocol that delivers a reliable, ordered stream of bytes between two endpoints. It detects lost data and retransmits it./UDPUDPA network protocol that sends individual messages without guaranteeing delivery or order. Applications trade built-in reliability for less overhead and can add their own recovery. tunnel, transported over HTTP, secured via SSH, useful for passing through firewalls.

Summary

chisel is an open-source command-line tunneling tool that punches TCP/UDP traffic through firewalls over HTTP, secured with SSH, and it is free to use. It ships as a single Go binary that acts as both client and server, so setup means running one executable on each end rather than deploying separate agents. The tags around it — pivoting, port-forwarding, reverse tunnels, SOCKS5SOCKS5A proxy protocol that relays TCP and UDP traffic through an intermediary server without inspecting it, letting cyber tools tunnel connections through firewalls or pivot hosts with minimal overhead. support — place it squarely in post-exploitation work, making it most relevant to red teamers and penetration testers who need a foothold into a segmented network rather than to defenders monitoring one. It sits alongside other pivoting utilities used to bridge restricted networks, with authenticated, auto-reconnecting connections and optional SOCKS5 proxying built in. Started in 2015 and still active, with 45 contributors and a release cut 42 days ago.

Chisel is a fast TCP/UDP tunnel, transported over HTTP, secured via SSH, useful for passing through firewalls.

How chisel helps

How do I reach a service on a network I can only get one foothold into?

a client on the compromised host and a server outside it form a single TCP connection carrying multiple tunnel endpoints, so any port reachable from that foothold becomes reachable from outside without opening new inbound holes

How do I get traffic out of a network that only allows outbound HTTP?

the tunnel rides over an HTTP connection secured with SSH, so it passes as ordinary web traffic through firewalls and proxies that would block a raw TCP tunnel

How do I turn one compromised box into a proxy for everything behind it?

the server can expose a SOCKS5 endpoint, letting any tool that speaks SOCKS route its connections through the client's vantage point into the segmented network behind it

What happens to my pivot when the target host sleeps, loses network, or the server restarts?

the client detects a dead connection through failed keepalive pings and reconnects automatically with a backing-off retry schedule, rather than leaving the tunnel silently broken

Can I get a listener on my own machine that reaches back into the target network I just left?

reverse port forwarding routes connections through the server and out through the client, so a listener started on the attacker side exposes a port that only exists on the target side

Who actually has access to the SOCKS proxy on a server other testers also use?

an authfile of users can be checked against each connection, and since a recent change SOCKS5 access must be explicitly granted per user rather than open to anyone who reaches the server

all 11 features, with the evidence for each →

Languages

Not documented

Features

11 capabilities · 3 backed by code, an API document or a real run

Built from chisel's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What chisel offers you

  • Command-line interface2
All capabilities 11 capabilities
Cryptographic key management verified Allows users to generate cryptographic keys and specify a key file for use by the tool. 4 releases · 6 other sources · first seen Aug 2023

Also counts toward: Command-line interface

release

  • --fingerprint rejects truncated legacy MD5 prefixes; must use full SHA256 or full 16-octet MD5 format v1.12.0 · Aug 2026 · source · release history
  • --fingerprint now rejects truncated MD5 prefixes; only the full SHA256 fingerprint or the full deprecated 16-octet MD5 colon form is accepted. v1.12.0 · Aug 2026 · source · release history
  • Requires full SHA256 or 16-octet MD5 fingerprints for --fingerprint, rejecting truncated legacy MD5 prefixes v1.12.0 · Aug 2026 · source · release history
  • Adds --keygen and --keyfile to create and use ECDSA P256 keys v1.9.0 · Aug 2023 · source · release history

command line

example

  • Ensure the fingerprint matches the new strict requirement to avoid connection rejection chisel client --fingerprint 'aa:bb:cc:... (full 16-octet MD5)' server.chisel.com:443 v1.12.0 · Aug 2026 · source
  • Update an authfile to explicitly permit a user SOCKS5 access after upgrading to 1.12, where SOCKS5 no longer bypasses ACLs. { "foo:bar": ["^10\.0\.0\.1:80$", "socks"] } v1.12.0 · Aug 2026 · source
  • Generate a new key file for use with chisel chisel --keygen mykey.pem && chisel server --keyfile mykey.pem v1.9.0 · Aug 2023 · source
  • Generate and print new private key chisel server --keygen -
Retry behaviour configuration verified Lets users configure the minimum interval between retry attempts. 2 releases · 3 other sources · first seen Jul 2026

Also counts toward: Command-line interface

release

  • Adds --min-retry-interval and --max-retry-interval flags to tune client exponential-backoff retry timing. v1.12.0 · Aug 2026 · source · release history
  • Adds configurable retry intervals via --retry-interval (improved from previous hard-coded or absent behavior) v1.12.0 · Aug 2026 · source · release history

command line

example

  • Slow down retry attempts on an unstable link so the client waits longer between reconnects before hitting --max-retry-count. chisel client --min-retry-interval 5s --max-retry-interval 60s --max-retry-count 10 https://chisel.example.com 3000:localhost:3000 v1.12.0 · Aug 2026 · source
  • Configure a reliable retry interval when connecting to an unstable server chisel client --retry-interval 5s server.chisel.com:443 v1.12.0 · Aug 2026 · source
SOCKS proxy tunneling support shipped Enables the chisel client to egress through SOCKS5 proxies by supporting `socks5://` URLs. 2 releases · 3 other sources · first seen Aug 2026

release

  • Adds socks5:// scheme support for client proxy URLs, enabling chisel clients to egress through a SOCKS5 proxy. v1.12.0 · Aug 2026 · source · release history
  • Supports socks5:// URLs in the client for tunneling SOCKS traffic through a proxy v1.12.0 · Aug 2026 · source · release history

docs

  • Fast TCP/UDP tunnel transported over HTTP and secured via SSH, supporting port forwarding, SOCKS5 proxying, and reverse tunneling.

example

  • Tunnel SOCKS traffic through an HTTP proxy that supports the socks5:// scheme chisel client --socks5 socks5://proxy.example.com:8080 server.chisel.com:443 v1.12.0 · Aug 2026 · source
  • Connect client with SOCKS5 proxy enabled chisel client --fingerprint '<see server output>' <server-address>:9312 socks
ACL enforcement for SOCKS access shipped Requires explicit `socks` entries in the authfile to grant SOCKS5 access, preventing proxy bypass that was previously allowed by wildcards or default behavior. 2 releases · first seen Aug 2026

release

  • Enforces SOCKS5 access in --authfile: users who should retain SOCKS5 access must now have an authfile entry matching socks; the wildcard "" continues to match everything including socks. v1.12.0 · Aug 2026 · source · release history
  • With --socks5 and --authfile, users who need SOCKS5 access must have an authfile entry matching socks; SOCKS5 previously bypassed the ACL list entirely. v1.12.0 · Aug 2026 · source · release history
TLS connection options verified Controls how the tool establishes TLS connections, including skipping certificate verification and setting a custom SNI hostname. 2 other sources · first seen Sep 2020

command line

UDP buffer configuration shipped Allows users to override the default UDP buffer size for chisel connections via an environment variable. 1 release · 1 other source · first seen Jan 2023

release

  • CHISEL_UDP_MAX_SIZE environment variable allows overriding the default UDP buffer size for chisel connections. v1.8.1 · Jan 2023 · source · release history

example

  • Override UDP buffer size for high-throughput UDP tunneling on a local network. CHISEL_UDP_MAX_SIZE=65535 chisel client <server> reverse :8080:localhost:3000 v1.8.1 · Jan 2023 · source
Client keepalive and timeout configuration shipped Allows users to configure client keepalive intervals, keepalive counts, and connection timeouts via environment variables to maintain resilient tunnels. 1 release · 1 other source · first seen Nov 2020

release

  • Exposes CLIENT_TIMEOUT, SERVER_TIMEOUT, KEEPALIVE_INTERVAL, and KEEPALIVE_COUNT environment variables to configure client behavior without config files v1.7.3 · Nov 2020 · source · release history

example

  • Configure client keepalive settings via environment variables for a more resilient tunnel export KEEPALIVE_INTERVAL=60 export KEEPALIVE_COUNT=3 chisel client localhost:8080 /3000:localhost:22 v1.7.3 · Nov 2020 · source
TCP/UDP tunneling over HTTP shipped Allows the tool to transport TCP or UDP traffic via an HTTP-based tunnel, supporting port forwarding and reverse tunneling. 2 other sources

docs

  • Fast TCP/UDP tunnel transported over HTTP and secured via SSH, supporting port forwarding, SOCKS5 proxying, and reverse tunneling.

example

  • Connect client and tunnel port 3000 chisel client https://<your-app>.fly.dev 3000
Automatic TLS configuration shipped Allows the tool to automatically generate and configure SSL/TLS certificates for secure server connections without manual setup. 1 other source

example

  • Start server with auto TLS certificate chisel server --port 443 --tls-domain chisel.example.com --auth user:pass
HTTP backend proxy shipped Enables the tool to act as an HTTP reverse proxy, forwarding incoming requests to a specified backend service. 1 other source

example

  • Start server with HTTP backend proxy chisel server --port $PORT --backend http://example.com
SSH reverse port forwarding shipped Enables the tool to forward a local port through a remote server via SSH, allowing access to local services from the network. 1 other source

example

  • Reverse-forward SSH port through server chisel client --auth user:pass https://chisel.example.com R:2222:localhost:22

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for chisel, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail chisel puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

6 entries

  1. August 20261
  2. May 20261
  3. August 20241
  4. August 20231
  5. January 20231
  6. November 20201
    Show

    6 entries

    Project health

    Issue, contributor and maintainer activity in jpillora/chisel, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 2 ±0 vs prior 12 months
    2. Maintainers 2 +2 joined · −1 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 91% of issues opened, last 12 months
    5. Median time to close < 1 day first maintainer reply 25 hours
    6. Open backlog 198 of 357 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 198
    3. Contributors / month 1
    4. Commits / month 1
    5. Stars 16,556
    Issue themes, last 12 months
    • other 100%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Articles

    10 articles · updated Nov 4, 2026

    Where chisel turns up in what others publish: how-tos, attack reports that name it, and incident write-ups. A row says why it is here and quotes where the article names it; the link goes to the publisher.

    • A Detailed Guide on Chisel Hacking Articles
      Chisel port forwarding is a powerful technique that penetration testers and red teamers commonly use to bypass firewalls and securely access internal services.
      2 more quotes
      This guide explores how to use Chisel for tunneling traffic and setting up remote connections through local port forwarding and SOCKS5 proxies in various real-world scenarios.
      Table of content Introduction to Chisel Background of port forwarding Establish a connection with the remote host Local port forwarding Example – 1 Local Port forwarding Example – 2 Establish Connection with SOCKS5…

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →