Túnel rápido TCP/UDP sobre HTTP con cifrado SSH, que admite reenvío de puertos inverso, proxy SOCKS5 y autenticación de cliente para la travesía segura de la red y evasión de cortafuegos.
Chisel es un túnel TCP/UDP rápido, transportado sobre HTTP y asegurado mediante SSH. Un único ejecutable que incluye tanto el cliente como el servidor. Escrito en Go (golang). Chisel es principalmente útil para atravesar firewalls, aunque también puede utilizarse para proporcionar un endpoint seguro hacia tu red.

crypto/ssh)--min/max-retry-interval); los pings de keepalive expiran, por lo que las conexiones muertas en silencio (suspensión/activación, tiempos de espera NAT, reinicios del servidor) se detectan y se restablecenssh -o ProxyCommand proporcionando SSH sobre HTTPConsulta la última versión o descárgala e instálala ahora con curl https://i.jpillora.com/chisel! | bash
Los binarios se compilan con la última versión de Go, que establece las versiones mínimas de sistema operativo: Windows 10 / Server 2016, macOS 12, kernel de Linux 3.2, FreeBSD 12.2. Para sistemas más antiguos (por ejemplo, Windows 7), utiliza la versión v1.8.1 o anterior.
```sh
docker run --rm -it jpillora/chisel --help
Las imágenes son multi-arquitectura y se publican tanto en Docker Hub (`jpillora/chisel`) como en GitHub Container Registry (`ghcr.io/jpillora/chisel`).
### Fedora
El paquete es mantenido por la comunidad de Fedora. Si encuentras problemas relacionados con el uso del RPM, utiliza este [rastreador de incidencias](https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&classification=Fedora&component=chisel&list_id=11614537&product=Fedora&product=Fedora%20EPEL).```sh
sudo dnf -y install chisel
$ go install github.com/jpillora/chisel@latest
## Demo
Puedes ejecutar tu propio servidor de demostración en minutos (la antigua demo de Heroku desapareció con el plan gratuito de Heroku). [`example/fly.toml`](https://github.com/jpillora/chisel/blob/master/example/fly.toml) despliega este `chisel server` en la asignación gratuita de [fly.io](https://fly.io):```sh
$ chisel server --port $PORT --backend http://example.com
# listens on $PORT, proxies normal web requests to http://example.com
Despliégalo con fly launch --copy-config desde el directorio example/, y luego haz un túnel hacia cualquier servicio que se ejecute junto al servidor, por ejemplo:```sh
$ chisel client https://.fly.dev 3000
Visitar la URL de tu aplicación en un navegador alcanza el proxy backend predeterminado del servidor y muestra una copia de [example.com](http://example.com).
## Uso
<!-- render these help texts by hand,
or use https://github.com/jpillora/md-tmpl
with $ md-tmpl -w README.md -->
<!--tmpl,code=plain:echo "$ chisel --help" && go run main.go --help | sed 's#0.0.0-src (go1\..*)#X.Y.Z#' -->``` plain
$ 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
``` plain
$ 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.