windows系统本身不自带“安全隧道服务”,但可通过启用内置openssh服务器(sshd)实现ssh隧道功能,支持本地(-l)、远程(-r)和动态(-d)三类标准端口转发;需在windows 10 1809+/11中安装“openssh服务器”可选功能,启动sshd服务并放行tcp 22端口,必要时修改sshd_config启用allowtcpforwarding。
windows 系统本身不自带“安全隧道服务”,但可通过启用内置的 openssh 服务器 来实现 ssh 隧道功能——它不是独立的服务名叫“安全隧道”,而是以 sshd(openssh server)服务形式运行,支持本地/远程/动态端口转发等标准 ssh 隧道能力。
如何让 Windows 具备 SSH 隧道能力
关键在于安装并启用 OpenSSH 服务端(sshd),而非依赖第三方工具。自 Windows 10 1809 和 Windows Server 2019 起,OpenSSH 已作为可选功能集成进系统:
- 打开“设置 → 应用 → 可选功能 → 添加功能”,搜索并安装“OpenSSH 服务器”
- 安装后,在 PowerShell(管理员)中执行:
Start-Service sshdSet-Service -Name sshd -StartupType 'Automatic' - 检查防火墙是否放行 TCP 22 端口(或自定义端口),确保远程 SSH 连接可达
Windows 上能跑哪几种 SSH 隧道
只要客户端能连上这台 Windows 的 sshd,就可按标准 SSH 协议建立三类隧道:
-
本地端口转发(-L):例如把本地 13306 映射到内网数据库
192.168.1.100:3306,命令为ssh -L 13306:192.168.1.100:3306 user@win-server-ip - 远程端口转发(-R):让 Windows 服务器对外暴露一个端口(如 5000),流量反向打回你本机的 3306,适合从外网访问本地服务
-
动态端口转发(-D):在 Windows 上启动 SOCKS5 代理(如
-D 1080),供浏览器或应用走加密通道上网
配置要点与常见问题
默认安装的 OpenSSH 服务已启用端口转发,但需确认以下两项:
- 编辑
C:\ProgramData\ssh\sshd_config,确保含这两行:AllowTcpForwarding yesGatewayPorts no(若需外部主机访问本地映射端口,改为yes并加-g参数) - MySQL 类服务连接时注意:
127.0.0.1和localhost在权限解析上不同;走隧道建议目标地址写127.0.0.1:3306,避免因 socket 认证失败 - 若使用密钥登录,需将公钥正确放入用户目录下的
C:\Users\{user}\.ssh\authorized_keys,并设好文件权限(否则 sshd 拒绝加载)
替代方案:PuTTY 或 Windows 自带 ssh 客户端
若 Windows 仅作隧道客户端(不运行 sshd),无需额外安装服务:
- Win10/11 自带 OpenSSH 客户端,CMD 或 PowerShell 直接运行
ssh -L...命令即可 - PuTTY 用户可在 “Connection → SSH → Tunnels” 页面图形化配置,填入 Source port 和 Destination,选择 Local/Remote 后保存会话
- 后台静默运行可用
ssh -f -N -L...,其中-f让进程转入后台,-N表示不执行远程命令,纯建隧道











