当前位置: 首页 > news >正文

【实战笔记】OCI Ubuntu 24.04 + TigerVNC + XFCE + Chrome 开机自启全记录

OCI Ubuntu 24.04 + TigerVNC + XFCE + Chrome 开机自启全记录

    • 1. 更新系统 & 安装软件(root)
    • 2. 创建专用用户
    • 3. 切到 vncuser,配置 VNC 会话
    • 4. 启动 VNC 并验证端口(vncuser)
    • 5. 防火墙 & OCI 安全列表
    • 6. 安装 Google Chrome(root)
    • 7. 配置 systemd 开机自启(root)
    • 8. 一键重启测试

环境
Oracle Cloud Infrastructure Ubuntu 24.04 LTS
目标:重启后 TigerVNC 自动拉起,外网直连 XFCE + Chrome 无需人工干预


1. 更新系统 & 安装软件(root)

sudo apt update && sudo apt -y upgrade
sudo apt -y install xfce4 xfce4-goodies xfce4-session
sudo apt -y install tigervnc-standalone-server tigervnc-common tigervnc-tools

2. 创建专用用户

sudo adduser vncuser
sudo usermod -aG sudo vncuser

3. 切到 vncuser,配置 VNC 会话

su - vncuser
vncpasswd                        # 设置登录密码
mkdir -p ~/.vnc
cat > ~/.vnc/xstartup <<'EOF'
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XDG_SESSION_TYPE=x11
export XDG_RUNTIME_DIR=/run/user/$(id -u)
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
exec startxfce4
EOF
chmod +x ~/.vnc/xstartup

4. 启动 VNC 并验证端口(vncuser)

vncserver :1 -localhost no -geometry 1280x800 -depth 24
ss -ltnp | grep 5901

应看到 0.0.0.0:5901


5. 防火墙 & OCI 安全列表

5.1 实例本机 iptables(root)

sudo iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
sudo apt install -y iptables-persistent
sudo netfilter-persistent save

5.2 OCI 控制台
路径:虚拟云网络 → 子网 → 安全列表 → 入站规则
新增:

方向源 CIDR协议端口范围
Ingress0.0.0.0/0TCP5901

6. 安装 Google Chrome(root)

sudo apt install -y wget gnupg
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor -o /usr/share/keyrings/googlechrome-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/googlechrome-keyring.gpg] https://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list
sudo apt update
sudo apt install -y google-chrome-stable

7. 配置 systemd 开机自启(root)

sudo tee /etc/systemd/system/vncserver@.service >/dev/null <<'EOF'
[Unit]
Description=VNC Server for user vncuser
After=network.target[Service]
Type=forking
User=vncuser
Group=vncuser
WorkingDirectory=/home/vncuser
PIDFile=/home/vncuser/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1280x800 -depth 24
ExecStop=/usr/bin/vncserver -kill :%i
Restart=on-failure[Install]
WantedBy=multi-user.target
EOFsudo systemctl daemon-reload
sudo systemctl enable --now vncserver@1.service
sudo systemctl status vncserver@1.service

看到 active (running) 即成功。


8. 一键重启测试

sudo reboot

等待 1-2 分钟,外网用 xxx.xxx.xxx.xxx:1 连接,无需任何手动操作即可进入带 Chrome 的 XFCE 桌面。

http://www.dtcms.com/a/354768.html

相关文章:

  • [吾爱出品] windows桌面课程表
  • Kafka 4.0 五大 API 选型指南、依赖坐标、上手示例与最佳实践
  • AI智能教育新实践:从作业批改到薄弱项定位,构建个性化学习新路径
  • 深入理解QLabel:Qt中的文本与图像显示控件
  • 云计算学习100天-第30天
  • LaunchScreen是啥?AppDelegate是啥?SceneDelegate是啥?ContentView又是啥?Main.storyboard是啥?
  • 生成式 AI 的 “魔法”:以 GPT 为例,拆解大语言模型(LLM)的训练与推理过程
  • Java线程池深度解析:从原理到实战的完整指南
  • ABAP - CPI - pass header parameter and filter parameter to odata service
  • 【C语言】函数栈帧的创建与销毁
  • 引入资源即针对于不同的屏幕尺寸,调用不同的css文件
  • 开发避坑指南(41):Vue3 提示框proxy.$modal.msgSuccess()提示文本换行解决方案
  • 腾讯混元开源视频拟音模型,破解 AI 视频 “无声” 难题
  • vscode 远程ssh登录免手动输入密码
  • 20.22 QLoRA微调实战:中文语音识别数据准备全流程解密
  • 音合成之二十四 微软VibeVoice语音合成模型
  • 2025通用证书研究:方法论、岗位映射与四证对比
  • 【Bluedroid】A2DP Source设备音频数据读取机制分析(btif_a2dp_source_read_callback)
  • Unity 打包 iOS,Xcode 构建并上传 App Store
  • Java 大视界 -- 基于 Java 的大数据实时流处理在智能电网分布式电源接入与电力系统稳定性维护中的应用(404)
  • mac中进行适用于IOS的静态库构建
  • 【大前端】React Native 调用 Android、iOS 原生能力封装
  • 基于FPGA的情绪感知系统设计方案:心理健康监测应用(五)
  • Ckman部署clickhouse
  • Qt基础_xiaozuo
  • Groovy集合常用简洁语法
  • linux mysql 数据库启动异常问题记录
  • KafKa学习笔记
  • AT_abc407_e [ABC407E] Most Valuable Parentheses
  • 前端开发中的CSS变量管理:实现缓存与响应式更新