想在 Chrome 中修改 User Agent 又不想安装任何东西,可以打开 DevTools,再打开 Network conditions 工具(三点菜单 > More tools > Network conditions),取消勾选 User agent 旁边的 Use browser default,然后选择预设或粘贴自定义字符串。修改只对当前标签页生效,并且仅在 DevTools 保持打开时有效。请刷新页面,让网站从第一个请求起就收到新的 User Agent。
方法一:DevTools 中的 Network conditions
- 按
F12、Ctrl + Shift + I(Windows、Linux)或Cmd + Option + I(Mac)打开 DevTools。 - 点击 DevTools 右上角的三点菜单,选择 More tools > Network conditions。也可以打开命令菜单(
Ctrl + Shift + P或Cmd + Shift + P),输入“network conditions”。 - 在 User agent 部分,取消勾选 Use browser default。
- 从下拉列表中选择预设(Android 版 Chrome、iPhone 版 Safari、Firefox、Edge,以及 Googlebot 等爬虫),或选择 Custom 并粘贴任意字符串。
- 刷新页面。
User Agent 输入框下方有一个可展开的 User agent client hints 区域,可以设置品牌、平台、型号和移动设备标志。模拟手机时请一并填写,让 Sec-CH-UA-Mobile 请求头与 User Agent 字符串保持一致。原因见 User Agent Switcher 的作用。
修改会一直有效,直到你关闭 DevTools 或标签页。
方法二:设备模式会自动设置
如果你的目的是查看网站在手机上的样子,请使用设备模式,而不是只改 User Agent。打开设备工具栏(Ctrl + Shift + M 或 Cmd + Shift + M),选择一款手机,Chrome 就会同时设置 User Agent、视口、像素比和触摸模拟。如果只改 User Agent 而视口仍是桌面宽度,通常会看到移动端 HTML 和桌面布局混在一起的错乱页面。
设备模式的用法见 Chrome 手机模拟器教程。如果需要频繁检查又不想开 DevTools,可以用 Mobile View Extension:点一下工具栏按钮就能应用设备的 User Agent、Client Hints 和屏幕尺寸,切换页面时也会保持。
方法三:用自定义 User Agent 启动 Chrome
想在整个浏览器会话中使用某个 User Agent,可以加上 --user-agent 参数启动 Chrome。请指定单独的配置文件目录,以免影响平时使用的配置:
# macOS
open -na "Google Chrome" --args --user-data-dir=/tmp/ua-test --user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1"
:: Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --user-data-dir=%TEMP%\ua-test --user-agent="..."
这样会改变 User-Agent 请求头和 navigator.userAgent,但不会改变 Client Hints、视口或触摸支持。
方法四:用 Playwright 或 Puppeteer 自动化
需要可重复的测试时,在代码里设置 User Agent。Playwright 的设备描述会同时设置 User Agent、视口、像素比和触摸:
import { chromium, devices } from 'playwright';
const browser = await chromium.launch();
const context = await browser.newContext({ ...devices['Pixel 7'] });
const page = await context.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'pixel7.png' });
如果只想设置字符串,可以给 newContext 传入 userAgent: '...'。在 Puppeteer 中使用 await page.setUserAgent('...')。
在其他浏览器中修改 User Agent
| 浏览器 | 方法 |
|---|---|
| Microsoft Edge | 与 Chrome 相同:DevTools > More tools > Network conditions |
| Firefox | 响应式设计模式(Ctrl + Shift + M / Cmd + Option + M)中有 User Agent 输入框;如需永久修改,在 about:config 中设置 general.useragent.override |
| Safari(Mac) | 在设置 > 高级中开启显示网页开发者功能,然后使用开发 > 用户代理 |
| Android 版 Chrome | 不能自定义字符串;菜单中的桌面版网站会切换为桌面 User Agent |
| iPhone 版 Safari | 不能自定义字符串;页面菜单中的请求桌面网站会切换为桌面 User Agent |
常见问题排查
- 没有任何变化。 你没有刷新页面,或者网站把判断结果存在了 Cookie 里。刷新页面,或在无痕窗口中测试。
- 页面显示错乱。 你改了 User Agent,但没改视口。测试移动端请使用设备模式。
- 网站仍能识别出真实浏览器。 它在读取 Client Hints 或使用特性检测。把 Client Hints 也设置好,或者接受这一点:使用特性检测本来就是网站的正确做法。
- 登录或支付页面拦截了你。 一些安全系统会把前后不一致的 User Agent 视为可疑。真实账户请使用平时的浏览器。
常见问题
可以永久修改 Chrome 的 User Agent 吗?
无法通过设置实现。可以配合单独的配置文件使用 --user-agent 命令行参数,或者使用按网站应用规则的插件。
如何在 Chrome 中切换成手机 User Agent?
打开 DevTools,按 Ctrl + Shift + M(Mac 上按 Cmd + Shift + M)切换到设备模式,然后选择一款手机。这样会同时设置手机 User Agent 和手机尺寸的视口。
修改 User Agent 能隐藏我的身份吗?
基本不能。网站可以通过其他信号识别你的浏览器,而少见的 User Agent 反而会让你更显眼。