bore 自建内网穿透:三步把本地服务放到公网
【免费下载链接】bore🕳 bore is a simple CLI tool for making tunnels to localhost项目地址: https://gitcode.com/gh_mirrors/bo/bore
家里机器 127.0.0.1:8000 上的服务,手机和笔记本都打不开——这是典型的内网问题。bore 是用 Rust 写的轻量隧道工具:同一个可执行文件既能当公网服务端,也能当本地客户端,不依赖任何第三方服务,几分钟就能完成 bore 内网穿透的自建部署。
bore 适合谁、解决什么问题
bore 刻意做得极简,只干一件事:转发 TCP 流量。相比常见的托管穿透服务,它的定位有几点不同:
- 单一二进制:客户端和服务端是同一个程序——公网机器跑
bore server,本地跑bore local - 完全自控:流量走自己的服务器,不用注册账号和域名,带宽也不受限于他人
- 代码量极小:整个项目约 400 行 Rust,想看实现读 src/server.rs 就够
它适合把 Web 服务、API、开发站点暴露到外网的场景。它不做 UDP、不做负载均衡、也没有管理界面。
部署 bore 前备齐三样东西
- 一台有公网 IP 的 Linux 机器:云服务器即可,要求是端口能从公网访问
- 两组端口:7835 是固定的控制端口(客户端在这里建隧道);隧道端口范围默认 1024–65535,可用参数收紧
- Rust 工具链或 Docker:客户端跑在本地机器上,需装好 Rust;服务端同样可装 Rust,或用 Docker 直接运行(仓库内附 Dockerfile)
bore 三步跑通
bore 服务器部署:启动控制服务
在公网服务器上先装好二进制,再启动服务:
cargo install bore-cli bore server --secret <密码> --min-port 10000 --max-port 20000第一条安装 bore;第二条启动服务端,--secret设置连接密码,--min-port/--max-port限定隧道可占用的端口。日志输出server listening即表示服务已起,正监听 7835。
本地建立 bore 隧道
在本地机器(假设服务已跑在 8000 端口)安装 bore 并建隧道:
cargo install bore-cli bore local 8000 --to <服务器IP>:7835 --secret <密码> --port 15000bore local 8000声明要转发本地 8000 端口,--to指定服务器地址,--port 15000请求固定的公网端口(省略则随机分配)。输出出现listening at <服务器IP>:15000,隧道就建好了 ✅
外网验证:访问公网地址
用一台内网之外的设备(如手机热点下的设备)在浏览器打开http://<服务器IP>:15000,或用命令检查:
curl http://<服务器IP>:15000看到本地 8000 端口的页面内容,说明整条链路已通。
把安全做在前面:生成并保管 bore secret
⚠️ 不设--secret时,知道服务器 IP 的人都能建隧道。生产环境先用随机源生成强密码:
openssl rand -base64 32把结果同步给服务端和客户端。保管方式:写入服务器上的密钥文件,或导出为BORE_SECRET环境变量(bore 会自动读取),不要提交进代码仓库。
另有一个边界要知道:secret 只参与初次握手的 HMAC 质询(实现见 src/auth.rs),后续转发流量本身不加密。敏感服务建议配 Nginx 反代签发 HTTPS,安全组只放行 7835 和你约定的隧道端口段。
隧道不通时按这个顺序查
- 进程:服务器上
ps aux | grep bore,确认bore server还在运行 - 控制端口:本地执行
curl -v telnet://<服务器IP>:7835,超时就是云安全组/防火墙没放行 7835 - secret:客户端报握手失败,多半是两端的
--secret不一致 - 端口范围:
--port的值必须落在服务端--min-port/--max-port区间内且未被占用,否则返回端口错误 - 本地服务:先在本地确认
localhost:8000可达,隧道正常时本地服务挂了也会报错
跑通之后剩下的工作是稳定性:把服务端注册成 systemd 服务实现崩溃自启;前端加一层 Nginx 反代解决 HTTPS;同一台服务器可服务多个客户端,每个bore local各占一个独立公网端口。
【免费下载链接】bore🕳 bore is a simple CLI tool for making tunnels to localhost项目地址: https://gitcode.com/gh_mirrors/bo/bore
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考