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登录后配置输入法
- Xfce菜单打开
Fcitx5 Configuration - 左下角加号,取消「只显示当前语言」
- 搜索
Pinyin添加 - 快捷键:
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回调失败,优先设备码登录
- VSCode
Ctrl+Shift+P→Accounts: Sign in- 选择账号类型,出现设备码
- 在你Windows宿主机浏览器打开:
- 输入设备码授权,虚拟机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)
- 内存固定6G,关闭PVE内存气球,不要动态内存
- 不要把VSCode缓存、GOCACHE、浏览器缓存放在NFS,全部放虚拟机本地
- NFS底层必须SSD,机械盘会严重卡顿
- 代码频繁git提交,防止NFS网络抖动造成文件损坏
- 网络轻微丢包会直接造成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
最后编辑:月影鹏鹏 更新时间:2026-10-05 20:01