【免费下载链接】omnyssh
Fast, open-source SSH client and server manager for macOS, Windows and Linux. Desktop GUI and terminal TUI with a live metrics dashboard, tabbed terminal, SFTP file manager, port forwarding, one-click SSH keys and snippets. Built in Rust.
如果你需要在自己的电脑上访问服务器内网里的 Web 面板、MySQL/PostgreSQL 数据库,而又不想折腾ssh -L命令和 tmux 保活,OmnySSH 的本地端口转发(Local Port Forwarding)是更省心的选择。OmnySSH 是一款开源的 SSH 客户端与服务器管理工具,支持 macOS、Windows 和 Linux,它把ssh -L的能力做成了图形界面:在主机卡片里点一下按钮,本地端口就自动监听,断线还会自动重连。
本地端口转发是什么?为什么比 ssh -L 方便
先花 30 秒理解原理,后面就全通了:
你的电脑 服务器 127.0.0.1:9443 ──SSH隧道──▶ 服务器内部的 127.0.0.1:9443(面板)- 你在本地打开
127.0.0.1:9443,流量会走 SSH 通道,由服务器转发给它本地的 9443 端口——所以面板、数据库等只监听内网、不对外暴露的服务,也能安全访问,无需开放任何公网端口。 - 规则写法与
ssh -L完全一致:[绑定地址:]本地端口:远端主机:远端端口,例如9443:127.0.0.1:9443。 - 与手动
ssh -L相比,OmnySSH 的隧道有三大优势:断线自动重连(1s→2s→5s→10s→30s 逐级退避,端口全程保留不被抢走)、随应用自启动、一台主机一条隧道承载所有转发,同时还能在多台主机上各跑一条。
这些行为都实现在核心模块 crates/omnyssh-core/src/ssh/tunnel.rs 中,开源可读,逻辑透明。
OmnySSH设置端口转发的最快方法:图形界面3步完成
以访问内网数据库db.internal:5432为例,整个流程不到一分钟:
第 1 步:打开主机编辑器。在 Dashboard 里找到目标主机卡片,点击卡片上的编辑按钮(笔形图标)。
第 2 步:添加转发规则。在Port forwarding区域点击Add forward,填写三列:
| 本地端口 | 远端主机 | 远端端口 |
|---|---|---|
| 5432 | db.internal | 5432 |
| 9443 | 127.0.0.1 | 9443 |
第 3 步:保存并启动隧道。回到仪表盘后,该主机的卡片上会出现Start the tunnel按钮,点击即建立隧道,状态显示为Active。之后用任意客户端连接本地127.0.0.1:5432就等于连上了服务器内部的数据库。
界面上的编辑逻辑位于 HostEditor.svelte,规则校验(如"远端端口必须是数字")会阻止半成品配置被保存,填错不用怕。
转发规则详解:ssh -L 记号法与绑定地址
OmnySSH 的转发规则直接沿用ssh -L的记号[bind_address:]port:host:hostport,几个细节值得知道:
- 不写绑定地址 = 只监听本机。如
9443:127.0.0.1:9443,只有你自己的电脑能用,安全性最好;localhost与省略等价。 - 想让局域网内其他设备访问,就把绑定地址写成
0.0.0.0或*,例如0.0.0.0:9443:127.0.0.1:9443。 - 远端主机由服务器解析。规则里的
localhost指的是服务器自己,不是你的电脑——这正是"访问内网面板"能成立的原因。 - IPv6 可用方括号包裹,如
[::1]:8080:[fe80::1]:80,解析细节见 tunnel.rs 中的 LocalForward 实现。 - 配置存得极简:规则以原样字符串保存在
hosts.toml,形如local_forwards = ["9443:127.0.0.1:9443"],迁移或备份时一目了然。
另外,如果你已有~/.ssh/config,OmnySSH 启动时会读取其中的LocalForward行并自动合并为主机的转发规则(解析逻辑),老用户的迁移成本为零。
TUI版本:一个字母 f 快速开关隧道
偏爱终端的用户可以用 TUI 版本(运行omny)。在同一台主机上给主机表单填上port:host:hostport形式的转发后,选中该主机直接按f,即可启动/停止它的隧道,无需离开列表。
TUI 与桌面版共用同一套核心引擎(crates/omnyssh-core),隧道行为完全一致。
隧道自动启动与断线自愈:长期可用的关键
内网数据库隧道最理想的状态是"开机就在"。OmnySSH 提供了两层保障:
- 随应用自启动:在主机编辑器的 Port forwarding 区域打开Start tunnel when OmnySSH opens开关,下次启动 OmnySSH 时隧道自动建立。
- 断线自动重连:连接意外中断后,卡片会显示Reconnecting…及具体原因(如
connection lost),后台按退避间隔自动重试;本地端口在整个过程中始终被占用,不会中途被其他进程抢占。若认证凭据(密钥口令或登录密码)在别处被补上,隧道也会自动接管。
状态变化通过tunnel-status-changed事件推送到界面(事件定义、前端状态存储),启动/停止指令则由 commands/tunnels.rs 发出,前后端职责清晰。
常见场景与注意事项
- 访问宝塔、Portainer 等只监听内网的面板:转发面板端口到本地,浏览器打开本地地址即可,面板无需暴露公网。
- 访问内网数据库:数据库客户端(如 DBeaver、pgAdmin、Navicat)直连
127.0.0.1:5432,连接串和平时一样。 - 多台主机:每条隧道绑定各自的本地端口,互不干扰,可同时运行任意多条。
- 端口冲突:本地端口被占用时,整条隧道的所有端口都不会生效并给出明确报错——这是有意设计,避免出现"看起来在工作、实际漏了一个端口"的假象。
- 安全提醒:把绑定地址设为
0.0.0.0等于把内网服务暴露给你的局域网,请只在可信网络中这样做;数据库账号建议用最小权限账号。
小结
OmnySSH 把ssh -L从"敲命令 + 祈祷不断线"变成了图形界面里的一个按钮:规则与原生记号一致、支持从~/.ssh/config导入、可随应用自启动、断线自动重连,且桌面 GUI 与终端 TUI 双端可用。如果你的痛点是"内网面板和数据库怎么安全地访问",这套本地端口转发方案值得直接上手。
【免费下载链接】omnyssh
Fast, open-source SSH client and server manager for macOS, Windows and Linux. Desktop GUI and terminal TUI with a live metrics dashboard, tabbed terminal, SFTP file manager, port forwarding, one-click SSH keys and snippets. Built in Rust.
相关推荐
mirrord 端口转发(Port Forwarding)实战指南:-L 本地转发与 -R 反向转发全解析
mirrord 端口转发(Port Forwarding)实战指南: L 本地转发与 R 反向转发全解析 导读 本文讲解 mirrord CLI 的 port
开发工具云原生CLIDLSS Swapper 完整教程:不依赖游戏更新,自由切换 DLSS 版本
DLSS Swapper 完整教程:不依赖游戏更新,自由切换 DLSS 版本 游戏里把 DLSS 调到"质量"却觉得画面不对劲,帧率也没想象中好——会不会是游戏
桌面应用Edgartools高级技巧:Form 13F机构持股数据深度分析
Edgartools高级技巧:Form 13F机构持股数据深度分析 Form 13F是美国SEC要求管理资产超过1亿美元的机构投资经理每季度提交的持仓报告,包含
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考