- Split cmd/softether-go into main.go (flags, reconnect loop) and session.go (session lifecycle, DHCP orchestration) - Extract network config to pkg/netcfg (TAP config, routing, DNS, policy routes) - Move frame bridging to pkg/client/tunnel.go as Bridge() method - Add -mac, -dhcp, -policy-route-table CLI flags - Add SetMAC() to pkg/tap for deterministic DHCP assignments - Update all docs to reflect new structure and flags Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
31 lines
920 B
Markdown
31 lines
920 B
Markdown
# softether-go
|
|
|
|
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. Single static binary, Linux only, zero runtime dependencies beyond `ip` (iproute2).
|
|
|
|
## Quick start
|
|
|
|
```bash
|
|
# Build
|
|
go build -o softether-go ./cmd/softether-go/
|
|
|
|
# Connect (minimal)
|
|
softether-go -host vpn.example.com -user admin -pass secret -plain-password
|
|
|
|
# Connect with full network setup
|
|
softether-go -host vpn.example.com -user admin -pass secret \
|
|
-plain-password -tap vpn0 -mac 5E:3B:6F:63:A8:3E \
|
|
-accept-default-gateway -accept-dns -policy-route-table 200
|
|
```
|
|
|
|
## Documentation
|
|
|
|
See [docs/main.md](docs/main.md) for full documentation:
|
|
|
|
- [Usage & CLI reference](docs/usage.md)
|
|
- [How it works](docs/architecture.md)
|
|
- [Building](docs/building.md)
|
|
- [Project structure](docs/structure.md)
|
|
|
|
## License
|
|
|
|
MIT
|