chrome_ssl

chrome_ssl

OpenCloudOS 9 上的远程 Chrome 完整部署记录
✅ 远程 Chrome 完整部署记录(OpenCloudOS 9 + noVNC + SSH 隧道)

一、环境说明

  • 服务器系统:OpenCloudOS 9
  • 核心目标:搭建轻量远程图形桌面,通过浏览器访问 Chrome,充分利用显示空间,无冗余报错
  • 访问方式:SSH 隧道本地访问(彻底规避 HTTPS 强制跳转、证书问题)
  • https://igozhang.cn:9222/vnc.html

二、一、服务器端:安装依赖(仅执行一次)

dnf install -y xorg-x11-server-Xvfb openbox x11vnc novnc google-chrome-stable

三、服务器端:一键启动脚本(可重复执行)

1. 创建启动脚本 start_chrome.sh

#!/bin/bash
# 清理旧环境
pkill -9 -f "Xvfb|x11vnc|websockify|chrome|openbox"
rm -f /tmp/.X1-lock

# 1. 启动 1920x1080 宽屏虚拟显示器(可根据需求调整分辨率)
Xvfb :1 -screen 0 1920x1080x16 >/dev/null 2>&1 &
export DISPLAY=:1
sleep 1

# 2. 启动 openbox 窗口管理器(用于窗口最大化管理)
openbox --replace >/dev/null 2>&1 &
sleep 1

# 3. 启动 x11vnc 服务
x11vnc -display :1 -nopw -listen 127.0.0.1 -xkb -forever >/dev/null 2>&1 &

# 4. 启动 noVNC 代理(复用 9222 端口,无需额外开防火墙)
/usr/bin/websockify --web /usr/share/novnc 127.0.0.1:9222 127.0.0.1:5900 >/dev/null 2>&1 &

# 5. 启动 Chrome:最大化启动、禁用 DBus 报错、保留完整界面
su - myuser -c "DISPLAY=:1 google-chrome \
--no-sandbox \
--disable-gpu \
--no-dbus \
--autoplay-policy=no-user-gesture-required \
--start-maximized \
--disable-pinch \
--force-device-scale-factor=1 &" >/dev/null 2>&1 &

echo "✅ 服务启动成功!"
echo "Mac 端执行:ssh -L 9222:127.0.0.1:9222 root@igozhang.cn"
echo "浏览器访问:http://127.0.0.1:9222/vnc.html"

2. 创建停止脚本 stop_chrome.sh

#!/bin/bash
pkill -9 -f "Xvfb|x11vnc|websockify|chrome|openbox"
rm -f /tmp/.X1-lock
echo "✅ 服务已停止"

3. 赋予脚本执行权限

chmod +x start_chrome.sh stop_chrome.sh

四、Mac 端:连接与访问步骤

1. 建立 SSH 隧道(保持终端窗口打开)

ssh -L 9222:127.0.0.1:9222 root@igozhang.cn

输入服务器密码,不要关闭终端,否则隧道断开。

2. 浏览器访问

打开 Chrome/Safari,输入地址:

“`Plain Text

http://127.0.0.1:9222/vnc.html

点击 **Connect** 进入远程桌面。

### 3. noVNC 客户端关键设置(首次访问配置)

1. 点击左侧⚙️ **设置图标**

2. **缩放模式**:选择「**缩放以适应 (Scale to fit)**」

3. 勾选「**限制/裁切窗口大小 (Clip to window)**」

4. 取消勾选「仅查看」,确保可操作

5. 点击 **Save** 保存(后续访问自动生效)

---

## 五、关键配置说明

### 1. 分辨率调整

如需更大显示空间,修改 `Xvfb` 启动参数即可:

- 超宽屏:`Xvfb :1 -screen 0 2560x1440x16`

- 标准宽屏:`Xvfb :1 -screen 0 1920x1080x16`(默认)

---

## 六、日常使用流程

1. 服务器端:执行 `./start_chrome.sh` 启动服务

2. Mac 端:终端执行 SSH 隧道命令

3. 浏览器访问 `http://127.0.0.1:9222/vnc.html`,使用远程 Chrome

4. 用完后:服务器端执行 `./stop_chrome.sh` 停止服务,关闭 Mac 终端

---

## 七、常见问题处理

### 1. 浏览器自动跳转 HTTPS

- 解决方案:使用 SSH 隧道本地访问 `127.0.0.1`,彻底规避 HTTPS 强制升级

- 若仍有问题:清除浏览器 HSTS 缓存(Chrome 访问 `chrome://net-internals/#hsts`,删除 `igozhang.cn` 策略)

### 2. Chrome 未最大化

- 解决方案:进入桌面后,按 `F11` 两次(第一次全屏,第二次恢复最大化,保留标签栏)

- 确保启动参数包含 `--start-maximized`

### 3. 连接重置/无法访问

- 解决方案:检查服务器服务状态,重新执行启动脚本;确认 SSH 隧道正常运行

---

## 八、方案优势

✅ 轻量低耗:总内存占用 < 500MB,不卡服务器

✅ 端口复用:仅用 9222 端口,无需额外开防火墙/安全组

✅ 稳定无坑:SSH 隧道本地访问,彻底解决 HTTPS、证书问题

✅ 界面完整:保留 Chrome 标签栏、地址栏,完全可用

✅ 充分利用空间:1920x1080 宽屏 + 自动最大化,无黑边无空白

---

九 直接使用证书,无需本地ssl转发方案

# 彻底清理残留
pkill -9 -f "Xvfb|x11vnc|websockify|chrome|openbox"
rm -rf /tmp/.X1-lock /tmp/.X11-unix/X1
sleep 1

# 启动虚拟桌面
Xvfb :1 -screen 0 1920x1080x16 >/dev/null 2>&1 &
export DISPLAY=:1
sleep 2

# 启动窗口管理器
openbox --replace >/dev/null 2>&1 &
sleep 1

# 启动x11vnc
x11vnc -display :1 -nopw -listen 127.0.0.1 -xkb -forever >/dev/null 2>&1 &
sleep 1

# 启动noVNC+HTTPS
websockify \
--web /usr/share/novnc \
--cert=/www/server/panel/vhost/cert/wordpress.local/igozhang.cn.pem \
--key=/www/server/panel/vhost/cert/wordpress.local/igozhang.cn.key \
0.0.0.0:9222 127.0.0.1:5900 >/dev/null 2>&1 &
sleep 2

# 启动Chrome
su - myuser -c "DISPLAY=:1 google-chrome \
--no-sandbox \
--disable-gpu \
--no-dbus \
--autoplay-policy=no-user-gesture-required \
--start-maximized &" >/dev/null 2>&1 &

验证访问
ps aux | grep -E "Xvfb|x11vnc|websockify|chrome|openbox"
https://igozhang.cn:9222/vnc.html

igozhang 2021