在腾讯云轻量服务器(如轻量应用服务器 Lighthouse)上安装并运行浏览器,通常用于自动化测试、爬虫、截图等场景。由于服务器是 Linux 系统(如 Ubuntu/CentOS),默认没有图形界面,因此需要以“无头模式”(headless)运行浏览器。
以下是详细的步骤,以 Ubuntu 系统 为例,在腾讯云轻量服务器上安装并运行 Chrome 浏览器(使用 Google Chrome + Puppeteer 或命令行方式):
✅ 步骤一:更新系统
sudo apt update && sudo apt upgrade -y
✅ 步骤二:安装 Google Chrome 浏览器
- 下载并添加 Google 的 GPG 密钥:
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
- 添加 Chrome 的 APT 源:
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list
- 安装 Chrome 浏览器:
sudo apt update
sudo apt install google-chrome-stable -y
✅ 验证安装:
google-chrome --version
✅ 步骤三:安装依赖库(重要!)
Chrome 在无头服务器上运行需要一些图形和字体依赖:
sudo apt install -y xvfb xz-utils wget fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
✅ 步骤四:以无头模式运行 Chrome
方式一:直接命令行测试
google-chrome --headless=new --disable-gpu --no-sandbox --screenshot --dump-dom https://example.com
--headless=new:启用新版无头模式(推荐)--disable-gpu:禁用 GPU(服务器不需要)--no-sandbox:在容器或特定环境中避免沙箱问题(⚠️ 注意安全)--screenshot:截取页面截图(生成screenshot.png)--dump-dom:输出页面 HTML 内容
执行后会生成
screenshot.png文件。
✅ 步骤五:使用 Puppeteer(Node.js 自动化控制)
如果你希望更灵活地控制浏览器(如自动点击、登录、滚动等),推荐使用 Puppeteer。
- 安装 Node.js(建议 v18+)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
- 创建项目并安装 Puppeteer
mkdir browser-test && cd browser-test
npm init -y
npm install puppeteer-core
使用
puppeteer-core可以指定已安装的 Chrome 路径,避免下载 Chromium。
- 编写测试脚本
test.js
const puppeteer = require('puppeteer-core');
(async () => {
const browser = await puppeteer.launch({
executablePath: '/usr/bin/google-chrome', // 指向已安装的 Chrome
headless: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-gpu'
]
});
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'example.png' });
console.log('截图已保存为 example.png');
await browser.close();
})();
- 运行脚本
node test.js
✅ 常见问题解决
| 问题 | 解决方案 |
|---|---|
No usable sandbox! |
加上 --no-sandbox 参数(仅限可信环境) |
Error while loading shared libraries |
补全依赖库(见步骤三) |
| 内存不足导致崩溃 | 轻量服务器建议至少 2GB 内存,或增加 swap |
| 中文乱码 | 安装中文字体:sudo apt install -y fonts-wqy-zenhei |
✅ 总结
你可以在腾讯云轻量服务器上成功运行浏览器,关键点如下:
- 使用
--headless模式无需 GUI - 安装完整依赖库
- 推荐配合 Puppeteer 实现自动化
- 注意资源占用,避免 OOM
如有进一步需求(如部署 Flask 接口调用浏览器、定时截图等),也可以继续扩展。欢迎继续提问!
云小栈