搭建自己的远程桌面服务器RustDesk

今天发现一个高达两万星 开源项目 RustDesk, 正如名字一样,这是一个用 Rust 编程语言开发的应用,据说这是一门执行效率比 go 高的语言,希望有机会接触接触,回到正题,看到开源了自制 远程桌面服务器 立马在我香港的服务器上搭建起来,然后连接测试后,立马卸载向日葵、ToDesk。 介绍 RustDesk 支持多个平台具体可以上 官网 查看, RustDesk 远程桌面软件,开箱即用,无需任何配置。完全掌控数据,不用担心安全问题。可以使用注册/中继服务器,或者自建,亦或者开发您的版本。我也用过很多远程软件,TeamViewer、AnyDesk、向日葵、ToDesk 各有优缺点吧。但肯定都没自建的服务器快。 部署自建服务器 官方文档 安装方式多种多样,但是我还是用 docker-compose 部署比较方便,毕竟不会影响到服务器环境还能在需要的时候修改配置,官方也有提供 docker-compose.yml 配置文件 提示: 注这里包括所有通过 docker 部署的容器,我并不推荐使用 docker 命令行去运行容器,我们测试的时候可以用 docker run 去运行容器,但是如果是一直使用的 如果时间长了,你想升级版本,如果你之前改过挂载路径端口这些除非你还记得命令,不然很容易导致配置很之前不一致,导致运行后出现数据丢失等情况。推荐用 docker-compose 写配置,哪怕只有一个服务我都会用 docker-compose 去写,然后记录到个人仓库中,然后时间长了,就会收集到很多方便自己使用的 docker-compose.yml 换服务器时 只需要改改配置中的密码等就能直接使用了 获取 docker-compose 脚本 # https://github.com/rustdesk/rustdesk-server/blob/master/docker-compose.yml version: "3" networks: rustdesk-net: external: false services: hbbs: container_name: hbbs ports: - 21115:21115 - 21116:21116 - 21116:21116/udp - 21118:21118 image: rustdesk/rustdesk-server:latest command: hbbs -r rustdesk.example.com:21117 # 这里的rustdesk.example.com:21117替换为自己服务器的域名:端口 volumes: - ./hbbs:/root networks: - rustdesk-net depends_on: - hbbr restart: unless-stopped hbbr: container_name: hbbr ports: - 21117:21117 - 21119:21119 image: rustdesk/rustdesk-server:latest command: hbbr volumes: - ./hbbr:/root networks: - rustdesk-net restart: unless-stopped 然后将文件放到服务器执行 # 同级下执行 docker-compose up -d ...

2022年5月30日 · 1 分钟 · 诚哥博客

前端web一些兼容性的写法优化

在项目浏览器兼容测试中,发现有很多兼容性的问题,大多数是用户较少的浏览器,如 2345 浏览器和 32 位的 360 极速兼容性较差,所以总不能人少就不去修复吧,当然 IE 是个例外(人多我也不去修)。(以下我自己记录,可能还有其他优秀写法欢迎指教) ?? 号 虽然这个号在现在用的比较多,但是兼容性还是不行,所以还是老实用回 || 但是得注意他们之间的区别 String 中的 replaceAll 在字符串中有两函数,其中 replaceAll 是在 ES12+后加入的,所有有些浏览器并不支持,所以改为 replace 的正则写法兼容性是最好的如 const str = "Rakers Rakers"; str.replaceAll("Rakers", "Rakers1024"); //Rakers1024 Rakers1024 str.replace(/Rakers/g, "Rakers1024"); //Rakers1024 Rakers1024 //使用正则的replace正则的形式结果是一致的 数组取值 在平常我们遇到可能为空的数组,又想用简单的式子读出来数组内容,又不想他报错,特别是写在前端页面的式子,报错就导致页面都加载不出来了 const arr = Math.random() > 0.5 ? [] : [1]; //一般写法 console.log(arr[0]); //在不知道是否返回空数组的情况下很容易报错 console.log(arr && arr.length > 0 ? arr[0] : undefined); //一般都这么写,但是会导致式子很长,特别是如果数组不是变量,而是很长的对象内函数值就更长了 console.log(arr?.at(0)); //这种应该是最短的了,而且不会报错 但是需要支持ES6语法

2022年5月23日 · 1 分钟 · 诚哥博客

VueRouter路由跳转页面添加加载进度条

之前做动态路由的时候就发现路由加载的时候没有过渡的动画,想着能否给加个进度条,发现还真可以,马上给所有项目加上,网速再慢也能有过渡了 说明 我这里使用的是 nprogress 进度条来过渡,当然也可以用其他的,如 loading 等 安装 pnpm i nprogress 在 router.js 或者 main.js 中使用 //配置 NProgress.configure({ easing: "ease", // 动画方式 speed: 500, // 递增进度条的速度 showSpinner: false, // 是否显示加载ico trickleSpeed: 200, // 自动递增间隔 minimum: 0.3, // 初始化时的最小百分比 }); //路由钩子进行设置 // 当路由进入前 router.beforeEach((to, from, next) => { // 每次切换页面时,调用进度条 NProgress.start(); // 这个一定要加,没有next()页面不会跳转的。这部分还不清楚的去翻一下官网就明白了 next(); }); // 当路由进入后:关闭进度条 router.afterEach(() => { // 在即将进入新的页面组件前,关闭掉进度条 NProgress.done(); }); 效果 设置使用节流访问

2022年5月12日 · 1 分钟 · 诚哥博客

修改Windows的Docker数据目录

最近发现我的 C 盘莫名出现储存空间爆满的情况,清理了一大堆文件,后也只释放了 17G 空间,最后发现是 Windows Docker 的数据目录增大导致的,所以打算修改数据目录,当然修改到其他非固态硬盘也会影响 Docker 的性能,不过 Docker 对读写性能要求一般不会太大。 迁移前 WSL2 模式下 docker-desktop-data vm 磁盘映像通常位于以下位置: C:\Users\用户名\AppData\Local\Docker\wsl\data\ext4.vhdx 按照以下说明将其重新定位到其他驱动器/目录,并保留所有现有的 Docker 数据。 开始迁移 首先确保你的 Docker 引擎是关闭状态,可以用 wsl --list -v 确保两个状态都已停止。 ::: tip 默认情况下,Docker Desktop for Window 会创建如下两个发行版(distro) C:\Users\jayzhen\AppData\Local\Docker\wsl docker-desktop (对应 distro/ext4.vhdx) docker-desktop-data (对应 data/ext4.vhdx)按官网提示:vhdx 文件最大支持 256G,超出大小会有异常。当然我的 C 盘也没那么大 官方说明 ::: 将 docker-desktop-data 导出到文件中(备份 image 及相关文件),使用如下命令 如果你的文件比较大,导入导出都需要一些时间 wsl --export docker-desktop-data "D:\\docker-desktop-data.tar" 从 wsl 取消注册 docker-desktop-data wsl --unregister docker-desktop-data ...

2022年5月9日 · 1 分钟 · 诚哥博客

Linux常用解压命令合集

在做运维工作时常常用到解压,各种压缩包,难免记不住,所以在此记录下 _.tar.gz 或 _.tgz # 解压 tar –zxvf 包名 # 压缩 tar –zcvf 压缩后包名 目录或文件 # 压缩后的文件不包含文件夹 tar –zcvf 压缩后包名 -C 目录 压缩的文件或目录 *.tar # 解压 tar –xvf 包名 # 压缩 tar –cvf 压缩后包名 目录或文件 *.gz #依赖安装 yum install gzip # 解压 gzip -d 包名 # 或者 gunzip 包名 *.tar.bz2 #依赖安装 yum install bzip2 # 解压 tar -jxvf 包名 # 或者 tar -xjf 包名 *.bz2 #依赖安装 yum install bzip2 # 解压 tar -jxvf 包名 # 或者 bzip2 -d 包名 # 或者 bunzip2 包名 *.Z uncompress 包名 *.tar.Z tar –xZf 包名 *.rar # 依赖安装 yum install wget make -y wget https://www.rarlab.com/rar/rarlinux-x64-611.tar.gz --no-check-certificate tar -zxvf rarlinux-x64-611.tar.gz cd rar && make && cd .. && rm -rf rar && rm -rf rarlinux-x64-611.tar.gz # 解压 unrar x -y 包名 *.zip unzip 包名

2022年4月28日 · 1 分钟 · 诚哥博客