反向 VNC 与 5500 端口
5500 是 VNC 的一个特殊用途端口:vncviewer 以监听模式启动时在 5500 等待被控端主动回连,也就是常说的反向 VNC。它解决被控端位于 NAT 或防火墙之后、无法被直接访问的场景:由内网机器主动连出到运维机,运维人员再看到它的屏幕。方向搞混是这类排障最常见的错误。
基本信息
| 服务 | VNC viewer listening mode,RFB 协议 |
|---|---|
| 端口/协议 | TCP 5500 |
| 连接方向 | 被控端主动连出到观看端,与常规 VNC 相反 |
| 对比端口 | 5900 加编号为常规 VNC 服务端监听端口 |
| 权限要求 | 运维机开放端口,被控端执行连接命令 |
| 安全等级 | 仅运维机可达,需配合口令与隧道 |
典型使用场景
- 内网穿透协助:为无法直接访问的主机做遥控支持
- 临时支持:用户侧只需执行一条命令即可共享桌面
- 隔离网段运维:经运维跳板机建立单向连接
- 演示与培训:让远端机器把画面推到观看端
- 排障:确认连接方向与等待端口是否正确
两端命令示例
两端命令示例
# 观看端,通常是有公网或可达地址的一侧
vncviewer -listen
# 被控端,内网机器主动连出
vncviewer -connect viewer.example.com:5500
ss -lntp | grep 5500 # 确认观看端是否在监听
# 需要更安全的方式时优先用 SSH 隧道或经 VPN 建立连接方向与端口对照
| 角色 | 监听端口 | 行为 |
|---|---|---|
| 常规 VNC 服务端 | 5900 加编号 | 服务端等待客户端连接 |
| 反向 VNC 观看端 | 5500 | 等待被控端回连,本条目 |
| 反向 VNC 被控端 | 临时端口 | 主动连出到观看端 |
| SSH 隧道方案 | 22 | 加密转发,推荐替代 |
运维要点
- 协助结束后立即关闭监听,避免回连通道长期开放
- 观看端限制来源地址,只接受预期网段的回连
- 配合口令或一次性凭据使用,避免长期共用同一口令
- 能用隧道就用隧道,把控制通道收敛到加密连接上
- 记录每次协助的时间与对象,便于事后追溯
VNC 的认证强度普遍偏弱,部分实现的口令长度受限。反向方式虽然绕过 NAT,但把屏幕控制能力交给了主动连接的一方,仍应配合强口令与来源限制。
在公网运维机上监听 5500 等待接入,等于对外开了一个远程控制入口。应限制来源地址、使用加密隧道,并在使用后及时关闭监听。