加载中...

AI工坊|云服务器GUI配置


AI工坊|云服务器GUI配置

大家好,我是 Ricky X。

最近几个月,随着 OpenClawHermes Agent 等开源智能体走红,越来越多用户开始配置 云服务器 来「云养虾」、「云养马」。

相比本地电脑,云服务器不仅能给这类需要 长期在线 的 AI 应用和 Agent 服务提供一个更加稳定的运行环境,也能把 Agent 的 运行环境和本机隔离 开。即使电脑合盖、本地网络波动或误关机,**服务和运行数据 **也能继续留在云端。

我们通常使用 SSH 命令 来管理这些云服务器。简单来说,SSH 就是一条安全的命令行通道:我们在本地终端里输入命令,就能登录远程服务器,安装依赖、启动服务、查看日志等。

但如果你平时用 SSH 管理云服务器,可能也遇到过这些情况:

  • 想检查 Agent 生成的网页、截图或可视化报告,比如 index.htmlresult.pngpreview.pdf,命令行能确认文件生成了,但很难直接判断版式有没有错、图片有没有糊、内容有没有跑偏;

这不是 SSH 的问题,它依然是管理 Linux 服务器最稳定、高效的方式。

只是在真实使用中,有些操作并不复杂,却比较依赖 可视化反馈,需要一个 GUI(Graphical User Interface,图形用户界面)入口。

所以,这篇文章记录了我给 腾讯云 Lighthouse 云服务器 配置 轻量 GUI 入口 的过程。

如果你也想给自己的云服务器配置一个轻量 GUI 入口,这篇文章可以作为一份实战参考。

说明:本文更适合有 Linux 系统使用经验、熟悉 Linux 基础命令行操作 的读者上手实操。但无论你是否有技术背景,都可以尝试让 Claude CodeCodexCoding Agent 辅助完成配置;如果你本身熟悉相关技术,也可以重点关注每一步背后的 Linux 服务、端口、防火墙和远程桌面会话原理


一、先确认:你的服务器适不适合装 GUI

装 GUI 前,需要确认两组参数:控制台里的 硬件规格,以及服务器当前真实的 内存占用

我的云服务器是腾讯云 Lighthouse 特惠型实例,腾讯云控制台里看到的配置如下:

项目 配置
CPU 4 核
内存 4GB
系统盘 SSD 云硬盘 40GB
流量包 300GB / 月
带宽 3Mbps
系统 Ubuntu 22.04.5 LTS

控制台配置只能说明“理论上能不能跑”,还要回到服务器里看 当前状态。先用下面这条命令确认系统版本:

cat /etc/os-release

我这里确认是 Ubuntu 22.04.5 LTS,后面的安装命令就按 Ubuntu / Debian 系发行版来写。

然后看内存:

free -h

当时服务器上已经跑着 OpenClaw 和 Hermes Agent 相关服务,内存状态是这样:

               total        used        free      shared  buff/cache   available
Mem:           3.6Gi       1.3Gi       464Mi        14Mi       1.9Gi       2.0Gi
Swap:          2.0Gi       4.0Mi       2.0Gi

这里重点看 **available**,也就是系统还能比较从容拿出来使用的内存。我这里还有约 2.0Gi 可用内存,并且 Swap 基本没用上。对 轻量桌面 来说,这个余量是够的。

不过这里要分清两件事:

  • 系统性能:4 核 4GB 跑轻量桌面没问题;
  • 远程体验:3Mbps 带宽不适合把它当长期云电脑使用。

也就是说,看文件、预览图片、检查报告、临时整理目录没有问题;但不建议在里面长期开浏览器、看视频、跑重型 IDE。


二、方案选择:轻量桌面 + 远程桌面服务

确认服务器有余量之后,下一步就是选方案。

我们的目标只是多一个轻量 GUI 入口,方便看文件、检查可视化结果,所以不需要安装完整的 Ubuntu Desktop。Ubuntu Desktop 默认会带上 GNOME 桌面和一整套桌面应用、后台服务,对轻量服务器来说有些重。

经过调研,我选择的是:

XFCE + xrdp

XFCE 是一个轻量级 Linux 桌面环境。它负责提供桌面、窗口、面板、应用菜单、文件管理器这些基础能力,更省内存,也更适合轻量云服务器。

xrdp 是 Linux 上的远程桌面服务,它能让 Linux 服务器接受 RDP 连接。RDPRemote Desktop Protocol 的缩写,中文是远程桌面协议,默认端口是 3389

这里可以把 RDP 理解成一套远程桌面通信规则:服务器这边由 xrdp 负责接收连接,电脑这边则需要一个支持 RDP 的客户端来发起连接。

我选择了 Windows App(旧名:Microsoft Remote Desktop)作为本机客户端。(注意:Windows App 是 macOS 上用来连接远程桌面的工具,不是要在 Mac 上安装 Windows 系统。)

因此,最终的访问链路可以理解为:

本地 Mac
  Windows App(RDP 客户端)
        |
        | 通过 RDP 协议访问 3389 端口
        v
腾讯云 Ubuntu 服务器
  xrdp(接收远程桌面连接)
        |
        v
  XFCE(真正看到和操作的桌面)

说明:该访问链路实际上要更复杂一些,本文不做详细展开。


三、安装桌面环境和常用工具

确定方案后,接下来就是安装。

安装内容可以分成两部分:一部分是 XFCE 和 xrdp 相关组件,用来提供桌面和远程连接能力;另一部分是轻量常用工具,用来覆盖看图、编辑文本、截图、预览音视频和处理压缩包这些基础需求。

sudo apt update
sudo apt install --no-install-recommends \
  xfce4 xfce4-terminal xfce4-session \
  xrdp xorgxrdp dbus-x11 x11-xserver-utils \
  ristretto mousepad xfce4-screenshooter parole file-roller \
  atril fonts-noto-cjk fonts-noto-color-emoji tumbler thunar-archive-plugin \
  -y

其中主要软件包的作用如下:

软件包 作用
xfce4 XFCE 桌面主体
xfce4-terminal XFCE 终端
xfce4-session XFCE 会话管理
xrdp 远程桌面服务
dbus-x11 桌面会话常用依赖,缺失时容易出现会话异常
ristretto 图片查看器
mousepad 轻量文本编辑器
xfce4-screenshooter 截图工具
parole 轻量音视频播放器
file-roller 压缩包管理器
atril 轻量 PDF 查看器
fonts-noto-cjk 中文、日文、韩文字体,避免中文显示异常
fonts-noto-color-emoji 彩色 Emoji 字体
tumbler 文件缩略图服务
thunar-archive-plugin Thunar 文件管理器的右键压缩 / 解压插件

这里使用 **--no-install-recommends**,是为了少安装一些非必要推荐包,让桌面环境尽量保持轻量。

安装完成后,指定 xrdp 进入 XFCE。注意,这条命令会写入当前用户的 home 目录;你准备用哪个用户登录 xrdp,就要在哪个用户下执行它。下面以 ubuntu 用户为例:

echo xfce4-session > ~/.xsession
sudo adduser xrdp ssl-cert
sudo systemctl enable --now xrdp
sudo systemctl restart xrdp

确认 xrdp 正常运行:

sudo systemctl status xrdp xrdp-sesman --no-pager

看到 active (running) 就说明服务已经启动。

再确认 3389 端口正在监听:

sudo ss -tlnp | grep 3389

正常会看到类似:

LISTEN 0 2 *:3389 *:* users:(("xrdp",pid=...,fd=...))

如果 Ubuntu 自带防火墙 ufw 是开启状态,需要放行:

sudo ufw status
sudo ufw allow from 103.xxx.xxx.xxx to any port 3389 proto tcp

这里的 103.xxx.xxx.xxx 替换成自己的公网 IP。这样可以让 Ubuntu 本机防火墙和腾讯云防火墙一样,只允许指定来源访问远程桌面端口。如果 ufw status 显示 inactive,说明 Ubuntu 本机防火墙没有拦截。


四、腾讯云防火墙放行 3389

前面只是让服务器内部的 xrdp 监听了 3389 端口。要让自己的电脑从公网连进来,还需要在腾讯云 Lighthouse 控制台放行这条入站规则

可以在实例页面进入:

腾讯云 Lighthouse -> 选择实例 -> 防火墙 -> 添加规则

添加规则时,可以按下面这样填:

字段
应用类型 Windows 登录 (3389) 或自定义
来源 自己电脑当前的公网 IP
协议 TCP
端口 3389
策略 允许
备注 xrdp

这里的“应用类型”选择 Windows 登录 (3389) 是因为 xrdp 使用的也是 RDP 协议和 3389 端口,并不代表服务器必须是 Windows。

最需要注意的是“来源”。它表示允许哪些公网 IP 访问你的远程桌面端口。最严格的写法是:

你的公网IP/32

例如:

103.xxx.xxx.xxx/32

/32 表示只允许这一个 IP 访问。
如果你的公网出口经常在同一段里变化,可以临时放宽到一个小网段,例如:

103.xxx.xxx.0/24

五、Mac 上连接远程桌面

到这里,服务器端已经完成了几件事:

  • xrdp 服务已经启动;
  • 3389 端口已经在服务器上监听;
  • 腾讯云防火墙已经放行了你自己的公网 IP。

接下来就可以从 Mac 发起远程桌面连接了。

Mac 上可以用微软的远程桌面客户端 Windows App

打开 Windows App 后,点击右上角的 +,选择添加电脑。添加时可以这样填:

电脑名称:106.xx.xx.xx:3389(你的云服务器公网 IP)
凭据:在需要时询问
网关:无网关

这里的 106.xx.xx.xx 是腾讯云实例的公网 IP。注意不要填内网 IP,比如 10.x.x.x172.x.x.x192.168.x.x

添加完成后,双击这个连接。Windows App 会要求输入服务器用户名和密码。用户名填写你准备用来登录远程桌面的 Linux 用户。我的实例里常用的是 ubuntu,所以这里继续用它举例:

Username: ubuntu
Password: ubuntu用户密码

如果你平时通过 SSH 密钥登录,可能还没有给这个 Linux 用户设置过密码,可以在 SSH 里执行:

sudo passwd ubuntu

这里的 ubuntu 换成你实际准备用来登录远程桌面的用户名,即可设置密码。

连接后如果出现 xrdp 登录界面,并且有 Session 选择,保持默认或选择:

Xorg

这是 xrdp 常见的图形会话方式。前面安装的相关组件已经包含对它的支持,这里按默认方式登录即可。

第一次连接可能会等待几秒钟。连接成功后,就能进入 XFCE 桌面。左上角的 Applications 是应用菜单,桌面里可以看到 HomeFile System,也可以打开文件管理器查看服务器目录。

到这里,轻量 GUI 入口其实就已经配置完成了。后面一节是我遇到过的端口排查过程;如果你已经能正常连上,可以直接跳到“内存占用和退出方式”。


六、可选排查:3389 端口不通

如果 Windows App 一直连不上服务器,通常是 3389 端口还没真正从公网打通。这一节不是必走步骤,而是连接失败时的排查参考。

这种情况不要急着反复点连接,先把问题拆开看:是服务器没有监听 3389,还是腾讯云防火墙没放行,或者是来源 IP 填错了。

第一步,先在 Mac 上测试 3389 端口能不能连通:

nc -vz 106.xx.xx.xx 3389

这里的 106.xx.xx.xx 换成你的腾讯云实例公网 IP。

如果成功,会看到:

Connection to 106.xx.xx.xx port 3389 [tcp/ms-wbt-server] succeeded!

如果一直超时,说明 Mac 到服务器 3389 端口这条链路还没打通。

为了确认不是服务器 IP 写错,可以再测试一下 SSH 端口:

nc -vz 106.xx.xx.xx 22

我当时的结果是:22 能通,但 3389 不通。这个现象基本说明服务器公网 IP 没错,SSH 网络也没问题,重点应该查 xrdp 是否监听Ubuntu 本机防火墙,以及腾讯云外层防火墙

第二步,通过 SSH 登录服务器,在服务器里检查 xrdp 是否真的监听了 3389

sudo ss -tlnp | grep 3389
sudo ufw status

当时结果是:

*:3389 已监听
ufw inactive

这说明两件事:

  • xrdp 已经在服务器里监听 3389
  • Ubuntu 本机防火墙没有拦截。

也就是说,服务器内部基本没问题,问题更可能出在腾讯云外层防火墙,尤其是来源 IP 限制

表面上,我在 Mac 上查公网 IP:

curl -4 https://api.ipify.org

看到的是:

103.xxx.xxx.xxx

但腾讯云规则填这个 IP 后仍然不通。这个时候不要长期把来源改成“全部 IPv4”,更推荐直接确认服务器实际看到的来源 IP

第三步,在服务器上抓包:

sudo tcpdump -ni any tcp port 3389

保持这个命令运行,然后在 Mac 上再次测试:

nc -vz 106.xx.xx.xx 3389

如果抓包窗口没有任何输出,说明请求很可能还被挡在腾讯云防火墙外面。

为了确认真实来源 IP,我当时短暂把来源放宽到“全部 IPv4”,只用来抓一次包;抓到来源 IP 后,立刻改回精确的 /32 来源

服务器上可以看到类似:

IP 61.xxx.xxx.xxx.42761 > 10.0.0.6.3389: Flags [S]

这里的 61.xxx.xxx.xxx 才是服务器实际看到的来源 IP。最后,把腾讯云防火墙来源改成:

61.xxx.xxx.xxx/32

保存后再测:

nc -vz 106.xx.xx.xx 3389

端口就通了。

这个坑很典型:如果你所在网络有多个出口curl 查到的公网 IP 不一定等于远程桌面实际走的出口 IP。遇到这种情况,以服务器抓包看到的来源 IP为准。

总之,3389 端口不通时,不要只看本机查到的公网 IP;真正可靠的是服务器实际收到的来源 IP


七、内存占用和退出方式

xrdp 服务本身占用很小,真正占内存的是登录后的 XFCE 桌面会话

大致可以这样理解:

状态 额外内存占用
只安装 xrdp + XFCE,没人登录 约 50MB - 150MB
登录一个 XFCE 空桌面 约 300MB - 600MB
打开文件管理器、终端、图片查看器 约 400MB - 800MB
打开浏览器或重型 IDE 可能额外 800MB - 1.5GB+

用完 GUI 后,不建议只点 Mac 窗口左上角的关闭按钮。那通常只是断开远程连接,服务器里的桌面会话可能还在后台占内存。

更推荐在 XFCE 里选择:

Applications -> Log Out

这样会结束图形桌面会话,释放它占用的内存。

注意,请不要点

Shut Down
Restart

这会关机或重启整台服务器,影响正在运行的 OpenClaw、Hermes Agent 等进程。


写在最后

配置到这里,这台腾讯云 Lighthouse 服务器就多了一个轻量图形入口。它不是用来替代 SSH 的,而是在需要可视化预览和整理文件时,提供一个更直观的补充入口。

真正需要守住的是两个边界:安全上,不要把 3389 长期开放给全部 IPv4;资源上,用完 GUI 记得正常 Log Out,也不要把轻量服务器当成完整云电脑来用。

希望这篇文章能帮到你,后续我也会继续更新 AI 工具、智能体应用的相关内容,感兴趣的朋友欢迎关注。

我是 Ricky X,我们下期再见。👋


文章作者: Rickyの水果摊
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Rickyの水果摊 !
  目录