anydesk可通过启用本地rest api(端口8080+认证令牌)实现程序化控制,支持状态查询、会话管理、密码配置;亦可用cli工具或powershell脚本封装调用,局域网内可配置防火墙开放端口以跨主机访问。

如果您希望对AnyDesk客户端进行程序化控制或集成到自动化运维体系中,则需利用其内置的REST API接口能力。AnyDesk官方虽未公开完整文档,但其Windows/Linux CLI工具支持通过标准HTTP端口暴露本地管理接口,配合身份验证可实现远程状态查询、会话控制与密码配置等操作。以下是具体实施步骤:
一、启用AnyDesk本地REST API服务
AnyDesk默认不启用HTTP管理接口,需手动修改配置文件并重启服务以激活该功能。该接口运行于本地回环地址,仅响应来自本机或经端口转发的可信请求。
1、关闭正在运行的AnyDesk进程,包括系统托盘项与后台服务。
2、定位AnyDesk配置目录:Windows路径为%APPDATA%\AnyDesk\,Linux路径为~/.anydesk/。
3、在该目录下新建文本文件,命名为settings.json(若已存在则直接编辑)。
4、向settings.json中写入以下JSON内容:
{"http_api_enabled":true,"http_api_port":8080,"http_api_auth_token":"a1b2c3d4e5"}
5、保存文件后,重新启动AnyDesk应用程序。
6、使用浏览器访问http://127.0.0.1:8080/api/status,若返回JSON格式的运行状态信息(含version、running_sessions等字段),说明API服务已成功启用。
二、调用API获取当前AnyDesk ID与会话列表
启用API后,可通过标准HTTP GET请求读取设备标识与实时连接状态。所有请求必须携带Authorization头,值为Bearer a1b2c3d4e5(即上一步配置的auth_token)。
1、打开命令行终端(Windows PowerShell或Linux Bash)。
2、执行以下curl命令获取设备ID:
curl -H "Authorization: Bearer a1b2c3d4e5" http://127.0.0.1:8080/api/id
3、执行以下curl命令列出当前活跃会话:
curl -H "Authorization: Bearer a1b2c3d4e5" http://127.0.0.1:8080/api/sessions
4、响应体为JSON数组,每个对象包含session_id、remote_id、state、start_time等字段,可用于监控或触发告警逻辑。
三、使用CLI命令行工具间接调用API功能
AnyDesk自带CLI工具anydesk.exe(Windows)或anydesk(Linux)可替代部分HTTP API能力,适用于无网络服务权限但拥有本地执行权的场景,无需开启HTTP API端口。
1、以管理员权限打开命令提示符或终端。
2、输入命令获取本机AnyDesk ID:
anydesk --get-id
3、设置自主访问密码(需先启用“允许自主访问”安全策略):
echo mypass123 | anydesk --set-password
4、强制建立静默连接至指定ID(跳过用户确认):
echo mypass123 | anydesk 123456789 --with-password --silent
5、上述操作输出结果将直接返回至终端,可被Shell脚本捕获并解析,实现批量化部署。
四、通过PowerShell脚本封装API调用流程
在Windows环境中,PowerShell具备原生JSON处理与HTTP请求能力,适合构建轻量级管理模块,避免依赖第三方工具。脚本需绕过TLS证书验证(因AnyDesk本地API使用自签名证书)并自动注入认证令牌。
1、新建文本文件,扩展名为.ps1,例如anydesk-manager.ps1。
2、写入以下PowerShell代码:
$token = "a1b2c3d4e5"
$headers = @{ "Authorization" = "Bearer $token" }
$response = Invoke-RestMethod -Uri "http://127.0.0.1:8080/api/status" -Headers $headers -SkipCertificateCheck
Write-Output "AnyDesk版本:$($response.version)"
Write-Output "运行中会话数:$($response.running_sessions)"
3、在PowerShell中执行该脚本前,需解除执行策略限制:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
4、运行脚本后,终端将打印当前服务状态摘要,可用于定时任务巡检。
五、配置Windows防火墙与端口转发以支持跨主机调用
若需从局域网其他设备调用本机AnyDesk API,必须显式放行对应端口,并确保请求来源IP受控。此操作仅建议在可信内网环境启用,严禁暴露至公网。
1、打开“高级安全Windows防火墙”管理界面。
2、点击“入站规则”→“新建规则”,选择“端口”类型。
3、指定TCP端口8080,允许连接,配置适用范围为“专用”网络。
4、为规则命名,例如“AnyDesk-API-Local-Access”。
5、在目标主机上,使用curl测试连通性:
curl -H "Authorization: Bearer a1b2c3d4e5" http://192.168.1.100:8080/api/id
6、若返回有效ID字符串,表明跨主机API调用链路已就绪,可接入Zabbix、Prometheus等监控系统采集指标。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











