
chisel v1.12.0-rc3
Túnel rápido TCP/UDP sobre HTTP com criptografia SSH, suportando encaminhamento de porta reverso, proxy SOCKS5 e autenticação de cliente para travessia segura de rede e evasão de firewall.
Chisel
Chisel é um túnel TCP/UDP rápido, transportado sobre HTTP, protegido via SSH. Um único executável que inclui tanto o cliente quanto o servidor. Escrito em Go (golang). Chisel é principalmente útil para atravessar firewalls, embora também possa ser usado para fornecer um endpoint seguro para a sua rede.

Índice
Recursos
- Fácil de usar
- Performático*
- Conexões criptografadas usando o protocolo SSH (via
crypto/ssh) - Conexões autenticadas; conexões de clientes autenticadas com um arquivo de configuração de usuários, conexões de servidores autenticadas com correspondência de impressões digitais.
- O cliente se reconecta automaticamente com backoff exponencial (ajustável via
--min/max-retry-interval); pings de keepalive expiram, então conexões mortas silenciosamente (sleep/wake, timeouts de NAT, reinicializações do servidor) são detectadas e restabelecidas - Os clientes podem criar múltiplos endpoints de túnel em uma única conexão TCP
- Os clientes podem, opcionalmente, passar por proxies SOCKS ou HTTP CONNECT
- Encaminhamento de porta reverso (as conexões passam pelo servidor e saem pelo cliente)
- O servidor opcionalmente funciona também como um proxy reverso
- O servidor opcionalmente permite conexões SOCKS5 (veja o guia abaixo)
- Os clientes opcionalmente permitem conexões SOCKS5 a partir de um encaminhamento de porta reverso
- Conexões de clientes via stdio que suportam
ssh -o ProxyCommandfornecendo SSH sobre HTTP
Instalação
Binários
Veja o lançamento mais recente ou baixe e instale agora com curl https://i.jpillora.com/chisel! | bash
Os binários são compilados com a versão mais recente do Go, que define as versões mínimas de sistema operacional: Windows 10 / Server 2016, macOS 12, kernel Linux 3.2, FreeBSD 12.2. Para sistemas mais antigos (por exemplo, Windows 7), use o lançamento v1.8.1 ou anterior.
Docker
```sh
docker run --rm -it jpillora/chisel --help
As imagens são multi-arquitetura e publicadas tanto no Docker Hub (`jpillora/chisel`) quanto no GitHub Container Registry (`ghcr.io/jpillora/chisel`).
### Fedora
O pacote é mantido pela comunidade Fedora. Se você encontrar problemas relacionados ao uso do RPM, use este [rastreador de problemas](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
Fonte```sh
$ go install github.com/jpillora/chisel@latest
## Demo
Podes executar o teu próprio servidor de demonstração em minutos (a antiga demo do Heroku desapareceu com o nível gratuito do Heroku). O [`example/fly.toml`](https://github.com/jpillora/chisel/blob/master/example/fly.toml) implementa este `chisel server` na franquia gratuita do [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
Implemente-o com fly launch --copy-config a partir do diretório example/ e, em seguida, faça um túnel para qualquer serviço em execução ao lado do servidor, por exemplo:```sh
$ chisel client https://.fly.dev 3000
connects to your chisel server,
tunnels your localhost:3000 to the server's localhost:3000
Visitar o URL da sua aplicação num navegador acede ao proxy de backend predefinido do servidor e mostra uma cópia de [example.com](http://example.com).
## Utilização
<!-- 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.