隧道
Bayesian SSH 提供了用于开启本地端口转发隧道和 SOCKS5 动态代理的内置命令,无需繁琐记忆 OpenSSH 参数。隧道在前台运行,并在中断时优雅关闭。
本地端口转发
Section titled “本地端口转发”bssh forward 命令用于创建 SSH 本地端口转发隧道(即 -L 模式)。发送到本地监听端口的流量会通过远程 SSH 主机被转发至指定的目标地址。
bssh forward db01 -L 5432:localhost:5432-L 参数格式遵循标准 OpenSSH 规范:
[bind_addr:]bind_port:remote_host:remote_portbind_addr:本地绑定的 IP 地址。省略时默认使用127.0.0.1。bind_port:bssh监听传入连接的本地端口。remote_host:从远程 SSH 主机访问的目标主机地址。remote_port:remote_host上的目标端口。
IPv6 地址可以使用方括号包裹:
bssh forward web-prod -L [::1]:8080:[fe80::1]:80常见使用示例
Section titled “常见使用示例”将远程数据库映射到本地机器:
bssh forward db01 -L 5432:localhost:5432此时即可在本地将客户端工具(如 psql 或数据库可视化软件)直接连接至 localhost:5432。
通过跳板机访问内网服务:
bssh forward bastion -L 8080:internal-api.corp:80发往本地 http://localhost:8080 的请求将由 bastion 转发到 internal-api.corp 的 80 端口。
监听所有本地网络接口:
bssh forward web-prod -L 0.0.0.0:8080:localhost:80指定 0.0.0.0 可以允许局域网内的其他设备访问该映射端口。
SOCKS5 动态代理
Section titled “SOCKS5 动态代理”bssh proxy 命令启动一个 SSH 动态端口转发(即 -D 模式),充当本地 SOCKS5 代理。任何支持 SOCKS5 代理的应用程序都可以经由远程 SSH 主机路由流量。
bssh proxy web-prod -D 1080-D <PORT>:SOCKS5 代理监听的本地端口(必填)。--bind <ADDR>:本地监听地址(可选,默认:127.0.0.1)。
如需将 SOCKS5 代理开放给局域网其他设备使用:
bssh proxy bastion -D 9050 --bind 0.0.0.0配置客户端连接
Section titled “配置客户端连接”配置应用程序通过 socks5://127.0.0.1:1080 访问网络。
例如使用 curl 测试代理通道:
curl --socks5-hostname 127.0.0.1:1080 https://api.ipify.org返回的 IP 地址将是远程 SSH 主机的公网 IP,而不是你本地的真实网络地址。
隧道的执行与路由过程
Section titled “隧道的执行与路由过程”启动 bssh forward 或 bssh proxy 时:
bssh会利用模糊匹配和贝叶斯排序解析目标连接。- 终端打印连接状态与监听详情:
→ SOCKS5 proxy on 127.0.0.1:1080 via web-prod (native)Configure your client: socks5://127.0.0.1:1080Press Ctrl+C to stop.
- 未启用 Kerberos 且无跳板机的直接连接将使用 Rust 原生 SSH 传输层(
russh)。 - 途经跳板机或需要 Kerberos 的连接会自动降级为 OpenSSH 子进程(
ssh -L或ssh -D),以确保跳板机路由与凭据处理完全兼容。
停止隧道或代理
Section titled “停止隧道或代理”bssh forward 和 bssh proxy 均以前台进程形式运行。
如需停止隧道:
- 在运行该命令的终端中按下 Ctrl+C。
bssh捕获中断信号,安全释放本地端口监听,关闭远程 SSH 通道并退出:Shutting down proxy…Done.
隧道与代理目前均在命令行界面中管理。桌面应用当前专注于交互式终端会话、SFTP 文件传输、已存主机管理、会话历史以及团队协作共享,暂未设立单独的隧道视图。