前言
在公司、校园网络环境中,管理员常通过DPI 深度包检测、IPS 入侵防御封锁 SSH 默认 22 端口,一旦识别 SSH 协议就会发送 RST 包强制中断连接,导致无法远程管理自己的云服务器。
本文分享一套合法、安全、无侵入的解决方案:基于stunnel将 SSH 流量伪装成 HTTPS 加密流量,走 443 通用端口,绕过绝大多数网络封锁,适配Ubuntu 服务器 + Windows 客户端,全程复制粘贴即可完成。
核心原理
- 网络封锁逻辑:DPI 识别 22 端口 + SSH 明文特征,主动阻断;
- 绕过思路:用 TLS 加密包裹 SSH 流量,伪装成 HTTPS 网站流量;
- 方案优势:端口 443(全网通行)、无 SSH 特征、全程加密,抗 RST 阻断。
服务端配置(Ubuntu 一键部署)
安装依赖
apt update && apt install stunnel4 -y
生成 TLS 证书(自用无需申请)
openssl req -new -days 3650 -nodes -x509 -sha256 \ -keyout /etc/stunnel/stunnel.key \ -out /etc/stunnel/stunnel.crt \ -subj "/CN=myself"
写入核心配置
监听 443 端口,转发流量至本地 22 端口(SSH 服务):
cat > /etc/stunnel/stunnel.conf <<EOF sslVersion = TLSv1.2 ciphers = HIGH:!aNULL:!MD5 socket = l:TCP_NODELAY=1 socket = r:TCP_NODELAY=1 [ssh] accept = 0.0.0.0:443 connect = 127.0.0.1:22 cert = /etc/stunnel/stunnel.crt key = /etc/stunnel/stunnel.key EOF
启动并设置开机自启
# 开机自启
systemctl enable stunnel4
# 启动服务
systemctl restart stunnel4
# 查看运行状态(出现active (running)即为成功)
systemctl status stunnel4
放行防火墙 + 云服务器安全组
# 如果使用了防火墙的话 放行443端口
ufw allow 443/tcp
⚠️ 云服务器必须在控制台安全组开放 443 端口,否则无法连接。
客户端配置(Windows 极简设置)
安装 stunnel
下载地址:https://www.stunnel.org/downloads.html
一路默认安装即可。
修复端口占用报错(关键)
Windows 本地 22 端口易被占用,会导致启动失败,务必使用自定义端口。
打开C:\Program Files (x86)\stunnel\config\stunnel.conf,清空原有内容,粘贴配置:
client = yes
[ssh] accept = 127.0.0.1:12345
connect = 你的服务器公网IP:443
启动客户端
双击桌面stunnel GUI,托盘出现小锁图标即为运行成功。
远程连接使用
打开 Windows CMD/PowerShell,执行命令连接服务器:
ssh 服务器用户名@127.0.0.1 -p 12345
# 示例:ssh root@127.0.0.1 -p 12345
总结
面对公司 / 校园的 SSH 封锁,无需复杂操作,stunnel就能轻松将 SSH 伪装成 HTTPS 流量,443 端口全网通行,完美解决 RST 阻断问题。这套方案是个人远程管理服务器的最优解,安全稳定且零门槛上手。