用 Go 编写的自托管隧道工具,通过你自己的域名和服务器将本地服务暴露到公网。
- Star
- 11,538
- Fork
- 618
- 未关闭 Issue
- 18
- 最近提交
- 9个月前
这是什么?
bore 是一个用 Rust 编写的命令行 TCP 隧道工具。执行 `bore local <端口> --to <服务器>` 即可把本地端口转发到远程服务器上的公网地址,远程端口默认随机分配,也可以指定。它的目标是让本地服务无需修改路由器配置,就能穿透 NAT 和防火墙被外部访问。
工具的功能刻意保持精简,只转发原始 TCP 流量。服务端通过一条 `bore server` 命令启动,可以自行部署,并支持设置端口范围、控制端口与隧道端口的绑定地址,以及可选的共享密钥。密钥用于每次连接的 HMAC 握手验证,握手之后的流量默认不加密。
项目以单个二进制文件发布,可通过 Cargo、Homebrew、AUR、预编译版本或 Docker 安装,底层基于 Tokio 构建。
核心功能
- 01将本地 TCP 端口转发到远程服务器的公网地址。
- 02可指定远程端口,也可使用随机分配的端口。
- 03通过一条 `bore server` 命令即可自行部署服务端。
- 04支持可选的共享密钥对客户端进行认证。
- 05控制服务与隧道可以使用不同的绑定地址。
- 06可通过 Cargo、Homebrew、AUR、预编译二进制或 Docker 安装。
适用场景
- 开发时把本地网站分享给同事,或为 webhook 服务提供回调地址。
- 无需修改路由器端口转发,即可让家庭网络中的服务被外部访问。
- 在自有服务器上部署私有隧道服务。
快速上手
- 1
使用 Cargo 安装 bore 命令行工具(需要 Rust)
cargo install bore-cli - 2
通过公共服务器 bore.pub 暴露本地 8000 端口
bore local 8000 --to bore.pub
使用前须知
- 除初始握手外,数据默认不加密。
- 若不想依赖公共 bore.pub 服务器,需要自行部署服务端,有一定配置工作量。
标签
常见问题
- bore 是什么?
- 一个用 Rust 编写的极简命令行工具,可将本地 TCP 端口通过远程服务器暴露到公网。 bore 是一个用 Rust 编写的命令行 TCP 隧道工具。执行 `bore local <端口> --to <服务器>` 即可把本地端口转发到远程服务器上的公网地址,远程端口默认随机分配,也可以指定。它的目标是让本地服务无需修改路由器配置,就能穿透 NAT 和防火墙被外部访问。
- bore 可以免费使用吗?用的什么许可证?
- bore 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- bore 还在维护吗?
- 超过半年未提交。bore 最近一次提交是在 2026年2月4日。
- bore 适合用来做什么?
- 开发时把本地网站分享给同事,或为 webhook 服务提供回调地址。 无需修改路由器端口转发,即可让家庭网络中的服务被外部访问。 在自有服务器上部署私有隧道服务。
- bore 怎么安装和运行?
- 使用 Cargo 安装 bore 命令行工具(需要 Rust): cargo install bore-cli 通过公共服务器 bore.pub 暴露本地 8000 端口: bore local 8000 --to bore.pub
- 在哪里获取 bore?
- 源代码和安装说明在 GitHub 上:https://github.com/ekzhang/bore
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
92062GoBSD-3-Clause更新于 16天前
开源免费的 ngrok 替代工具,通过 Cloudflare Tunnel 将本地服务暴露为 HTTPS 公网地址。
768143TypeScriptMIT更新于 2个月前
开源的 ngrok 替代方案,一条命令即可把本地 HTTP 服务暴露到公网 HTTPS 地址。
43733GoMIT更新于 23天前
类似 netcat 的命令行工具和 Go 库,无需 Tailscale 账号即可通过其 WireGuard 数据面在两台机器间建立加密连接。
8415378GoBSD-3-Clause更新于 12天前
用于记录和管理家庭实验室及小型 IT 基础设施的 Web 界面与 CLI 工具,数据以 YAML 保存。
182092JavaScriptAGPL-3.0更新于 8天前
命令行代理工具,在 AI 编程助手读取 shell 命令输出前进行过滤和压缩,减少 token 消耗。
8.4万5334RustApache-2.0更新于 昨天