彩色沙漠 发表于 2023-12-5 09:08

【开源】界面版Rustdesk Api接口&Web服务器 基于1.2.3及以上版本

本帖最后由 彩色沙漠 于 2023-12-6 14:02 编辑

各位朋友反馈问题的时候,先说清楚自己用的开箱即用版还是源码自己部署的。

Rustdesk Api接口介绍
缘起
看了市面上各类RustDesk WEB API版本,或多或少的存在一些问题,比如说,需要通过url注册、新版客户端某些接口不支持、无法方便的修改密码等不足,因此博采众长,撸一个自己喜欢的版本来用。在此要感谢论坛及github的各位朋友写的接口,省去了我抓包找接口的时间。



功能特点
1、支持前台网页自主注册和登录。
2、支持前台展示设备信息,分为管理员版、用户版。
3、支持后台管理。
4、支持彩色标签。
5、支持设备在线统计。
6、支持设备密码保存。
7、利用心跳接口自动管理token并保活。
8、支持分享设备给其他用户

计划开发
1、分享设备给其他已注册用户
说明:类似网盘url分享,url激活后可以获得某个或某组或某个标签下的设备
备注:其实web api作为中间件,可做的不多,更多功能还是需要修改客户端来实现,就不太值当了。

管理员设置
当数据库中不存在账户时,第一个注册的账户直接获取超级管理员权限,之后注册账户为普通账户。












其他说明
设备信息
经测试,客户端会在非绿色版模式下,安装为服务的模式中,定时发送设备信息到api接口,
所以如果想要设备信息,需要安装rustdesk客户端并启动服务。





连接速度慢
新版本Key模式链接速度慢,可以在服务端启动服务时,不要带参数的-k,此时,客户端也不能配置key





获取方法



1、开源代码版本
github地址:点击访问github

2、开箱即用版
Window独立打包版,无需安装环境,直接运行启动.bat即可。点这里进入蓝奏云下载绿色开箱即用版




支持Django3及Django4+
注意,如果cengtos配置时,Django4会因为系统的sqlite3版本过低而出问题,请修改依赖库中的文件:
路径:xxxx/site-packages/django/db/backends/sqlite3/base.py
# 修改内容
# from sqlite3 import dbapi2 as Database   #(注释掉这段)
from pysqlite3 import dbapi2 as Database # 启用pysqlite3



彩色沙漠 发表于 2023-12-5 11:20

GMCN 发表于 2023-12-5 10:38
rustdesk新版本的后台是单独的版本,都没开源

RustDesk分为3个部件:
1、客户端。
2、服务端中间件。
3、Api中间件。

我这是第三部分。谢谢。

党魁 发表于 2023-12-16 15:59

彩色沙漠 发表于 2023-12-15 22:44
这玩意是官方自己阉割了。放到付费版了。

我找到了个批处理可以修改ID的,把安装路径改成自己本机的就行,Win11下运行没问题





:: INFO:
:: RustDesk Github: https://github.com/rustdesk/rustdesk

:: RustDesk ID Changer Github: https://github.com/abdullah-erturk/RustDesk-ID-Changer

::===============================================================================================================
@echo off
mode con:cols=90 lines=30
title RustDesk ID Changer by mephistooo2 ^| www.TNCTR.com
net file 1>nul 2>nul && goto :Main || powershell -ex unrestricted -Command "Start-Process -Verb RunAs -FilePath '%comspec%' -ArgumentList '/c ""%~fnx0""""'"
goto :eof
::===============================================================================================================
:Main
cls
if exist "F:\ruanjian\RustDesk\rustdesk.exe" (
cd "F:\ruanjian\RustDesk\"
for /f "delims=" %%i in ('rustdesk.exe --get-id ^| more') do set rustdesk_id=%%i
goto :Run
) else (
echo.
echo RustDesk is not installed, install RustDesk first.
echo.
echo Press any key to exit.
pause >nul
exit
)
:Run
pushd %temp% >nul 2>&1
echo.
echo ==========================================================================================
echo.
echo          RustDesk ID Changer by mephistooo2 ^| TNCTR.com
echo.
echo                   1 - Set RustDesk ID with computer name : "%computername%"
echo.
echo                   2 - Set RustDesk ID with 9-digit random numbers
echo.
echo                   3 - Set RustDesk ID to the value you specify
echo.
echo                   4 - Exit
echo.
echo ==========================================================================================
echo.
choice /c 1234 /cs /n /m "Make Your Choice : "
echo.
if errorlevel 4 Exit
if errorlevel 3 goto :ID_UserDefined
if errorlevel 2 goto :ID_Random
if errorlevel 1 goto :ID_Host
echo.
::===============================================================================================================
:ID_Host
echo.
echo Stop-Service RustDesk > RustDesk_ID_Host.ps1
echo taskkill /im rustdesk.exe /f >> RustDesk_ID_Host.ps1
echo $id = Get-Content "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk.toml" ^| Select-Object -Index 0 >> RustDesk_ID_Host.ps1
echo $hostname = hostname >> RustDesk_ID_Host.ps1
echo Write-Host "Current ID: %rustdesk_id%" >> RustDesk_ID_Host.ps1
echo $newId = "id = '$hostname'" >> RustDesk_ID_Host.ps1
echo Write-Host "New ID: $newId" >> RustDesk_ID_Host.ps1
echo $fileContent = Get-Content -Path "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk.toml" >> RustDesk_ID_Host.ps1
echo $newContent = $fileContent -replace ::Escape($id), $newId >> RustDesk_ID_Host.ps1
echo $newContent ^| Set-Content -Path "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk.toml" >> RustDesk_ID_Host.ps1
echo Restart-Service RustDesk >> RustDesk_ID_Host.ps1
powershell.exe -ExecutionPolicy Bypass -File RustDesk_ID_Host.ps1
start "" "F:\ruanjian\RustDesk\rustdesk.exe" --tray
goto :done
::===============================================================================================================
:ID_Random
echo.
echo Stop-Service RustDesk > RustDesk_ID_Random.ps1
echo taskkill /im rustdesk.exe /f >> RustDesk_ID_Random.ps1
echo $randomId = -join ((48..57) ^| Get-Random -Count 9 ^| ForEach-Object {$_}) >> RustDesk_ID_Random.ps1
echo $id = Get-Content "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk.toml" ^| Select-Object -Index 0 >> RustDesk_ID_Random.ps1
echo Write-Host "Current ID: %rustdesk_id%" >> RustDesk_ID_Random.ps1
echo $newId = "id = '$randomId'" >> RustDesk_ID_Random.ps1
echo Write-Host "New ID: $newId" >> RustDesk_ID_Random.ps1
echo $fileContent = Get-Content -Path "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk.toml" >> RustDesk_ID_Random.ps1
echo $newContent = $fileContent -replace ::Escape($id), $newId >> RustDesk_ID_Random.ps1
echo $newContent ^| Set-Content -Path "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk.toml" >> RustDesk_ID_Random.ps1
echo Restart-Service RustDesk >> RustDesk_ID_Random.ps1
powershell.exe -ExecutionPolicy Bypass -File RustDesk_ID_Random.ps1
start "" "F:\ruanjian\RustDesk\rustdesk.exe" --tray
goto :done
::===============================================================================================================
:ID_UserDefined
echo.
echo Stop-Service RustDesk > RustDesk_ID_UserDefined.ps1
echo taskkill /im rustdesk.exe /f >> RustDesk_ID_UserDefined.ps1
echo $id = Get-Content "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk.toml" ^| Select-Object -Index 0 >> RustDesk_ID_UserDefined.ps1
echo THE NEW RUSTDESK ID VALUE MUST BE AT LEAST 6 CHARACTERS
timeout /t 2 >nul 2>&1
echo.
echo $newId = Read-Host "Enter RustDesk ID" >> RustDesk_ID_UserDefined.ps1
echo Write-Host "Current ID: %rustdesk_id%" >> RustDesk_ID_UserDefined.ps1
echo $newId = "id = '$newId'" >> RustDesk_ID_UserDefined.ps1
echo Write-Host "New ID: $newId" >> RustDesk_ID_UserDefined.ps1
echo $fileContent = Get-Content -Path "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk.toml" >> RustDesk_ID_UserDefined.ps1
echo $newContent = $fileContent -replace ::Escape($id), $newId >> RustDesk_ID_UserDefined.ps1
echo $newContent ^| Set-Content -Path "C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk.toml" >> RustDesk_ID_UserDefined.ps1
echo Restart-Service RustDesk >> RustDesk_ID_UserDefined.ps1
powershell.exe -ExecutionPolicy Bypass -File RustDesk_ID_UserDefined.ps1
start "" "F:\ruanjian\RustDesk\rustdesk.exe" --tray
goto :done
::===============================================================================================================
:done
del RustDesk_ID_Host.ps1 >nul 2>&1
del RustDesk_ID_Random.ps1 >nul 2>&1
del RustDesk_ID_UserDefined.ps1 >nul 2>&1
echo.
echo         PROCESS COMPLETED
echo.
choice /C:MX /N /M "Press M for MAIN MENU -- X for EXIT: "
if errorlevel 2 Exit
if errorlevel 1 goto :Main
::===============================================================================================================

不知道改成啥 发表于 2023-12-5 09:16

关注项目了{:1_918:}

彩色沙漠 发表于 2023-12-5 09:29

tanzhiwei 发表于 2023-12-5 09:16
关注项目了

感谢关注,只要对大家有帮助就好

Rx0 发表于 2023-12-5 09:44

感谢分享,已下载。

qqycra 发表于 2023-12-5 10:13

rustdesk 真是越来越好了,我现在经常用

GMCN 发表于 2023-12-5 10:38

rustdesk新版本的后台是单独的版本,都没开源

GMCN 发表于 2023-12-5 10:40

https://github.com/rustdesk/rustdesk-server-pro

Tianmoy 发表于 2023-12-5 11:04

感谢分享

tianyagk1314 发表于 2023-12-5 11:46

这个好,必须关注
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【开源】界面版Rustdesk Api接口&Web服务器 基于1.2.3及以上版本