Directories
¶
| Path | Synopsis |
|---|---|
|
clients
|
|
|
go/cmd/loft
command
Command loft is the CLI client: config-driven GET/WS/QUIC outbound, SOCKS5, and optional TUN with kill-switch.
|
Command loft is the CLI client: config-driven GET/WS/QUIC outbound, SOCKS5, and optional TUN with kill-switch. |
|
go/cmd/loft-bench
command
Command loft-bench repeats the macOS app connect path (front, SOCKS5, TCP probe) and measures mux/SOCKS throughput for GET and WS.
|
Command loft-bench repeats the macOS app connect path (front, SOCKS5, TCP probe) and measures mux/SOCKS throughput for GET and WS. |
|
go/cmd/loft-front
command
Command loft-front is the GUI helper: GET/WS/H2/QUIC/H3 front, SOCKS5, and in-process or loft-priv TUN.
|
Command loft-front is the GUI helper: GET/WS/H2/QUIC/H3 front, SOCKS5, and in-process or loft-priv TUN. |
|
go/cmd/loft-probe
command
Command loft-probe sends ICMP, TCP, UDP, DNS, HTTP, and HTTPS through loft mux or SOCKS5 without rewriting system routes or opening utun.
|
Command loft-probe sends ICMP, TCP, UDP, DNS, HTTP, and HTTPS through loft mux or SOCKS5 without rewriting system routes or opening utun. |
|
go/inbound
Package inbound is the loft client listener: SOCKS5, userspace TUN (ICMP/UDP/TCP), Darwin/Linux DNS and routes, optional overlay IPv6.
|
Package inbound is the loft client listener: SOCKS5, userspace TUN (ICMP/UDP/TCP), Darwin/Linux DNS and routes, optional overlay IPv6. |
|
go/lanui
Package lanui is the LAN operator page for loft (MikroTik :8090).
|
Package lanui is the LAN operator page for loft (MikroTik :8090). |
|
go/tools/wsprobe
command
Command wsprobe is a one-shot HTTP GET through a loft GET front.
|
Command wsprobe is a one-shot HTTP GET through a loft GET front. |
|
mobile
Package mobile is the shared Go session for iOS Packet Tunnel and Android VpnService.
|
Package mobile is the shared Go session for iOS Packet Tunnel and Android VpnService. |
|
internal
|
|
|
cdn
Package cdn holds vendor edge profiles on top of protocol fronts get/ws.
|
Package cdn holds vendor edge profiles on top of protocol fronts get/ws. |
|
config
Package config loads client.yaml and node config (YAML or switch-style commands).
|
Package config loads client.yaml and node config (YAML or switch-style commands). |
|
crypto
Package crypto seals mux with ChaCha20-Poly1305, proves membership with clockless HMAC (0x02) bound to a client X25519 pub, and derives the session key from the DH secret (HKDF info "loft-v1").
|
Package crypto seals mux with ChaCha20-Poly1305, proves membership with clockless HMAC (0x02) bound to a client X25519 pub, and derives the session key from the DH secret (HKDF info "loft-v1"). |
|
egress
Package egress decides how a member's traffic leaves the node: directly (the server's own route), through a kernel interface (a WireGuard, OpenVPN or ZeroTier channel), through a SOCKS5 or HTTP(S) proxy, or through an SSTP session the node holds itself.
|
Package egress decides how a member's traffic leaves the node: directly (the server's own route), through a kernel interface (a WireGuard, OpenVPN or ZeroTier channel), through a SOCKS5 or HTTP(S) proxy, or through an SSTP session the node holds itself. |
|
identity
Package identity is the member key: lt_ plus 48 hex characters (24 bytes).
|
Package identity is the member key: lt_ plus 48 hex characters (24 bytes). |
|
mux
Package mux multiplexes streams and datagrams over AEAD-protected frames after Status.
|
Package mux multiplexes streams and datagrams over AEAD-protected frames after Status. |
|
netconf
Package netconf is Loft overlay 1.0 network.conf: members, overlay IPs, leases, Cisco-style ACL, IPAM, DNS policy, session timers, managed routes and VLANs.
|
Package netconf is Loft overlay 1.0 network.conf: members, overlay IPs, leases, Cisco-style ACL, IPAM, DNS policy, session timers, managed routes and VLANs. |
|
protect
Package protect marks VPN process sockets so they use the physical path (Android VpnService.protect).
|
Package protect marks VPN process sockets so they use the physical path (Android VpnService.protect). |
|
startup
Package startup scans loft node and overlay config written as switch-style commands (Keenetic / D-Link / Cisco extended ACL).
|
Package startup scans loft node and overlay config written as switch-style commands (Keenetic / D-Link / Cisco extended ACL). |
|
testcfg
Package testcfg loads hostnames for tests.
|
Package testcfg loads hostnames for tests. |
|
transport
Package transport implements Loft 1.0 fronts, TLS camouflage, decoy splice, borrowed-cert mask, CONNECT splice, and client dialing.
|
Package transport implements Loft 1.0 fronts, TLS camouflage, decoy splice, borrowed-cert mask, CONNECT splice, and client dialing. |
|
version
Package version holds the program release (injected from VERSION, currently 1.0.24 when built) distinct from protocol 1.0 (0x0100).
|
Package version holds the program release (injected from VERSION, currently 1.0.24 when built) distinct from protocol 1.0 (0x0100). |
|
wire
Package wire is loft overlay protocol 1.0 (0x0100): Hello/Status handshake, mux frames, signed roster/lists, and fleet control.
|
Package wire is loft overlay protocol 1.0 (0x0100): Hello/Status handshake, mux frames, signed roster/lists, and fleet control. |
|
server
|
|
|
cmd/loft-node
command
Command loft-node is the overlay node daemon: controller or relay.
|
Command loft-node is the overlay node daemon: controller or relay. |
|
cmd/loft-panel
command
Command loft-panel is the web admin for one loft server.
|
Command loft-panel is the web admin for one loft server. |
|
cmd/loft-panel-adm
command
Command loft-panel-adm is the root helper of loft-panel.
|
Command loft-panel-adm is the root helper of loft-panel. |
|
origin
Package origin serves the node's public HTTPS origin.
|
Package origin serves the node's public HTTPS origin. |
|
origin/cover
Package cover serves the embedded TLS/QUIC cover site shown to ordinary browsers.
|
Package cover serves the embedded TLS/QUIC cover site shown to ordinary browsers. |
|
panel/adm
Package adm is what loft-panel-adm does as root: read and replace the node's network.conf with rollback, issue member keys, restart loft-node.
|
Package adm is what loft-panel-adm does as root: read and replace the node's network.conf with rollback, issue member keys, restart loft-node. |
|
panel/admproto
Package admproto is the wire between loft-panel (no privileges) and loft-panel-adm (root).
|
Package admproto is the wire between loft-panel (no privileges) and loft-panel-adm (root). |
|
panel/auth
Package auth is panel sign-in: argon2id password hashes, sessions, and a per-address limit on failed logins.
|
Package auth is panel sign-in: argon2id password hashes, sessions, and a per-address limit on failed logins. |
|
panel/backup
Package backup is the panel's backup format: a tar.gz of the server's parts with a manifest of SHA-256 sums, encrypted to a public key.
|
Package backup is the panel's backup format: a tar.gz of the server's parts with a manifest of SHA-256 sums, encrypted to a public key. |
|
panel/catalog
Package catalog is the closed list of packages the panel can put on the server.
|
Package catalog is the closed list of packages the panel can put on the server. |
|
panel/devstand
command
Command devstand runs the real panel and the real adm ops on a laptop: node files live in a temp directory and systemctl is faked (the "node" accepts any config unless it contains "# crash").
|
Command devstand runs the real panel and the real adm ops on a laptop: node files live in a temp directory and systemctl is faked (the "node" accepts any config unless it contains "# crash"). |
|
panel/store
Package store keeps panel users in one JSON file, written atomically.
|
Package store keeps panel users in one JSON file, written atomically. |
|
panel/web
Package web is loft-panel's HTTP side: sign-in, the JSON API under /api/, and the embedded UI.
|
Package web is loft-panel's HTTP side: sign-in, the JSON API under /api/, and the embedded UI. |
Click to show internal directories.
Click to hide internal directories.

