feat(ostp-client-linux): add CLI VPN client for Linux
New CLI client for Linux with TUN interface support: - Interactive setup wizard with profile management - Connect/disconnect commands with root privilege check - Status monitoring (interface stats, traffic counters) - Test connection (handshake verification) - Profile management (add/remove/set-default) - Anti-VM detection (production mode only) - Stealth mode (TLS mimicry, geo-SNI selection) Features: - Static musl binary (2.0 MB) - universal Linux - Config storage: ~/.config/ostp/profiles.json - TUN interface: ostp0 (10.X.Y.Z) - Security: libc::geteuid() root check, ostp-guard integration - Error handling: graceful disconnect on Ctrl+C Commands: - ostp-client-linux setup # Interactive wizard - ostp-client-linux connect --profile default - ostp-client-linux connect --server 1.2.3.4:443 --psk HEX - ostp-client-linux status # Show connection info - ostp-client-linux disconnect # Kill running client - ostp-client-linux profiles list # List saved profiles - ostp-client-linux test --server X --psk Y Distribution updates: - Added ostp-client-linux (2.0 MB) to linux-x64 package - Updated SHA256SUMS with all 3 binaries - Updated README.md with client installation guide - Rebuilt ostp-server-linux-x64.tar.gz (6.86 MB total) Note: TUN interface and traffic relay are TODO (placeholders)
This commit is contained in:
40
Cargo.lock
generated
40
Cargo.lock
generated
@@ -429,6 +429,12 @@ version = "1.0.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
||||
|
||||
[[package]]
|
||||
name = "cfg_aliases"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
|
||||
|
||||
[[package]]
|
||||
name = "chacha20"
|
||||
version = "0.9.1"
|
||||
@@ -2428,6 +2434,19 @@ dependencies = [
|
||||
"unicode-segmentation",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nix"
|
||||
version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
|
||||
dependencies = [
|
||||
"bitflags 2.10.0",
|
||||
"cfg-if",
|
||||
"cfg_aliases",
|
||||
"libc",
|
||||
"memoffset",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nodrop"
|
||||
version = "0.1.14"
|
||||
@@ -2916,6 +2935,27 @@ dependencies = [
|
||||
"tracing-subscriber",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ostp-client-linux"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
"console",
|
||||
"dialoguer",
|
||||
"hex",
|
||||
"libc",
|
||||
"nix",
|
||||
"osn",
|
||||
"ostp",
|
||||
"ostp-guard",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tokio",
|
||||
"tracing",
|
||||
"tracing-subscriber",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ostp-daemon"
|
||||
version = "0.1.0"
|
||||
|
||||
Reference in New Issue
Block a user