乐于分享
好东西不私藏

orbien 内网穿透工具的安装配置教程

orbien 内网穿透工具的安装配置教程

GitHub 466 Star:orbien

从零部署完整教程 · 新手照着做就能跑起来 · 效率工具指南 · 原创教程


摘要:本文详细讲解 orbien 内网穿透工具的安装配置教程,涵盖 Windows 二进制部署、Docker 部署、源码编译三种方式,以及 Token 鉴权、Web 管理界面配置。orbien 是基于 Rust 的高性能内网穿透工具,二进制仅 5MB,支持 TCP/UDP/HTTP/HTTPS 隧道,是 frp、ngrok 的轻量替代品,适合远程访问 NAS、远程桌面、内网网站等场景。


很多人的困扰是:东西都跑在家里或公司的内网里,一出门就没法访问了——NAS 里的照片、办公室的远程桌面、本机调试的网站,都只能在家用。

orbien 就是来解决这个问题的:它是一个用 Rust 写的、二进制约 5MB 的内网穿透工具。你只要在「有公网 IP 的服务器」上跑一个服务端,在「内网机器」上跑一个客户端,就能把内网的服务映射到公网端口,随时随地访问。全程开源免费,支持 TCP / UDP / HTTP / HTTPS 隧道,传输层支持 TCP / KCP / WebSocket / QUIC,自带 Token 鉴权和 TLS 加密。

本文要点

  • 基于 Rust + Tokio 构建,最新版 v3.0.0,二进制仅 5MB,免编译解压即用
  • 支持 TCP / UDP / HTTP / HTTPS 隧道,传输层 TCP / KCP / WebSocket / QUIC
  • 覆盖 4 个实测踩坑(下载慢、端口没放行、token 不一致、dashboard 认证)
  • 提供二进制 / Docker / 源码 / 桌面客户端 4 条部署路径,总有一条你能走通

一、项目简介

orbien(https://github.com/orbien-org/orbien)是一个轻量、高性能、安全的内网穿透工具,二进制约 5MB。它把内网的服务(网站、SSH、远程桌面、NAS 等)映射到公网服务器的端口上,让外网能访问到内网服务。

核心特性:

  • 高性能
    :端到端零拷贝转发、抗丢包、无 GC 停顿、内存占用低(官方对比 frp 内存更低更稳)
  • 隧道协议
    :TCP、UDP、HTTP、HTTPS
  • 传输协议
    :TCP、KCP、WebSocket、QUIC,支持 TCP 多路复用
  • 安全
    :Token 隧道鉴权 + TLS/mTLS 加密传输
  • 运维
    :自带 Web 管理界面(dashboard)+ 跨平台桌面客户端

一句话搞懂内网穿透原理:内网机器主动去连接公网服务器,服务器把「外网端口」收到的流量转发回「内网机器」。因为连接是内网机器主动发起的,所以内网不需要公网 IP、不需要路由器端口映射。

二、GitHub 项目数据

项目
数据
Star
466(持续上涨中)
Fork
38
主要语言
Rust
技术栈
Tokio + yamux + quinn + rustls + kcp-tokio + axum
最新版本
v3.0.0
许可证
Apache-2.0

三、环境准备

项目
要求
服务端机器
一台有公网 IP 的服务器(云服务器 / VPS),Linux 或 Windows 均可
客户端机器
任意内网机器(Windows / Linux / macOS),无需公网 IP
二进制方式
无需任何环境,解压即用(推荐新手)
源码方式
Rust 工具链(rustup + cargo)
Docker 方式
Docker 环境

⚠️ 唯一的硬件门槛:需要一台「有公网 IP」的服务器。家里宽带没有公网 IP 的话,买一台最便宜的云服务器(学生机/轻量服务器)当服务端即可。

四、详细部署步骤

路径一:官方二进制(✅推荐)

步骤 1:下载服务端和客户端二进制

打开 GitHub Releases 页(https://github.com/orbien-org/orbien/releases),找到 v3.0.0,按系统下载对应压缩包。Windows 64 位下载:

# 服务端(跑在有公网 IP 的服务器上)orbien-server_3.0.0_windows_amd64.tar.gz# 客户端(跑在内网机器上)orbien_3.0.0_windows_amd64.tar.gz

Linux 服务器对应下载 orbien-server_3.0.0_linux_amd64_gnu.tar.gz 和 orbien_3.0.0_linux_amd64_gnu.tar.gz

⚠️ GitHub Releases 国内直连经常很慢甚至超时(实测 2.5MB 下了 1 分半),下载失败就重试几次或用镜像加速,详见「踩坑 1」。

步骤 2:解压

tar -xzf orbien-server_3.0.0_windows_amd64.tar.gz   # 得到 orbien-server.exe + orbien-server.tomltar -xzf orbien_3.0.0_windows_amd64.tar.gz          # 得到 orbien.exe + orbien.toml

解压后每个包都自带一个默认 .toml 配置文件。验证:目录下出现 orbien-server.exe(约 5.5MB)和 orbien.exe(约 4.6MB)。

步骤 3:配置并启动服务端(公网服务器上)

编辑 orbien-server.toml

# orbien-server.tomllisten = "0.0.0.0:9527"          # 控制端口,客户端连这里# 可选:开启 Web 管理界面[dashboard]addr = "0.0.0.0"port = 8020# user = "admin"                 # 设了账号密码会开启 Basic Auth# password = "123456"# 强烈建议公网开启 Token 鉴权[auth]type = "token"token = "改成你自己的长随机字符串"

启动:

# Windowsorbien-server.exe -c orbien-server.toml# Linux./orbien-server -c orbien-server.toml

验证启动成功:日志出现 listener ready ... 0.0.0.0:9527 和 dashboard listening ... 0.0.0.0:8020

步骤 4:配置并启动客户端(内网机器上)

编辑 orbien.toml,把本地服务映射到远程端口:

# orbien.tomlserver = "你的服务器IP:9527"       # 服务端地址# 与服务端一致才配 token[auth]type = "token"token = "与服务端一致"[[tunnels]]                       # 一条隧道:本地服务 → 远程端口name = "web"                      # 隧道名(自定义)protocol = "tcp"                  # tcp / udp / http / httpsservice = "127.0.0.1:8080"        # 内网本地要穿透的服务地址remotePort = 9000                 # 映射到服务端的远程端口

启动:

# Windowsorbien.exe -c orbien.toml# Linux./orbien -c orbien.toml

验证启动成功:日志出现 login ok 和 tunnel started name=web remote=0.0.0.0:9000

路径二:Docker 部署

仓库自带 docker/Dockerfile.server 和 docker/Dockerfile.client

# 服务端docker build -f docker/Dockerfile.server -t orbien-server .docker run -d -p 9527:9527 -p 9000:9000 -v PWD/conf:/conf orbien

(此路径为仓库官方提供,本机未装 Docker 未实测。)

路径三:源码编译

git clone https://github.com/orbien-org/orbien.gitcd orbiencargo build --release# 产物在 target/release/orbien-server 和 target/release/orbien

前提:先装 Rust(https://rustup.rs,国内可用 rsproxy.cn 镜像)。首次编译需拉取 tokio、quinn、rustls 等 crate,建议配置 crates.io 国内镜像。(此路径本机未装 Rust 未实测。)

路径四:桌面客户端(免命令行)

下载 orbien-desktop_3.0.0_windows_amd64.exe 一键安装,图形界面里配置隧道、监控状态,适合新手。

五、使用详解:三个典型场景

场景一:把本机网站穿透出去给外网访问

本机 8080 端口跑着一个网站,想外网通过「服务器:9000」访问:

[[tunnels]]name = "web"protocol = "tcp"service = "127.0.0.1:8080"remotePort = 9000

启动后浏览器访问 http://服务器IP:9000 就能看到本机 8080 的网站。

▲ 实测:通过 orbien 服务端 9000 端口访问到了内网本机 8080 的页面

场景二:穿透 SSH / 远程桌面

[[tunnels]]name = "ssh"protocol = "tcp"service = "127.0.0.1:22"        # 内网 SSHremotePort = 9022               # 外网访问 ssh -p 9022[[tunnels]]name = "rdp"protocol = "tcp"service = "127.0.0.1:3389"      # 内网远程桌面remotePort = 9389               # 外网远程桌面连 服务器:9389

穿透 UDP 服务同理,把 protocol 改成 udp 即可(比如穿透内网 DNS 53)。

场景三:用自己的域名 + HTTPS

先在服务端配置域名网关:

# 服务端 orbien-server.toml 追加httpGwPort = 80httpsGwPort = 443rootDomain = "example.com"

客户端用 domains 声明域名:

[[tunnels]]name = "web"protocol = "http"service = "127.0.0.1:8080"domains = ["web""app.example.com"]   # 完整域名

六、踩坑记录与解决方案

坑 1:GitHub Releases 下载慢 / 超时

现象:实测下载 2.5MB 的服务端包用了约 1 分 38 秒(约 26KB/s),客户端 2.2MB 的包连续 3 次超时失败(curl 报 exit code 28)。

原因:release 资产走 release-assets.githubusercontent.com CDN,国内直连慢且不稳。

解决:用断点续传 + 重试多次总能成功:

curl -L -C - --retry 5 --retry-delay 3 -o orbien.tar.gz "下载地址"

坑 2:云服务器安全组没放行端口,客户端连不上

现象:客户端一直连不上服务端,日志反复重连,隧道建不起来。

原因:云服务器(阿里云/腾讯云等)默认安全组只放行少量端口,9527 控制端口和所有 remotePort(如 9000)没放行。

解决:在云控制台「安全组/防火墙」放行 9527 和你要用的所有远程端口(如 9000)。(本机回环测试不涉及,公网部署必做,官方文档提示。)

坑 3:Token 不一致,客户端无限重试、隧道不建立

现象:客户端日志反复打印 login identity ...,但始终没有 login ok,隧道不出现,进程也不退出。

原因:服务端和客户端 [auth] token 不一致,登录失败后客户端自动无限重试。

解决:核对两端 token 完全一致(本机实测:正确 token 立即 login ok,改错 token 后反复重连不建立隧道)。

坑 4:dashboard 访问返回 401(是认证,不是报错)

现象:配置了 [dashboard] user/password 后,浏览器访问 8020 返回 401 Unauthorized

原因:dashboard 用 HTTP Basic Auth,需要账号密码登录。

解决:用配置的账号密码登录即可;如果 [dashboard] 不写 user/password,则免认证(实测返回 200)。

七、部署验证

本机用「同一台机器」同时跑服务端 + 客户端 + 一个本地测试网站,验证完整穿透链路(实测通过):

验证项
结果
TCP 隧道穿透(9000 → 8080)
✅ 通过,外网访问 9000 成功返回内网页面
Web 管理界面(dashboard)
✅ 正常,正确显示客户端/隧道/流量
Token 鉴权
✅ 生效,正确 token 通过、错误 token 被拒
客户端自动重连
✅ 服务端重启后客户端自动重连并重建隧道

Web 管理界面打开 http://服务器IP:8020 即可看到实时监控:

▲ dashboard 监控页:总客户端 1、在线客户端 1、隧道 1、版本 v3.0.0,附流量趋势图

▲ dashboard 隧道页:列出所有已注册的隧道

▲ dashboard 客户端页:显示在线客户端

八、常见问题

Q1:orbien 和 frp、ngrok 有什么区别?

功能定位类似(都是内网穿透),orbien 用 Rust 重写,特点是体积小(5MB)、内存占用更低、自带 Web 管理界面和桌面客户端。frp 生态更成熟、教程更多;orbien 胜在新、轻、省内存。

Q2:我没有公网 IP,能玩吗?

内网穿透的前提是「有一台公网可达的服务器」。没有公网 IP 就买一台最便宜的云服务器当服务端;或先用 ngrok 等免费隧道服务体验。

Q3:支持加密吗?安全吗?

支持。默认就做 TLS 加密传输(没配证书会自动生成临时自签证书),还支持 Token 隧道鉴权、mTLS 双向认证,HTTPS 可做透明转发或客户端 TLS 终止。

Q4:客户端必须一直开着吗?

是的。隧道由客户端主动连接维持,客户端进程停了穿透就断。建议用 systemd(Linux)或开机自启(Windows)常驻。

Q5:能穿透多少条隧道?

没限制,配置文件里写多个 [[tunnels]] 段即可,每条独立指定协议、本地服务、远程端口/域名。

九、总结

orbien 是一个「解压即用、体积 5MB、内存省」的现代内网穿透工具。部署难度中等偏易——真正的门槛不在代码,而在「有公网服务器」和「放行端口」这两件运维小事上。只要服务器就位,照着「服务端配置 + 客户端隧道配置」两步就能跑通。

如果你正在找 frp/ngrok 的替代品,或想让家里 NAS、远程桌面、本地网站能被外网访问,orbien 值得一试。

完整命令速查

# 1. 下载(Windows 64 位示例,失败就重试)curl -L -C - --retry 5 -o orbien-server.tar.gz "https://github.com/orbien-org/orbien/releases/download/v3.0.0/orbien-server_3.0.0_windows_amd64.tar.gz"curl -L -C - --retry 5 -o orbien.tar.gz "https://github.com/orbien-org/orbien/releases/download/v3.0.0/orbien_3.0.0_windows_amd64.tar.gz"# 2. 解压tar -xzf orbien-server.tar.gztar -xzf orbien.tar.gz# 3. 服务端配置 orbien-server.toml#    listen = "0.0.0.0:9527"#    [dashboard] addr/port/user/password(可选)#    [auth] type="token" token="..."(公网建议开)# 4. 启动服务端orbien-server.exe -c orbien-server.toml    # Windows# ./orbien-server -c orbien-server.toml     # Linux# 5. 客户端配置 orbien.toml#    server = "服务器IP:9527"#    [auth] token 与服务端一致#    [[tunnels]] name/protocol/service/remotePort# 6. 启动客户端orbien.exe -c orbien.toml    # Windows# ./orbien -c orbien.toml     # Linux# 7. 验证:浏览器访问 http://服务器IP:9000(隧道远程端口)

项目地址:[orbien] (https://github.com/orbien-org/orbien)

标签:内网穿透 | orbien | frp | Rust | 远程访问 | 部署教程