一个可直接运行的 suo5 独立版服务端实现. 项目主要逻辑来自 suo5.jsp, 去掉了 JSP 和 Servlet 容器相关部分, 改为使用 JDK 自带的 HTTP 服务能力启动和处理请求, 因此不需要 Tomcat, Jetty 等容器.
适合需要单独启动 Suo5 代理, 但又不想要部署一个完整 Servlet 容器的场景.
- 去除了
suo5.jsp对 Servlet 方法, 和 Servlet 容器生命周期的依赖. - 增加
Suo5Handler, 负责处理 HTTP 请求入口, 路径注册和简单鉴权. - 增加
SimpleRequest和SimpleResponse, 用HttpExchange适配原 suo5 逻辑需要的请求, 响应方法. - 保留 suo5 原有协议处理逻辑, 包括握手, 全双工流, 半双工流, 经典模式, 隧道状态管理, 数据编解码, 转发和模板响应等核心行为.
需要先安装 JDK, 并确保 javac, jar, java 已加入 PATH.
Windows:
build-windows.batLinux:
bash build-linux.sh编译成功后会生成
Suo5Server.jar
默认启动:
java -jar Suo5Server.jar默认监听 http://0.0.0.0:1098/s5 , 使用suo5客户端连接即可
指定监听地址, 端口, 路径和 token:
java -jar Suo5Server.jar -l 127.0.0.1 -p 1098 -P /s5 -t your-token -k 'X-Auth-Token'-l 监听地址, 默认 0.0.0.0
-p 监听端口, 默认 1098
-P HTTP 路径, 默认 /s5
-t 访问 token, 默认空. 为空时不启用鉴权
-k token 请求头名称, 默认 X-Authorization
启用 -t 后, 请求需要满足以下任一条件:
- 请求头中带上 token, 例如
X-Authorization: your-token - URL 查询参数中带上 token, 例如
/s5?token=your-token
如果使用自定义请求头:
java -jar Suo5Server.jar -t your-token -k X-Token客户端请求需要带上:
X-Token: your-token
监听本机地址, 仅允许本机访问:
java -jar Suo5Server.jar -l 127.0.0.1 -p 1098 -P /s5 -t change-me监听所有网卡:
java -jar Suo5Server.jar -l 0.0.0.0 -p 1098 -P /s5 -t change-me然后将兼容 suo5 协议的客户端服务端地址配置为:
http://127.0.0.1:1098/s5
如果启用了 token, 需要在客户端请求中配置对应请求头, 或在 URL 中追加 ?token=change-me.