CtYun 用于登录天翼云电脑并维持 WebSocket 保活连接。当前版本支持:
- 多账号同时登录和保活。
- Windows/本机可执行文件:支持本地配置文件模式和交互输入模式。
- Docker:支持挂载本地配置文件模式和
-it交互输入模式。 - 首次绑定设备需要短信验证码时,通过终端交互输入。
程序默认在数据目录读取 accounts.json:
- 本机可执行文件:默认数据目录为程序所在目录。
- Docker:默认数据目录为
/app/data,建议挂载到宿主机。 - 也可以通过环境变量
CTYUN_CONFIG指定配置文件路径。 - 也可以通过环境变量
CTYUN_DATA_DIR指定数据目录。
accounts.json 示例:
{
"keepAliveSeconds": 60,
"accounts": [
{
"name": "account-a",
"user": "你的账号1",
"password": "你的密码1",
"deviceCode": "web_自行生成的32位随机字符"
},
{
"name": "account-b",
"user": "你的账号2",
"password": "你的密码2"
}
]
}deviceCode 可不填。程序会为每个账号自动生成设备码,并保存到 devices/{账号名}.txt。为了避免每次 Docker 重建镜像后重新绑定设备,务必持久化数据目录。
Linux 生成设备码示例:
echo "web_$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"把 accounts.json 放到程序目录后直接运行:
CtYun.exe如果没有配置文件,也没有环境变量,程序会进入交互输入模式:
账号:
密码:
继续添加账号? (y/N):
首次设备绑定时,程序会提示输入短信验证码。
准备宿主机配置目录:
mkdir -p ./ctyun-data把 accounts.json 放到 ./ctyun-data/accounts.json。首次运行建议使用 -it,方便输入短信验证码:
docker run -it --rm \
--name ctyun-init \
-v "$(pwd)/ctyun-data:/app/data" \
su3817807/ctyun:latest看到保活任务启动后,说明设备码已经绑定成功。之后可以按 Ctrl+C 停止初始化容器,再改为后台运行。
设备绑定完成后使用:
docker run -d \
--name ctyun \
-v "$(pwd)/ctyun-data:/app/data" \
su3817807/ctyun:latest查看日志:
docker logs -f ctyun单账号仍支持旧环境变量。首次绑定设备时同样使用 -it 输入短信验证码:
docker run -it --rm \
--name ctyun-init \
-v "$(pwd)/ctyun-data:/app/data" \
-e APP_USER="你的账号" \
-e APP_PASSWORD="你的密码" \
-e DEVICECODE="web_你的设备码" \
su3817807/ctyun:latest绑定完成后改为后台运行:
docker run -d \
--name ctyun \
-v "$(pwd)/ctyun-data:/app/data" \
-e APP_USER="你的账号" \
-e APP_PASSWORD="你的密码" \
-e DEVICECODE="web_你的设备码" \
su3817807/ctyun:latest建议新部署优先使用 accounts.json,多账号管理更清晰,也更适合 Docker 持久化。
程序会为每个账号、每台云电脑启动独立保活任务。日志格式会带上账号名和云电脑编号,便于区分:
[account-a][desktop-code] -> 收到保活校验
[account-a][desktop-code] -> 发送保活响应成功
登录图形验证码识别接口方案来自 sml2h3/ddddocr。