Skip to content

Releases: keepinfov/2cha

v1.9.0

Choose a tag to compare

@keepinfov keepinfov released this 14 Jul 07:44
2940bf5

What's Changed

  • Remove REALITY, add AmneziaWG transport, speed up the datapath (1.9.0) by @keepinfov in #58

Full Changelog: v1.8.0-alpha.6...v1.9.0

v1.8.0-alpha.6

v1.8.0-alpha.6 Pre-release
Pre-release

Choose a tag to compare

@keepinfov keepinfov released this 08 Jul 06:15
933f0be

First alpha of the 1.8.0 REALITY line (the rc pre-release naming is retired).

Changes since rc5

  • Debug logging across the connect + Noise handshake path (#57). The opaque Network error: Timeout is replaced by handshake failed: <why>, naming the actual failing stage (dead carrier / no server reply / rejected response / early stop, with counts and the underlying error). Go-side goreality: lifecycle lines — including each relay direction's byte count + error on close — make a post-handshake carrier drop visible in the server journal.

Built on the REALITY dest self-test (#55) and mobile socket-protect (#56) fixes.

v1.8.0-rc5 — REALITY tun-fd fix + server reject logging

Choose a tag to compare

@keepinfov keepinfov released this 07 Jul 09:22
cc7c7e3

Fixes over rc4:

  • #52: run_mobile now owns (and always closes) the host's tun fd from its first line, so a failed connect/handshake tears the VPN interface down immediately instead of leaving the phone's network broken until a manual toggle.
  • #53: the REALITY server now logs the vendored library's actual reject-and-fallback reason (previously silently discarded), so a legitimate client's rejected handshake is diagnosable from journalctl instead of invisible.

Install/upgrade:

sudo TWOCHA_VERSION=v1.8.0-rc5 TWOCHA_REALITY=1 sh -c "$(curl -fsSL https://raw.githubusercontent.com/keepinfov/2cha/master/scripts/install.sh)" --no-setup

v1.8.0-rc4 — REALITY hardening + mobile QR onboarding

Choose a tag to compare

@keepinfov keepinfov released this 06 Jul 15:02
58febf8

Fourth REALITY release candidate — first to ship from master (REALITY is now merged, not a separate branch build).

Since rc3:

  • Full review pass on the REALITY transport: fixed a CI shell-injection risk, added Go panic recovery across the cgo boundary, fixed a resource leak and an unchecked integer cast, removed dead/wire-incompatible auth code, and unified the TLS/REALITY server loops (which also fixed a blocking-handshake DoS — a REALITY probe relay could previously stall every other connection).
  • The setup wizard now offers REALITY as a mobile QR option, not just desktop: the Android app (2cha-mobile#48) already supports Transport.REALITY end-to-end, so 2cha init's mobile export now emits the matching reality JSON block.

Assets: static-musl 2cha-universal-linux-* (Go-free) for the general install, plus 2cha-reality-linux-{x86_64,aarch64}.tar.gz (glibc) and the ghcr.io/keepinfov/2cha:v1.8.0-rc4 container image for REALITY.

Install a REALITY server: sudo TWOCHA_REALITY=1 sh -c "$(curl -fsSL https://raw.githubusercontent.com/keepinfov/2cha/master/scripts/install.sh)"

v1.8.0-rc3 — REALITY in the setup wizard

Choose a tag to compare

@keepinfov keepinfov released this 05 Jul 03:17
cfebe96

Third REALITY release candidate. Same binaries/assets as rc2, plus:

  • The setup wizard (2cha setup / 2cha init) now offers reality as a Transport (reality builds only): it generates the REALITY keypair + short id and writes matching [reality] blocks into the server config and every desktop client config.
  • Installer: TWOCHA_REALITY=1 fetches the glibc reality tarball.

Assets: static-musl 2cha-universal-linux-* (Go-free) for the general install, plus 2cha-reality-linux-{x86_64,aarch64}.tar.gz (glibc) and the ghcr.io/keepinfov/2cha:v1.8.0-rc3 container image for REALITY.

Install a REALITY server: sudo TWOCHA_REALITY=1 sh -c "$(curl -fsSL https://raw.githubusercontent.com/keepinfov/2cha/master/scripts/install.sh)"

v1.8.0-rc2 — REALITY (glibc tarballs + container image)

Choose a tag to compare

@keepinfov keepinfov released this 04 Jul 14:31
263c705

Release candidate 2 for the REALITY transport.

rc1's static-musl reality binaries segfaulted — Go's runtime can't run inside a
fully-static musl binary. So REALITY now ships as glibc, and the standard
static binaries stay REALITY-free:

  • 2cha-{server,client,universal}-linux-<arch>.tar.gz — static musl, no REALITY
    (unchanged; portable, run on NixOS etc.). The install.sh one-liner installs these.
  • REALITY (glibc):
    • 2cha-reality-linux-{x86_64,aarch64}.tar.gz — glibc 2.31+, runs natively on
      Debian 11+/Ubuntu 20.04+.
    • ghcr.io/keepinfov/2cha:v1.8.0-rc2 — multi-arch image; runs anywhere with
      docker/podman, including NixOS and Alpine.

Test the reality binary directly:

curl -fsSL https://github.com/keepinfov/2cha/releases/download/v1.8.0-rc2/2cha-reality-linux-x86_64.tar.gz \
  | tar xz && sudo mv 2cha /usr/local/bin/2cha
2cha reality-keygen        # then set transport = "reality" + [reality] in the config

Or the image:

docker run --rm --cap-add NET_ADMIN --device /dev/net/tun \
  -v /etc/2cha:/etc/2cha ghcr.io/keepinfov/2cha:v1.8.0-rc2 \
  server --config /etc/2cha/server.toml

See docs/reality.md. Pre-release from PR #50.

v1.7.0

Choose a tag to compare

@keepinfov keepinfov released this 03 Jul 16:45
8e7f09e

What's Changed

Full Changelog: v1.6.0...v1.7.0

v1.6.0

Choose a tag to compare

@keepinfov keepinfov released this 03 Jul 11:48
ed5e1a6

What's Changed

  • fix(cli): TTY-safe output, interactive fallbacks, status --watch by @keepinfov in #45
  • feat(cli): turn-key '2cha setup', one-liner installer, mobile QR onboarding by @keepinfov in #46
  • chore(release): bump version to 1.6.0 by @keepinfov in #47

Full Changelog: v1.5.0...v1.6.0

v1.5.0

Choose a tag to compare

@keepinfov keepinfov released this 03 Jul 06:06
a1de76b

What's Changed

  • fix(mobile): per-tunnel run flag and handshake-complete signal by @keepinfov in #42
  • ci: simplify PR checks to cross-target cargo check, drop Windows by @keepinfov in #43
  • perf: fix full-MTU packet loss and rebuild the data plane for throughput by @keepinfov in #44

Full Changelog: v1.4.0...v1.5.0

v1.4.0

Choose a tag to compare

@keepinfov keepinfov released this 15 Jun 22:22
8853cd8

What's Changed

  • feat: config-management CLI and declarative NixOS module by @keepinfov in #37
  • feat: uniffi shared Rust core for Android mobile by @keepinfov in #38
  • fix(lib): gate netlink/routing/server off Android so twocha-lib cross-compiles by @keepinfov in #39
  • fix(mobile): keep symbol table on twocha-mobile cdylib for uniffi bindgen by @keepinfov in #40
  • chore(release): bump version to 1.4.0 by @keepinfov in #41

Full Changelog: v1.2.0...v1.4.0