编译rustdesk客户端并内置自有服务器、PUB KEY和内置固定连接密码,实现安装即可使用 无需另行配置kobai2个月前更新关注私信01530 服务器部分 首先你得有一台外网服务器,还要有一个github账号,如果这些都没有可以去准备,如果不愿折腾那请关闭本文。88 这里我以宝塔面板为例,从头开始自建rustdesk中继服务器、ID服务器以及API服务器 一、宝塔docker中新建容器->内容编排->创建,看图吧 内容如下(里面的内容请根据自身实际情况修改!)另外需要先创建几个文件,本例中是在/data/rustdesk/server下分别创建hbbr、hbbs两个文件夹,再分别在两个文件夹下创建run文件(文件名自定,只需和代码中一致即可) 搭建服务端的代码今天更新了一下,之前发的那个是分别建立server和api两个容器,这样一来api后台的“服务端命令”就用不了了,作为强迫症来说这是不能容忍的,于是便有了今天的更新 此处内容已隐藏,请评论后刷新页面查看. 如果你需要配置反代,那么代码中的IP:端口需要更换为域名(不加端口),假如你还需要SSL,那么RUSTDESK_API_RUSTDESK_API_SERVER=后面的域名需要带https://。以此为例,下面是使用反代及SSL的示例 networks: rustdesk-net: external: false services: rustdesk: ports: - 21114:21114 - 21115:21115 - 21116:21116 - 21116:21116/udp - 21117:21117 - 21118:21118 - 21119:21119 image: lejianwen/rustdesk-server-s6:latest environment: - RELAY=www.zxmvps.com - ENCRYPTED_ONLY=1 - KEY=zxmvps.com #自定义PUB KEY - TZ=Asia/Shanghai - RUSTDESK_API_APP_REGISTER=true #true为开放注册,false为关闭 - MUST_LOGIN=Y #是否必须登录 - RUSTDESK_API_ADMIN_TITLE=蜗牛rustdesk后台 #后台页面标题 - RUSTDESK_API_ADMIN_HELLO=蜗牛rustdesk欢迎你! #后台欢迎词,好像没用 - RUSTDESK_API_RUSTDESK_ID_SERVER=www.zxmvps.com - RUSTDESK_API_RUSTDESK_RELAY_SERVER=www.zxmvps.com - RUSTDESK_API_RUSTDESK_API_SERVER=https://www.zxmvps.com - RUSTDESK_API_RUSTDESK_KEY=zxmvps.com #自定义PUB KEY volumes: - /data/rustdesk/server:/data - /data/rustdesk/server/hbbr/run:/etc/s6-overlay/s6-rc.d/hbbr/run - /data/rustdesk/server/hbbs/run:/etc/s6-overlay/s6-rc.d/hbbs/run - /data/rustdesk/api:/app/data #将数据库挂载 networks: - rustdesk-net restart: unless-stopped 然后再配置反向代理,这里我以宝塔为例,需要添加以下三个代理目录:/、/ws/id、/ws/relay,目标均为http://127.0.0.1,区别在于后面的端口 hbbr内容 #!/command/with-contenv shcd /dataPARAMS=[ "${ENCRYPTED_ONLY}" = "1" ] && PARAMS="-k ${KEY}"/usr/bin/hbbr $PARAMS hbbs内容 #!/command/with-contenv shsleep 2cd /dataPARAMS=[ "${ENCRYPTED_ONLY}" = "1" ] && PARAMS="-k ${KEY}"/usr/bin/hbbs -r $RELAY $PARAMS 适用于更多需求的代码请见WIKI 上述步骤完成后即可正式创建容器 必须在创建完上述两个文件后再创建容器,否则服务启动不了 完成上述操作后服务器部分就完成了,API管理界面如下图,默认地址为IP:21114,默认用户名:admin,密码首次会动态生成,从日志中提取 服务器搭建就说这么多,这个API有个很强大的功能“Webclient”,可以直接在网页上控制客户端,特别适用于在别人电脑上操作,因为无需安装客户端即可使用。见丰图 客户端部分 登录你的github,fork以下两个仓库 rustdesk/hbb_common rustdesk/rustdesk 在本地电脑clone仓库代码,其中zxmvps记得改为你的github用户名 git clone https://github.com/zxmvps/hbb_common.git git clone https://github.com/zxmvps/rustdesk.git 如果要内置连接的固定密码则修改仓库hbb_common中src/config.rs的71行,把pub static ref HARD_SETTINGS: RwLock> = Default::default();替换如下(www.zxmvps.com就是设定的固定密码) pub static ref HARD_SETTINGS: RwLock<HashMap<String, String>> = { let mut map = HashMap::new(); map.insert("password".to_string(), "www.zxmvps.com".to_string()); RwLock::new(map) }; 内置ID服务器、中继服务器和PUB KEY,仓库hbb_common下的src/config.rs,在约101-102行修改如下,RENDEZVOUS_SERVERS是服务器地址,可IP亦可域名,下面一行为PUB KEY(必须和前面服务器部分的相同,服务器地址也是必须和前面相同) pub const RENDEZVOUS_SERVERS: &[&str] = &["www.zxmvps.com"];pub const RS_PUB_KEY: &str = "www.zxmvps.com"; 如果还想要内置API服务器,则修改本地仓库rustdesk下src/common.rs,在993行,替换为自己的API服务器,默认是https://admin.rustdesk.com 默认编译出来的客户端在底部会有一条广告,如果你想去掉需修改本地仓库rustdesk下flutter\lib\desktop\pages\connection_page.dart,把81-110行代码替换如下 Widget setupServerWidget() => Flexible( child: Offstage( offstage: !(!_svcStopped.value && stateGlobal.svcStatus.value == SvcStatus.ready && _svcIsUsingPublicServer.value), child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [], ), ), ); 上述操作完成即可推送至远程仓库 hbb_common仓库 特别推荐500+推广项目,网推、地推均可无需缴纳任何费用即可加入不扣量、随时可提现快来加入吧:https://dt.bd.cn/#/pages/login/register?invite_code=030609cd hbb_commongit add .git commit -m "修改服务器域名和KEY"git push 切换到rustdesk仓库,删除原子模块 cd /rustdeskgit rm -rf libs/hbb_commongit commit -m "删除子模块"git push 把你修改后的hbb_common子模块加到你的rustdesk仓库 git submodule add https://github.com/zxmlysxl/hbb_common libs/hbb_common git add .git commit -m "重新添加子模块" git push 强制更新子模块: 这会强制将子模块更新到你 hbb_common 仓库的最新 commit git submodule sync git submodule update --init --recursive 提交本地rustdesk仓库的修改 git add . git commit -m "更新子模块" git push 打开本地的git命令行,创建一个tag并提交至远程仓库,tag名自定义 git tag -a 1.4.0 -m "修改服务器和 key"git push --tags 至此,github平台会触发一个任务”创建tag自动启动编译“,耗时大约需1小时多点,你就可以在页面code右侧的releases下看到新编译的客户端 点击文件名即可下载,除了IOS之外其它平台好像都有 客户端和官方的在功能、外观上没有区别(如果不去广告的话,在底部”就绪“后面还有一串字) 如果你想要重新编译客户端又想用原来的tag,则需要做以下操作 # 删除本地 taggit tag -d 1.4.0# 删除远程 tag(需强制推送空 tag)git push origin :refs/tags/1.4.0重新创建同名 tag# 重新打 tag(保持名称和消息一致)git tag -a 1.4.0 -m "修改服务器和 key"强制推送 tag 到远程仓库# 强制推送 tag(覆盖远程)git push origin 1.4.0 --force# 或简写git push origin 1.4.0 -f © 版权声明 版权声明 1 本网站名称:星空知 2 本站永久网址:https://www.xkzhi.com/ 3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长 QQ1397403557进行删除处理。 4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。 5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报 6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。 THE END技术教程技术教程# WP# api# 技术 喜欢就支持一下吧点赞0 分享QQ空间微博QQ好友海报分享复制链接收藏