|
| 1 | +## ✅ 服务端配置:ss.yml |
| 2 | + |
| 3 | +### 基础配置项 |
| 4 | + |
| 5 | +| 配置项 | 类型 | 默认值 | 是否必填 | 说明 | |
| 6 | +| -------------------- | ------------ | ---------- | ---- | ---------------------------------------------------------------------------- | |
| 7 | +| `type` | String | 无 | ✅ | 服务运行协议类型,支持:`post`、`websocket`、`hppt`、`rhppt`、`rpost`、`file` 或插件类全名(如 Kafka) | |
| 8 | +| `port` | int | 无 | ✅ | 服务端监听端口 | |
| 9 | +| `clients` | List<Client> | 无 | ✅ | 允许连接的客户端账户列表,包含字段 `user` 和 `password` | |
| 10 | +| `relayScConfig` | ScConfig | null | ❌ | 中继模式下嵌套一个完整的客户端配置(可实现链式转发) | |
| 11 | +| `addonsPath` | String | `./addons` | ❌ | 插件目录路径 | |
| 12 | +| `heartbeatTimeout` | long | -1 | ❌ | 心跳超时时间(ms),超过未收到心跳将强制重启连接 | |
| 13 | +| `initSessionTimeout` | long | 30000 | ❌ | 建立连接后与目标端口握手的最大超时(ms) | |
| 14 | +| `sessionTimeout` | long | 120000 | ❌ | 空闲会话超时(ms),超时未确认将强制关闭连接 | |
| 15 | +| `messageQueueSize` | int | 2048 | ❌ | 每个会话消息队列的最大长度,超出将强制断开 | |
| 16 | +| `maxReturnBodySize` | long | 10MB | ❌ | 每个请求最大返回数据体积(字节) | |
| 17 | +| `passwordRetryNum` | int | 5 | ❌ | 密码允许重试次数,超过后账号锁定直到重启 | |
| 18 | +| `lifecycle` | String | null | ❌ | 自定义生命周期实现类,允许实现初始化/销毁钩子 | |
| 19 | + |
| 20 | +### 客户端认证配置 |
| 21 | + |
| 22 | +```yaml |
| 23 | +clients: |
| 24 | + - user: user1 |
| 25 | + password: 123456 |
| 26 | + - user: admin |
| 27 | + password: admin123 |
| 28 | +``` |
| 29 | +
|
| 30 | +--- |
| 31 | +
|
| 32 | +### 协议专用配置项(服务端) |
| 33 | +
|
| 34 | +#### `post` |
| 35 | + |
| 36 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 37 | +| ------------------ | ---- | ----- | ------------------ | |
| 38 | +| `waitResponseTime` | long | 10000 | 等待真实端响应的最大时间(ms) | |
| 39 | +| `replyDelayTime` | long | 0 | 延迟回复时间(ms),用于调试等场景 | |
| 40 | +| `bossGroupNum` | int | 1 | Netty boss 线程池大小 | |
| 41 | +| `workerGroupNum` | int | 0 | Netty worker 线程池大小 | |
| 42 | + |
| 43 | +#### `websocket` |
| 44 | + |
| 45 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 46 | +| ---------------- | --- | --- | ------------------ | |
| 47 | +| `bossGroupNum` | int | 1 | Netty boss 线程池大小 | |
| 48 | +| `workerGroupNum` | int | 0 | Netty worker 线程池大小 | |
| 49 | + |
| 50 | +#### `hppt` |
| 51 | + |
| 52 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 53 | +| ------------------- | --- | --- | ------------------ | |
| 54 | +| `lengthFieldLength` | int | 3 | 包头长度字段使用的字节数(1-4) | |
| 55 | +| `bossGroupNum` | int | 1 | Netty boss 线程池大小 | |
| 56 | +| `workerGroupNum` | int | 0 | Netty worker 线程池大小 | |
| 57 | + |
| 58 | +#### `rhppt` |
| 59 | + |
| 60 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 61 | +| ------------------- | ------ | --- | ----------- | |
| 62 | +| `host` | String | 无 | 客户端可访问的服务地址 | |
| 63 | +| `port` | int | 无 | 客户端连接端口 | |
| 64 | +| `lengthFieldLength` | int | 3 | 包长度字段所占字节数 | |
| 65 | + |
| 66 | +#### `rpost` |
| 67 | + |
| 68 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 69 | +| ----------- | ------ | --- | --------------------------- | |
| 70 | +| `serverUrl` | String | 无 | 客户端启动的 HTTP 服务地址(如反向代理 URL) | |
| 71 | + |
| 72 | +#### `file` 尚不成熟 |
| 73 | + |
| 74 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 75 | +| --------- | ------ | --- | -------- | |
| 76 | +| `fileDir` | String | 无 | 文件传输共享目录 | |
| 77 | + |
| 78 | +--- |
| 79 | + |
| 80 | +## ✅ 客户端配置:sc.yml |
| 81 | + |
| 82 | +### 基础配置项 |
| 83 | + |
| 84 | +| 配置项 | 类型 | 默认值 | 是否必填 | 说明 | |
| 85 | +| ----------------- | ------------- | ----------- | ---- | ------------------ | |
| 86 | +| `type` | String | 无 | ✅ | 协议类型,需与服务端一致 | |
| 87 | +| `clientUser` | String | 无 | ✅ | 客户端用户名,服务端校验用 | |
| 88 | +| `clientPassword` | String | 无 | ✅ | 客户端密码 | |
| 89 | +| `forwards` | List<Forward> | 无 | ✅ | 本地端口转发规则列表 | |
| 90 | +| `localHost` | String | `127.0.0.1` | ❌ | 本地监听 IP 地址 | |
| 91 | +| `workerGroupNum` | int | 0 (CPU核数) | ❌ | Netty worker 线程数 | |
| 92 | +| `maxSendBodySize` | int | 10MB | ❌ | 单次发送最大包体大小 | |
| 93 | +| `heartbeatPeriod` | long | 120000 | ❌ | 心跳间隔(ms),设置为 0 可关闭 | |
| 94 | +| `isRelay` | boolean | false | ❌ | 是否启用中继转发模式 | |
| 95 | +| `addonsPath` | String | `./addons` | ❌ | 插件目录路径 | |
| 96 | +| `lifecycle` | String | null | ❌ | 自定义生命周期实现类 | |
| 97 | + |
| 98 | +### 转发规则配置(Forward) |
| 99 | + |
| 100 | +| 字段 | 类型 | 说明 | |
| 101 | +| ------------ | ------ | ---------- | |
| 102 | +| `localHost` | String | 本地监听 IP | |
| 103 | +| `localPort` | int | 本地监听端口 | |
| 104 | +| `remoteHost` | String | 服务端访问的目标地址 | |
| 105 | +| `remotePort` | int | 服务端访问的目标端口 | |
| 106 | + |
| 107 | +--- |
| 108 | + |
| 109 | +### 协议专用配置项(客户端) |
| 110 | + |
| 111 | +#### `post` |
| 112 | + |
| 113 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 114 | +| --------------- | ------ | --- | --------------- | |
| 115 | +| `serverUrl` | String | 无 | 服务端 HTTP 接口 URL | |
| 116 | +| `sendSleepTime` | long | 5 | 每次请求后的等待间隔(ms) | |
| 117 | + |
| 118 | +#### `websocket` |
| 119 | + |
| 120 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 121 | +| ---------------- | ------ | ----- | ------------ | |
| 122 | +| `serverUrl` | String | 无 | WebSocket 地址 | |
| 123 | +| `pingInterval` | long | 30000 | 发送 ping 间隔 | |
| 124 | +| `workerGroupNum` | int | 0 | worker线程数 | |
| 125 | + |
| 126 | +#### `hppt` |
| 127 | + |
| 128 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 129 | +| ------------------- | ------ | --- | --------- | |
| 130 | +| `host` | String | 无 | 服务端地址 | |
| 131 | +| `port` | int | 无 | 服务端端口 | |
| 132 | +| `lengthFieldLength` | int | 3 | 包长字段所占字节数 | |
| 133 | +| `workerGroupNum` | int | 0 | Netty线程数 | |
| 134 | + |
| 135 | +#### `rhppt` |
| 136 | + |
| 137 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 138 | +| ------------------- | --- | --- | ----------- | |
| 139 | +| `port` | int | 无 | 本地反向服务端口 | |
| 140 | +| `lengthFieldLength` | int | 3 | 包头长度字段所占字节数 | |
| 141 | + |
| 142 | +#### `rpost` |
| 143 | + |
| 144 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 145 | +| ---------------- | --- | --- | ------------ | |
| 146 | +| `port` | int | 无 | 启动 HTTP 服务端口 | |
| 147 | +| `bossGroupNum` | int | 1 | Boss 线程池大小 | |
| 148 | +| `workerGroupNum` | int | 0 | Worker 线程池大小 | |
| 149 | + |
| 150 | +#### `file` |
| 151 | + |
| 152 | +| 配置项 | 类型 | 默认值 | 说明 | |
| 153 | +| --------------- | ------ | --- | -------------- | |
| 154 | +| `sendDir` | String | 无 | 本地发送文件目录 | |
| 155 | +| `receiveDir` | String | 无 | 本地接收文件目录 | |
| 156 | +| `sendSleepTime` | long | 200 | 每次文件片段发送间隔(ms) | |
| 157 | + |
| 158 | +--- |
| 159 | + |
| 160 | +## 🚀 高级功能说明 |
| 161 | + |
| 162 | +### 中继模式 尚不成熟 |
| 163 | + |
| 164 | +* `ss.yml` 中配置 `relayScConfig` 字段,即可将当前服务端作为客户端连接下一个服务端,实现链式转发。 |
| 165 | + |
| 166 | +### 插件系统 |
| 167 | + |
| 168 | +* 通过配置 `addonsPath` 可加载插件(如 Kafka、Redis 等),插件需打包为 `.jar` 放入此目录。 |
| 169 | + |
| 170 | +### 生命周期钩子 |
| 171 | + |
| 172 | +* 可在 `ss.yml` 和 `sc.yml` 中通过 `lifecycle` 配置类路径,实现初始化与销毁逻辑,适合接入监控、日志等框架。 |
| 173 | + |
0 commit comments