Retour aux mises à jour
New releaseOct 12, 2026

chisel v1.13.0

Tunnel TCP/UDP rapide sur HTTP avec chiffrement SSH, prenant en charge le forwarding de port inversé, le proxy SOCKS5 et l'authentification client pour une traversée sécurisée du réseau et le contournement des pare-feu.

Partager

Chisel

GoDoc CI

Chisel est un tunnel TCP/UDP rapide, transporté sur HTTP, sécurisé via SSH. Un seul exécutable incluant à la fois le client et le serveur. Écrit en Go (golang). Chisel est principalement utile pour traverser les pare-feu, bien qu'il puisse également être utilisé pour fournir un point d'accès sécurisé à votre réseau.

overview

Table des matières

Fonctionnalités

  • Facile à utiliser
  • Performant*
  • Connexions chiffrées utilisant le protocole SSH (via crypto/ssh)
  • Connexions authentifiées ; connexions client authentifiées avec un fichier de configuration utilisateurs, connexions serveur authentifiées par correspondance d'empreinte.
  • Le client se reconnecte automatiquement avec backoff exponentiel (réglable via --min/max-retry-interval) ; les pings keepalive expirent, de sorte que les connexions silencieusement mortes (veille/réveil, expirations NAT, redémarrages du serveur) sont détectées et rétablies
  • Les clients peuvent créer plusieurs points de terminaison de tunnel sur une seule connexion TCP
  • Les clients peuvent éventuellement passer par des proxys SOCKS ou HTTP CONNECT
  • Redirection de port inverse (les connexions passent par le serveur et sortent par le client)
  • Le serveur peut éventuellement servir de proxy inverse
  • Le serveur autorise éventuellement les connexions SOCKS5 (voir guide ci-dessous)
  • Les clients autorisent éventuellement les connexions SOCKS5 depuis une redirection de port inversée
  • Connexions client via stdio qui prend en charge ssh -o ProxyCommand fournissant SSH sur HTTP

Installation

Binaires

Releases Releases

Voir la dernière version ou téléchargez et installez-la maintenant avec curl https://i.jpillora.com/chisel! | bash

Les binaires sont compilés avec la dernière version de Go, ce qui définit les versions minimales des systèmes d'exploitation : Windows 10 / Server 2016, macOS 12, noyau Linux 3.2, FreeBSD 12.2. Pour les systèmes plus anciens (par exemple Windows 7), utilisez la version v1.8.1 ou antérieure.

Docker

Docker Pulls Image Size

docker run --rm -it jpillora/chisel --help

Les images sont multi-architectures et publiées à la fois sur Docker Hub (jpillora/chisel) et sur GitHub Container Registry (ghcr.io/jpillora/chisel).

Fedora

Le paquet est maintenu par la communauté Fedora. Si vous rencontrez des problèmes liés à l'utilisation du RPM, veuillez utiliser ce suivi des tickets.

sudo dnf -y install chisel

Source

$ go install github.com/jpillora/chisel@latest

Démo

Vous pouvez lancer votre propre serveur de démo en quelques minutes (l'ancienne démo Heroku a disparu avec le niveau gratuit de Heroku). example/fly.toml déploie ce chisel server sur l'allocation gratuite de fly.io :

$ chisel server --port $PORT --backend http://example.com
# listens on $PORT, proxies normal web requests to http://example.com

Déployez-le avec fly launch --copy-config depuis le répertoire example/, puis établissez un tunnel vers n'importe quel service exécuté à côté du serveur, par exemple :

$ chisel client https://<your-app>.fly.dev 3000
# connects to your chisel server,
# tunnels your localhost:3000 to the server's localhost:3000

Visiter l'URL de votre application dans un navigateur atteint le proxy backend par défaut du serveur et affiche une copie de example.com.

Utilisation

$ chisel --help

  Usage: chisel [command] [--help]

  Version: X.Y.Z

  Commands:
    server - runs chisel in server mode
    client - runs chisel in client mode

  Read more:
    https://github.com/jpillora/chisel

$ chisel server --help

  Usage: chisel server [options]

  Options:

    --host, Defines the HTTP listening host – the network interface
    (defaults the environment variable HOST and falls back to 0.0.0.0).

    --port, -p, Defines the HTTP listening port (defaults to the environment
    variable PORT and falls back to port 8080).

    --key, (deprecated use --keygen and --keyfile instead)
    An optional string to seed the generation of a ECDSA public
    and private key pair. All communications will be secured using this
    key pair. Share the subsequent fingerprint with clients to enable detection
    of man-in-the-middle attacks (defaults to the CHISEL_KEY environment
    variable, otherwise a new key is generate each run).

    --keygen, A path to write a newly generated PEM-encoded SSH private key file.
    If users depend on your --key fingerprint, you may also include your --key to
    output your existing key. Use - (dash) to output the generated key to stdout.

    --keyfile, An optional path to a PEM-encoded SSH private key. When
    this flag is set, the --key option is ignored, and the provided private key
    is used to secure all communications. (defaults to the CHISEL_KEY_FILE
    environment variable). Since ECDSA keys are short, you may also set keyfile
    to the inline key string itself, exactly as printed by --keygen (a base64
    string with a "ck-" prefix); no extra base64 encoding is needed.

Catégories