Files
rustunnel/droid-wiki/applications/rustunnel-cli.md
T
rootandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 0166fb6511
CI / cargo fmt (push) Has been cancelled
CI / cargo clippy (macos-latest) (push) Has been cancelled
CI / cargo clippy (ubuntu-latest) (push) Has been cancelled
CI / cargo clippy (windows-latest) (push) Has been cancelled
CI / cargo test (macos-latest) (push) Has been cancelled
CI / cargo test (ubuntu-latest) (push) Has been cancelled
CI / cargo test (windows-latest) (push) Has been cancelled
CI / cargo build (macos-latest) (push) Has been cancelled
CI / cargo build (ubuntu-latest) (push) Has been cancelled
CI / cargo build (windows-latest) (push) Has been cancelled
CI / cargo build --release (macos-latest) (push) Has been cancelled
CI / cargo build --release (ubuntu-latest) (push) Has been cancelled
CI / cargo build --release (windows-latest) (push) Has been cancelled
CI / CLI smoke (macos-latest) (push) Has been cancelled
CI / CLI smoke (ubuntu-latest) (push) Has been cancelled
CI / CLI smoke (windows-latest) (push) Has been cancelled
CI / Minimal E2E (macos-latest) (push) Has been cancelled
CI / Minimal E2E (ubuntu-latest) (push) Has been cancelled
CI / Minimal E2E (windows-latest) (push) Has been cancelled
docs: add comprehensive project wiki for v1.0
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-06-04 14:07:55 -06:00

2.3 KiB

rustunnel CLI

The rustunnel binary exposes five subcommands defined in src/cli.rs and dispatched in src/main.rs.

Commands

listen

Start the HTTPS tunnel listener. Binds an HTTPS server that accepts mTLS connections from connectors.

Key arguments:

  • --listen — bind address (default 0.0.0.0:4180)
  • --advertise — public address embedded in auto-generated connection keys
  • --connection-key — reusable key generated by keygen or a previous listen run
  • --socks — optional server-side SOCKS5 proxy address for connector-side network access
  • --cert, --key, --ca-cert — TLS material paths (required unless using a connection key)
  • --auth-token, --auth-token-file — application auth token
  • --insecure-skip-tls-verify — skip client certificate verification (lab only)

When run without explicit certificate paths and without a connection key, listen auto-generates a new connection key and prints it.

connect

Connect to the listener and expose a local SOCKS5 proxy.

Key arguments:

  • CONNECTION_KEY — positional connection key (optional)
  • --target — listener address (default from connection key)
  • --connection-key — connection key via flag or env RUSTUNNEL_KEY
  • --socks — local SOCKS5 proxy address (default 127.0.0.1:1180)
  • --cert, --key, --ca-cert — TLS material paths (required unless using a connection key)
  • --insecure-skip-tls-verify — skip server certificate verification (lab only)

generate

Generate local certificate and auth material into an output directory.

Creates: ca.pem, ca.key, server.crt, server.key, client.crt, client.key, token.txt, config.json.

keygen

Generate a single reusable connection key string. This bundles all certificate material, the auth token, and the target address into a base64-encoded JSON blob prefixed with rtun1..

version

Print version, edition, platform, and architecture.

Entry point

src/main.rs installs the ring crypto provider, initializes tracing with an env-filter defaulting to info, parses the CLI, and dispatches to the appropriate runner function.

Key source files

File Purpose
src/cli.rs clap Parser and Subcommand definitions
src/main.rs Entry point, command dispatch, host:port parsing helpers