initial commit: standalone SoftEther VPN client in Go
Built-in DHCP (raw Ethernet frames through tunnel), automatic reconnection, host route management, classless static routes (option 121/249), DNS config. Single static binary, Linux only. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
829ca73b1b
340 changed files with 199140 additions and 0 deletions
27
docs/main.md
Normal file
27
docs/main.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# softether-go documentation
|
||||
|
||||
Standalone SoftEther VPN client written in Go. Connects to SoftEther VPN servers using the native protocol over TLS, with built-in DHCP, automatic reconnection, and route management.
|
||||
|
||||
## Features
|
||||
|
||||
- Native SoftEther protocol (TLS + HTTP handshake + TCP block framing)
|
||||
- Built-in DHCP client (raw Ethernet frame construction through the VPN tunnel)
|
||||
- Automatic reconnection with fresh DHCP on each reconnect
|
||||
- Host route to VPN server via existing default gateway (prevents routing loops)
|
||||
- Classless static routes (DHCP option 121/249, RFC 3442)
|
||||
- DNS configuration from DHCP lease (backup/restore of `/etc/resolv.conf`)
|
||||
- Hashed password (SHA-0) and plaintext password (RADIUS/external) authentication
|
||||
- Single static binary, Linux only
|
||||
|
||||
## Contents
|
||||
|
||||
- [Usage & CLI reference](usage.md) — flags, examples, Docker usage
|
||||
- [Architecture](architecture.md) — connection flow, DHCP, reconnection, routing
|
||||
- [Building](building.md) — Go, Nix, static builds
|
||||
- [Project structure](structure.md) — source layout and package descriptions
|
||||
|
||||
## Requirements
|
||||
|
||||
- Linux (uses `/dev/net/tun` for TAP devices)
|
||||
- `CAP_NET_ADMIN` or root (TAP device creation, route management)
|
||||
- `ip` command (iproute2) on `$PATH`
|
||||
Loading…
Add table
Add a link
Reference in a new issue