A high-performance intranet penetration platform
Orbien is a high-performance intranet penetration platform built on Netty, supporting multi-protocol proxying, multiple transport channels, secure authentication, and visual operations management.
- Proxy protocols: Supports TCP / UDP / HTTP / HTTPS / SOCKS5 / file sharing and more, with a built-in file management UI panel
- Data transport: TCP, WebSocket, QUIC; supports multiplexing and independent connections, with optional Snappy / LZ4 / ZSTD compression
- Security & authentication: mTLS mutual authentication, Token-based identity authentication, IP CIDR access control, HTTP BasicAuth, and time-window access
- Traffic control: Fine-grained bandwidth rate limiting, network backpressure, large-file chunking and streaming transfer
- High availability: Round-robin / weighted / random / least-connections load balancing strategies, and service health checks
- Development & testing: Supports HTTP/HTTPS traffic capture, header rewriting, HAProxy real IP retrieval, and more
- Domain routing: Subdomains and custom domains, multi-domain proxying; ACME certificate issuance, auto-renewal, and one-click deployment
- Operations management: Built-in modern Web console with metrics monitoring, memory monitoring, centralized configuration management, and OAuth third-party login integration
- Configuration modes: Client autonomy + server-side centralized configuration management, with bidirectional rule sync for both public and private network scenarios
- Developer integration: Binary client and Spring Boot Starter for embedded access
- Cross-platform: Compatible with Windows, Linux, and macOS (amd64 / arm64)
Requires Linux, Docker, and a public IP. Uses H2 database by default.
mkdir -p /opt/orbien/data /opt/orbien/logs
cat > /opt/orbien/orbien-server.toml <<'EOF'
server_addr = "0.0.0.0"
server_port = 9527
http_proxy_port = 8080
https_proxy_port = 8443
[dashboard]
enabled = true
addr = "0.0.0.0"
port = 8020
username = "admin"
password = "123456"
[[port_pool.tcp]]
start = 9050
end = 9060
[[port_pool.udp]]
start = 9050
end = 9060
EOF
docker run -d \
--name orbien-server \
--restart unless-stopped \
-p 8080:8080 \
-p 8443:8443 \
-p 8020:8020 \
-p 9527:9527 \
-p 9050-9060:9050-9060 \
-p 9050-9060:9050-9060/udp \
-e SPRING_PROFILES_ACTIVE=h2 \
-e H2_DATA_DIR=/app/data/orbien-server \
-e JAVA_OPTS="-Xms512m -Xmx512m -XX:MaxDirectMemorySize=512m -XX:+UseG1GC --enable-native-access=ALL-UNNAMED" \
-e TZ=Asia/Shanghai \
-v /opt/orbien/orbien-server.toml:/app/orbien-server.toml:ro \
-v /opt/orbien/data:/app/data \
-v /opt/orbien/cert:/app/cert \
-v /opt/orbien/config:/app/config \
-v /opt/orbien/logs:/app/logs \
lxien/orbien-server:0.21.0| Item | Value |
|---|---|
| Dashboard | http://<host>:8020 (admin / 123456) |
| Data dir | /opt/orbien |
| Ports | Tunnel 9527 · HTTP 8080 · HTTPS 8443 · TCP/UDP pool 9050-9060 |
Download from Releases.
Usage: orbien [-hV] [-c=<configFile>] [COMMAND]
Orbien intranet penetration client
-c=<configFile> Path to the config file
-h, --help Show this help message and exit.
-V, --version Print version information and exit.
Commands:
login Save server credentials
logout Clear local credentials
run Start the client from a config file
http Start an HTTP proxy
tcp Start a TCP proxy
udp Start a UDP proxy案例:
orbien login --server <server-host>:9527 --token <access-token>
orbien http 8080
orbien tcp 3306mkdir -p /path/to/orbien/logs /path/to/orbien/.orbien
cat > /path/to/orbien/orbien.toml <<'EOF'
server_addr = "<server-host>"
server_port = 9527
[auth]
token = "<access-token>"
EOF
docker run -d \
--name orbien \
--restart unless-stopped \
-e TZ=Asia/Shanghai \
-v /path/to/orbien/orbien.toml:/app/orbien.toml:ro \
-v /path/to/orbien/logs:/app/logs \
-v /path/to/orbien/.orbien:/root/.orbien \
lxien/orbien:0.21.0<dependency>
<groupId>io.github.lxien</groupId>
<artifactId>orbien-spring-boot-starter</artifactId>
<version>0.4.0</version>
</dependency>orbien:
client:
enabled: true
server-addr: <server-host>
auth:
token: <access-token>
proxy:
protocol: http- Issues: github.com/lxien/orbien/issues
- Online discussion: Discord