Windows 远程 Ubuntu 24.04 桌面

Tailscale 组网 + Ubuntu 自带的 GNOME Remote Desktop,Windows 用 mstsc 直连。

1. 拿 Tailscale 地址

两台机器登录同一个 Tailscale 账号,在 Ubuntu 上:

bash 复制代码
tailscale ip -4          # 记下这个 100.x.x.x

2. 装服务、生成证书

bash 复制代码
sudo apt install gnome-remote-desktop

sudo mkdir -p /var/lib/gnome-remote-desktop
sudo openssl req -x509 -newkey rsa:4096 -days 3650 -nodes \
  -keyout /var/lib/gnome-remote-desktop/rdp-key.pem \
  -out /var/lib/gnome-remote-desktop/rdp-cert.pem \
  -subj "/CN=$(hostname)"

sudo chown -R gnome-remote-desktop:gnome-remote-desktop /var/lib/gnome-remote-desktop
sudo chmod 600 /var/lib/gnome-remote-desktop/rdp-key.pem

3. 配置并启动

bash 复制代码
sudo grdctl --system rdp set-tls-cert /var/lib/gnome-remote-desktop/rdp-cert.pem
sudo grdctl --system rdp set-tls-key /var/lib/gnome-remote-desktop/rdp-key.pem
sudo grdctl --system rdp set-credentials <用户名> <RDP密码>
sudo grdctl --system rdp disable-view-only
sudo grdctl --system rdp enable

sudo systemctl enable --now gnome-remote-desktop
sudo systemctl restart gnome-remote-desktop
sudo grdctl --system status

status 里要看到 Username 有值、View-only: no。

如果 ufw 是 active:

bash 复制代码
sudo ufw allow in on tailscale0 to any port 3389 proto tcp

4. Windows 连接

Win+R → mstsc → 计算机填 100.x.x.x → 用第 3 步设的用户名密码 → 证书警告点是。


三个必须注意的点

  • --system 不能省 ,也不能漏 sudo。不带这个参数配的是另一套用户级实例,SSH 环境下配不成,status 里会显示 Username: (empty)。
  • disable-view-only 不能漏,否则连上去鼠标键盘不起作用。
  • RDP 密码和系统密码是两套 ,登录时用 set-credentials 设的那个。

Init TPM credentials failed 是正常提示,机器没 TPM 芯片而已,忽略。

出问题查日志:

bash 复制代码
sudo journalctl -u gnome-remote-desktop -n 50 --no-pager
相关推荐
A7bert7779 分钟前
【MobileSAM部署至RK3588】环境适配→转换RKNN→开发板部署
c++·人工智能·深度学习·目标检测·ubuntu
ITKEY_30 分钟前
emacs 文件管理Dired, the Directory Editor
linux·编辑器·emacs
源图客34 分钟前
解决CentOS操作系统网络异常问题
linux·运维·centos
HideF10 小时前
Linux sudo
linux
FlightYe11 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎11 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
牛马鸡niumasi13 小时前
【Linux】C语言文件操作
linux
say_fall13 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii14 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器
共享家952714 小时前
408 操作系统第一章
服务器·数据库·windows