编译rustdesk客户端并内置自有服务器、PUB KEY和内置固定连接密码,实现安装即可使用 无需另行配置

服务器部分

首先你得有一台外网服务器,还要有一个github账号,如果这些都没有可以去准备,如果不愿折腾那请关闭本文。88

这里我以宝塔面板为例,从头开始自建rustdesk中继服务器、ID服务器以及API服务器

一、宝塔docker中新建容器->内容编排->创建,看图吧

编译rustdesk客户端并内置自有服务器、PUB KEY和内置固定连接密码,实现安装即可使用 无需另行配置第1张

内容如下(里面的内容请根据自身实际情况修改!)另外需要先创建几个文件,本例中是在/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,区别在于后面的端口

编译rustdesk客户端并内置自有服务器、PUB KEY和内置固定连接密码,实现安装即可使用 无需另行配置第2张

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,密码首次会动态生成,从日志中提取

编译rustdesk客户端并内置自有服务器、PUB KEY和内置固定连接密码,实现安装即可使用 无需另行配置第3张

服务器搭建就说这么多,这个API有个很强大的功能“Webclient”,可以直接在网页上控制客户端,特别适用于在别人电脑上操作,因为无需安装客户端即可使用。见丰图

编译rustdesk客户端并内置自有服务器、PUB KEY和内置固定连接密码,实现安装即可使用 无需另行配置第4张

客户端部分

登录你的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下看到新编译的客户端

编译rustdesk客户端并内置自有服务器、PUB KEY和内置固定连接密码,实现安装即可使用 无需另行配置第5张

点击文件名即可下载,除了IOS之外其它平台好像都有

客户端和官方的在功能、外观上没有区别(如果不去广告的话,在底部”就绪“后面还有一串字)

编译rustdesk客户端并内置自有服务器、PUB KEY和内置固定连接密码,实现安装即可使用 无需另行配置第6张

如果你想要重新编译客户端又想用原来的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
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容