Ubuntu22.04 + Xfce + xrdp 完整开发环境部署文档

适用场景:PVE虚拟机,底层NFS磁盘,xrdp远程RDP(Windows mstsc直接连接),Go开发,VSCode,Chrome浏览器,中文输入,中文界面可选。
说明:

  • 系统:Ubuntu 22.04 amd64
  • 桌面:Xfce4
  • 远程协议:xrdp(Windows自带mstsc,支持剪贴板,会话持久化,断开RDP程序不关闭)
  • 输入法:fcitx5(VSCode、Chrome、终端全部可用中文输入)
  • 不使用snap包,规避snap在xrdp下的各类兼容性bug

前置准备

虚拟机配置建议:4核vCPU,6G固定内存,磁盘后端NFS(内存充足减少swap读写NFS,swap在NFS会严重卡顿)

登录方式:PVE控制台TTY或者RDP登录普通用户(不要root登录xrdp)


1. 更新系统

sudo apt update
sudo apt upgrade -y
# 消除debconf弹窗警告(可选,推荐执行)
sudo apt install dialog -y

2. 安装 Xfce桌面 + 终端 + 基础依赖

sudo apt install -y xfce4 xfce4-goodies xorg dbus-x11 xfce4-terminal
# 应急轻量终端备用
sudo apt install xterm -y

3. 安装并配置 xrdp(RDP远程桌面核心)

# 安装xrdp
sudo apt install -y xrdp
# xrdp加入ssl-cert组,消除证书警告
sudo adduser xrdp ssl-cert

3.1 配置xrdp启动脚本(重点,解决终端打不开、dbus失效)

sudo nano /etc/xrdp/startwm.sh

清空原有内容,完整替换下面内容

#!/bin/sh
export DESKTOP_SESSION=xfce
export XDG_SESSION_DESKTOP=xfce
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
exec dbus-launch --exit-with-session startxfce4

Ctrl+O保存,Ctrl+X退出

3.2 用户会话配置

nano ~/.xsession

写入:

xfce4-session

赋予权限

chmod +x ~/.xsession

3.3 启动xrdp并放行防火墙

sudo systemctl restart xrdp
sudo systemctl enable xrdp
sudo ufw allow 3389/tcp

Windows使用 mstsc 连接虚拟机IP:3389,填写Ubuntu用户名密码登录

4. 中文支持:字体 + Fcitx5中文输入法(推荐:系统英文,仅中文输入)

# 中文字体,解决方框缺字
sudo apt install -y fonts-noto-cjk fonts-noto-color-emoji
# 安装fcitx5输入法框架+拼音
sudo apt install -y fcitx5 fcitx5-chinese-addons fcitx5-config-qt
# 设置默认输入法框架
im-config -n fcitx5

写入输入法环境变量(xrdp会话必须,否则无法输入中文)

echo "GTK_IM_MODULE=fcitx" >> ~/.pam_environment
echo "QT_IM_MODULE=fcitx" >> ~/.pam_environment
echo "XMODIFIERS=@im=fcitx" >> ~/.pam_environment

【可选:把整个系统界面汉化】执行下面这行,不想要中文菜单就跳过:

sudo update-locale LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:zh

重启生效

sudo reboot

RDP登录后配置输入法

  1. Xfce菜单打开 Fcitx5 Configuration
  2. 左下角加号,取消「只显示当前语言」
  3. 搜索 Pinyin 添加
  4. 快捷键:Ctrl+空格 切换中英文

图标EN=英文,拼=中文,VSCode、Chrome、终端都可用

5. 安装 VSCode(deb包,拒绝snap)

# 下载官方deb
wget [https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64](https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64) -O /tmp/code.deb
# 安装
sudo apt install /tmp/code.deb -y
# 修复依赖(如有)
sudo apt -f install
# 删除安装包
rm /tmp/code.deb

启动命令:

code

扩展安装:搜索 Go(google官方gopls)、Chinese (Simplified) Language Pack(VSCode界面汉化)

VSCode 优化(NFS磁盘重点!缓存放本地,不占用NFSIO)

打开VSCode Ctrl+Shift+P → Preferences: Open Settings (JSON),添加:

{
    "files.defaultStoragePath": "/tmp/vscode"
}

6. 安装 Git + Go语言开发环境

# git
sudo apt install git -y
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

# Go(amd64,自行替换最新版本号)
wget [https://dl.google.com/go/go1.23.1.linux-amd64.tar.gz](https://dl.google.com/go/go1.23.1.linux-amd64.tar.gz) -O /tmp/go.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local/go -xzf /tmp/go.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOCACHE=$HOME/.gocache' >> ~/.bashrc
mkdir -p ~/.gocache
source ~/.bashrc
go version

7. 安装 Google Chrome(deb包,无snap,xrdp兼容)

# 下载chrome deb包
wget [https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb](https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb) -O /tmp/chrome.deb
sudo apt install /tmp/chrome.deb -y
rm /tmp/chrome.deb

修复虚拟机内chrome沙盒报错(必须配置)

sudo nano /usr/share/applications/google-chrome.desktop

找到所有 Exec= 行,末尾增加 --no-sandbox
示例:

Exec=/usr/bin/google-chrome-stable %U --no-sandbox

启动命令(带缓存目录优化,缓存放本地tmp,不走NFS)

google-chrome-stable --no-sandbox --disk-cache-dir=/tmp/chrome-cache

8. VSCode账号登录方案(解决浏览器回调失败,⭐重点)

xrdp环境下,VSCode唤起浏览器登录会出现localhost回调失败,优先设备码登录

  1. VSCode Ctrl+Shift+P → Accounts: Sign in
  2. 选择账号类型,出现设备码
  3. 在你Windows宿主机浏览器打开:
  4. 输入设备码授权,虚拟机VSCode自动完成登录

如果只是git拉代码,不需要登录VSCode账号,前面git配置即可。

9. 常用排查命令

# 重启xrdp
sudo systemctl restart xrdp
# 重启输入法
fcitx5 -r
# 关闭全部vscode
pkill code
# 测试网络连通
curl -I [https://github.com](https://github.com)

10. 重要优化清单(你的虚拟机磁盘底层NFS)

  1. 内存固定6G,关闭PVE内存气球,不要动态内存
  2. 不要把VSCode缓存、GOCACHE、浏览器缓存放在NFS,全部放虚拟机本地
  3. NFS底层必须SSD,机械盘会严重卡顿
  4. 代码频繁git提交,防止NFS网络抖动造成文件损坏
  5. 网络轻微丢包会直接造成NFS IO卡死,保证千兆网络稳定

11. 环境清单汇总

  • 桌面:Xfce4
  • 远程:xrdp,3389端口
  • 终端:xfce4-terminal / xterm
  • 输入法:fcitx5拼音
  • 编辑器:VSCode(deb)
  • 浏览器:Google Chrome(deb –no-sandbox)
  • 开发:Git + Go

作者:月影鹏鹏  创建时间:2026-10-05 20:01
最后编辑:月影鹏鹏  更新时间:2026-10-05 20:01