URL
type
status
date
slug
summary
tags
category
icon
password
notion image

一、为什么需要“伪装流量”?

在一些网络环境下(比如公司内网、校园网,或特定地区的网络),我们常常会遇到这些限制:
  • UDP / WireGuard / VPN 端口被防火墙阻断
  • 只有 80、443 等常规 HTTP/HTTPS 端口能出网
  • 甚至连 SSH 连接都不稳定
此时,如果我们能把这些“被封锁”的流量包装进一个看起来正常的 Web 流量中,那么在多数 DPI(深度包检测)或企业防火墙眼中,它就只是一个平平无奇的 HTTPS 请求。
这就是 wstunnel 登场的地方。

二、wstunnel 是什么?

wstunnel 是一个开源工具,允许你把任何 TCP / UDP 流量,通过 WebSocket 或 HTTP/2 通道进行转发。
换句话说:
它能让你的任意网络连接,看起来就像是一个普通的浏览器在访问 HTTPS 网站。
项目地址:
🔗 https://github.com/erebe/wstunnel

三、工作原理(通俗解释)

可以把它想象成一个“流量信封”:
  • 客户端把要传输的数据(例如 WireGuard、SSH、Socks5)装进信封;
  • 信封的外层是一个正常的 WebSocket 请求;
  • 发给服务器时,外层就被看作是 HTTPS 流量;
  • 服务端拆掉信封,再把里面的真实数据转发出去。
原理要点:
  • 使用 WebSocket(或 HTTP/2)作为传输层;
  • 支持 TLS 加密,看起来就是标准 HTTPS;
  • 服务端可限制访问路径与目标,防止滥用;
  • 支持 Socks5 / HTTP 代理 / 透明代理;
  • 可与 VPN(如 WireGuard)叠加使用。

四、常见使用场景

场景
说明
🧱 防火墙穿透
在只允许 443 端口出站的网络环境下,伪装任意流量为 HTTPS
🧳 远程办公代理
在公司网络中使用 SSH、RDP、VNC 时走 WebSocket 隧道
🕸️ WireGuard 封装
把 WireGuard UDP 流量包装成 WebSocket 流量
🧩 动态代理
提供 Socks5 或 HTTP 代理服务
🧍‍♂️ 单机转发
仅本地端口转发调试使用

五、安装与启动示例

wstunnel 提供了预编译的二进制文件,Linux / macOS / Windows 都可直接下载使用。
📦 下载地址:
https://github.com/erebe/wstunnel/releases

示例一:TCP 转发(基础示例)

假设你有一台云服务器 example.com
你希望把本地流量通过 WebSocket 发到远程,再由远程转发出去。
服务端:
客户端:
现在本地就有了一个 Socks5 代理:
socks5h 表示连 DNS 解析也走代理,防止 DNS 泄漏。

示例二:WireGuard 流量伪装成 HTTPS

服务端(监听 WireGuard 端口 51820)

客户端

然后在 WireGuard 客户端配置中:
🔍 记得添加静态路由:
确保连接 wstunnel 的服务器 IP 不走隧道,否则会循环。

六、安全与优化建议

1. 使用真实证书
默认的自签证书容易被识别,建议用 Let’s Encrypt 或自签唯一证书。
2. 设置路径前缀
使用 --restrict-http-upgrade-path-prefix 添加访问密钥,防止被他人利用
3. 注意循环路由
隧道客户端需要给服务器 IP 添加静态路由,否则请求可能会“兜圈子”
4. 调整 MTU
因为封装层的额外负载,建议将 WireGuard MTU 调低到约 1300,避免分片
5. 避免滥用资源
路由器、小机型等内存较小环境可能会出现 OOM,需监控连接数。

七、HTTP/2 与 WebSocket 的区别

wstunnel 支持两种传输层:
协议
优点
风险 / 限制
WebSocket
延迟低、兼容性好
容易被识别为 WS 流量
HTTP/2
多路复用、单连接
一些代理/CDN 会缓冲 H2 流量导致延迟
一般推荐默认使用 WebSocket (wss://) 模式。

八、常见坑与排查

问题
原因
解决方案
连接成功但无流量
MTU 过大
降到 1300
WireGuard 无法连上
路由循环
添加静态路由
隧道断开频繁
代理缓存 / 防火墙检测
改用 TLS 或增加 keepalive
浏览器访问无响应
缺少路径前缀或证书不匹配
检查 --http-upgrade-path-prefix 和证书设置

九、进阶功能

  • ✅ 支持 mTLS 双向认证
  • ✅ 支持 Socks5 / HTTP 代理模式
  • ✅ 支持 透明代理(Linux TProxy)
  • ✅ 支持 UDP 隧道与超时参数
  • ✅ 支持 HTTP 代理穿透(企业代理内网)
更多配置可参考官方文档:
📖 https://github.com/erebe/wstunnel/blob/main/docs

总结

wstunnel 不是传统意义的 VPN,而是一个“伪装层”:
它的目标不是提供加密,而是 让流量在受限环境中“看起来正常”
如果你的网络只能通过 HTTPS 出网、或需要隐藏 VPN 流量的存在,它会是一个非常实用的小工具。
网页内容永久保存,25000+ GitHub Star!Councilon 社工裤子 | 美国佬天塌了
Loading...