适用场景
- 用脚本、计划任务、Docker 运行
run,需要不交互地提供令牌。 - 需要修改日志位置、日志级别或重连参数。
服务版(install / add / start)由程序自动管理配置,不需要本页内容。
前置条件
已经会用 wyc-client run 临时运行,见 命令行客户端入门。
操作步骤
第 1 步:选择令牌的提供方式
| 方式 | 写法 | 说明 |
|---|---|---|
| 手动输入 | wyc-client run |
提示输入,屏幕不显示 |
| 令牌文件 | wyc-client run --token-file /root/wyc-token.txt |
文件里只放令牌一行,设置为只有自己能读 |
| 环境变量 | WYC_TUNNEL_TOKEN=令牌 |
Docker 常用,见 Docker 部署 |
| 命令参数 | wyc-client run --token 令牌 |
会留在命令历史和进程列表里,不推荐 |
同一个参数同时用多种方式提供时,优先级是:命令行参数 > 环境变量 > 配置文件 > 默认值。
成功后会看到:运行后打印“隧道已连接”。
第 2 步:常用参数对照
| 命令行参数 | 环境变量 | 作用 |
|---|---|---|
--token / --token-file |
WYC_TUNNEL_TOKEN |
隧道令牌 |
--upstream-host |
WYC_CLIENT_UPSTREAM_HOST |
临时覆盖控制台里填的内网地址 |
--upstream-port |
WYC_CLIENT_UPSTREAM_PORT |
临时覆盖控制台里填的端口 |
--device-name |
WYC_CLIENT_DEVICE_NAME |
在控制台显示的设备名称 |
--instance-id |
WYC_CLIENT_INSTANCE_ID |
固定的客户端标识,Docker 容器建议设置,避免重启后被当成另一个连接 |
--log-path |
WYC_CLIENT_LOG_PATH |
日志文件路径,留空输出到终端 |
--log-level |
WYC_CLIENT_LOG_LEVEL |
debug、info、warn、error |
--log-format |
WYC_CLIENT_LOG_FORMAT |
text 或 json |
--dial-timeout |
WYC_CLIENT_DIAL_TIMEOUT |
连接超时,如 10s |
--reconnect-max |
WYC_CLIENT_RECONNECT_MAX |
断线后最长重连等待时间 |
--config |
WYC_CLIENT_CONFIG |
使用 JSON 配置文件 |
日志文件默认每个最大 20 MB、保留 5 个、最多 14 天,可用 --log-max-size-mb、--log-max-backups、--log-max-age-days 调整。
第 3 步(可选):使用 JSON 配置文件
wyc-client init-config --output ./wyc-client.json
wyc-client validate-config --config ./wyc-client.json
wyc-client run --config ./wyc-client.json
init-config 会提示输入令牌并生成文件;validate-config 检查格式。成功后会看到“配置有效”。文件示例:
{
"schemaVersion": 1,
"apiBaseURL": "https://v2api.wangyunchuan.com",
"token": "替换为隧道令牌",
"dialTimeout": "10s",
"reconnectMax": "30s",
"log": { "level": "info", "format": "text" }
}
配置文件里有令牌,不要上传到代码仓库或发给别人。
第 4 步(自建部署才需要):直连指定节点
只有维护自建平台时才需要,普通用户不要设置,否则会跳过自动选择节点:
wyc-client run --server node.example.com:8890 --tls --tls-server-name node.example.com --token-file ./token.txt
node.example.com 为示例。证书报错时检查系统时间和证书,不要使用跳过证书校验的参数。
成功检查
validate-config显示“配置有效”。run打印“隧道已连接”,外网能访问。
常见错误
| 现象 | 怎么办 |
|---|---|
| 提示配置里有未知字段 | 检查字段拼写,或程序版本太旧 |
| 设置了环境变量但没生效 | 可能被命令行参数覆盖了 |
| 令牌文件读取失败 | 检查路径和文件权限 |
| 一直连接旧节点 | 删除配置里的 server,恢复自动选择 |