lxyoucan头像
关注

archlinux局域网远程macOS RustDesk爬坑记录

目前我的archlinux笔记本与mac mini M4是通过千兆网卡,通过一根网线直连。 延迟非常低,文件传输速度可达 110MB/秒。
但是我使用macOS自带的VNC远程桌面,用起来总感觉卡卡的,延迟很高。所以想优化一下。

VNC远程

macOS 这边怎么设置
macOS:
系统设置 → 通用 → 共享 → 屏幕共享
打开后,在屏幕共享设置里启用:
VNC 查看器可以使用密码控制屏幕
Apple 官方说明中明确支持第三方 VNC viewer 连接 macOS 的屏幕共享。
然后 Arch 上:

vncviewer 192.168.1.100:5900

例如你的 Mac IP 是:

192.168.1.100

评价:
能用,macOS自带,操作简单方便。但是远程体验很一般。可能是macOS的动画和半透明太多了吧。卡顿感明显。

RustDesk

从 TeamViewer、向日葵切换到 RustDesk,享受安全可靠的远程桌面体验,使用您自己的自建服务器。
项目地址:
https://github.com/rustdesk/rustdesk
Rust写的远程控制,一听就很厉害。

macOS安装(被控)

下载macOS版本的:
https://github.com/rustdesk/rustdesk/releases
安装细节可以看:
https://rustdesk.com/docs/zh-cn/client/mac/

简单说明:

  1. 安装后打开软件。
  2. 软件左侧会有个授权提示,点了后会自动打开设置,允许权限即可。要设置个3,4次吧。直到右侧没有提示为止。

archlinux安装(主控)

sudo pacman -S rustdesk

打开软件,输入相关的ID和密码就可以连接了,使用起来跟向日葵一样。但是此时默认应该是通过互联网连接的,还是明显卡顿。
目前来看,用起来与向日葵没什么太大区别,主要就是更轻量一些。
对比VNC多了一个好处,可以复制文本,共享剪切板了。

自托管

我打处在archlinux之中使用docker来安装。
参考:
https://rustdesk.com/docs/zh-cn/self-host/rustdesk-server-oss/docker/

nvim docker-compose.yml
内容如下:

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"

    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

然后执行:

docker compose up -d

在运行目录下

ls -lah data/

root@archlinux: ~/docker/rustdesk # ls -lah data/
总计 120K
drwxr-xr-x 3 root root 4.0K 9月23日 14:41 .
drwxr-xr-x 3 root root 4.0K 9月23日 14:45 …
drwxr-xr-x 3 root root 4.0K 9月23日 14:41 .config
-rw-r–r-- 1 root root 24K 9月23日 14:44 db_v2.sqlite3
-rw-r–r-- 1 root root 32K 9月23日 14:44 db_v2.sqlite3-shm
-rw-r–r-- 1 root root 41K 9月23日 14:41 db_v2.sqlite3-wal
-rw-r–r-- 1 root root 88 9月23日 14:41 id_ed25519
-rw-r–r-- 1 root root 44 9月23日 14:41 id_ed25519.pub

其中id_ed25519.pub很重要,我们后续要用到。

cat data/id_ed25519.pub

可以查看公钥。

然后在archlinux和macOS网络之中,配置以下信息。
在这里插入图片描述

  • ID 服务器 写自己部署的IP
  • 中继服务器 也写一样的
  • Key 写 cat data/id_ed25519.pub之中的值
Connection error Key mismatch

假如: 配置好后,点击连接,连接错误:Key 不匹配。
原因就是你的Key写错了。
我在这里耗了好久,最终发现我多写了一个#号。
不清楚为什么我的cat出来会末尾有一个#,如果用nvim打开则没有#

在这里插入图片描述

后面连接方式与之前的完全一致,输入ID和密码就可以远程控制了。

设置固定密码

默认密码是一次性的,可以自行设置一个固定的密码。
设置-安全-使用固定密码。

评价

  1. 我很满意,折腾了近1小时是值得的。
  2. 操作很流畅,几乎感受不到卡顿。甚至能正常感受到macOS的动画效果。
  3. 画质可以调节,但是我就算调了最高画质,依然会感觉到一些朦胧或者模糊的感觉,不过对比流畅度,这些都无关紧要的。
    单论画质,是没有VNC画质高的,VNC最高画质接近原画质了,但是延迟太高了,所以放弃。
  4. 关于壁纸,如果我用VNC壁纸我是不能开的,一开VNC就卡爆了,这下RustDesk是可以开的。几乎感觉不到影响卡顿。
  5. 下载安装包时注意一下版本 rustdesk-1.4.9-aarch64.dmg,我一开始没注意下载成了x86版本的了。

开机自启动

我发现如果重启了电脑,rustdesk 无法在无人值守的情况下直接远程。我需要先联ssh 解锁。然后通过 VNC登录,这里rustdesk才可以使用。有一些不方便。以后在尝试解决吧。

如果我设置macmin开机自动进入桌面,应该就能解决这个问题了吧。


macOS自托管

以上方式已经解决了我自己连mac Mini的问题了,但是如果其他机器想远程macOS,就没有法通过RustDesk比较方便的远程了。所以我打算在mac Mini 自身安装一个自托管。
也是用docker安装,所以过程与archlinux一致的。
配置要调整一下:

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs
    volumes:
      - ./data:/root
    ports:
      - "21115:21115"
      - "21116:21116"
      - "21116:21116/udp"
      - "21118:21118"
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    ports:
      - "21117:21117"
      - "21119:21119"
    restart: unless-stopped

因为macOS上不能像linux那样用host模式,只能用端口映射的形式。

IP写法踩坑

因为我在macOS本地部署的嘛,所以我在写服务器地址时都写的127.0.0.1 。
界面上显示是正常的,也可以远程其他机器,但是如果其他机器来远程这台macOS就会出现。

  1. archlinux尝试连接macOS就会显示 连接被对方关闭。
  2. windows尝试连接macOS就会显示 无法连接到中转服务器这类的。

后来我发现,这里所填写的地址,必须是想要远程你的机器也可以访问的IP,不然就会出现,可以远程别人,但是别人无法远程你的情况。

因为这个原因,我又想archlinux通过网线直连macOS,又想其他电脑可以连接macOS,这两个需求就冲突了。后面我在想想如何解决这个问题吧。
比如:可以用域名,或者hosts设置来解决吧。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/lxyoucan/article/details/166480479

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--