目前我的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/
简单说明:
- 安装后打开软件。
- 软件左侧会有个授权提示,点了后会自动打开设置,允许权限即可。要设置个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小时是值得的。
- 操作很流畅,几乎感受不到卡顿。甚至能正常感受到macOS的动画效果。
- 画质可以调节,但是我就算调了最高画质,依然会感觉到一些朦胧或者模糊的感觉,不过对比流畅度,这些都无关紧要的。
单论画质,是没有VNC画质高的,VNC最高画质接近原画质了,但是延迟太高了,所以放弃。 - 关于壁纸,如果我用VNC壁纸我是不能开的,一开VNC就卡爆了,这下RustDesk是可以开的。几乎感觉不到影响卡顿。
- 下载安装包时注意一下版本 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就会出现。
- archlinux尝试连接macOS就会显示 连接被对方关闭。
- windows尝试连接macOS就会显示 无法连接到中转服务器这类的。
后来我发现,这里所填写的地址,必须是想要远程你的机器也可以访问的IP,不然就会出现,可以远程别人,但是别人无法远程你的情况。
因为这个原因,我又想archlinux通过网线直连macOS,又想其他电脑可以连接macOS,这两个需求就冲突了。后面我在想想如何解决这个问题吧。
比如:可以用域名,或者hosts设置来解决吧。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/lxyoucan/article/details/166480479



