如何让Linux环境下的Vivaldi浏览器向网页伪装操作系统为Windows
如何让Linux环境下的Vivaldi浏览器向网页伪装操作系统为Windows
嘿,完全理解你的隐私顾虑——作为Linux用户确实属于极小众群体,伪装操作系统确实能降低被针对性识别的风险。既然Vivaldi已经默认伪装成Chrome了,咱们不用额外装插件,靠浏览器自带的功能和简单的自定义就能搞定系统伪装,具体步骤如下:
第一步:修改User-Agent(UA)字符串
虽然你不确定现在网站是否只靠UA识别系统,但这是最基础的一步。Vivaldi支持通过启动参数直接指定UA:- 找到Vivaldi的桌面快捷方式(一般在
~/.local/share/applications/或者系统应用菜单里) - 编辑快捷方式的命令行,把原来的
vivaldi-stable改成:
注意把vivaldi-stable --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/XX.0.XXXX.XX Safari/537.36"XX.0.XXXX.XX替换成你当前Vivaldi对应的Chrome内核版本(可以在vivaldi://version页面里查看“JavaScript”行的版本号)。
- 找到Vivaldi的桌面快捷方式(一般在
第二步:拦截JavaScript的系统属性检测
很多网站会通过JS读取navigator.platform、navigator.oscpu甚至新的userAgentData来识别系统,这时候需要用Vivaldi的自定义JS功能来覆盖这些属性:- 打开Vivaldi的设置页面,进入「外观」选项,找到「自定义UI修改」,勾选「允许使用CSS和JS修改UI」
- 找到自定义JS的存储目录(可以在设置里的「自定义UI修改」下方看到路径,一般是
~/.config/vivaldi/Default/User CSS/) - 在该目录下新建一个名为
fake_os.js的文件,粘贴以下代码:// 覆盖基础的navigator属性 Object.defineProperty(navigator, 'platform', { get: () => 'Win32' }); Object.defineProperty(navigator, 'oscpu', { get: () => 'Windows NT 10.0; Win64; x64' }); // 处理新的User-Agent Client Hints API if (navigator.userAgentData) { // 覆盖platform属性 Object.defineProperty(navigator.userAgentData, 'platform', { get: () => 'Windows' }); // 拦截高熵值请求,伪造系统信息 const originalGetHEV = navigator.userAgentData.getHighEntropyValues; navigator.userAgentData.getHighEntropyValues = async (keys) => { const result = await originalGetHEV(keys); if (keys.includes('platform')) result.platform = 'Windows'; if (keys.includes('os')) result.os = { name: 'Windows', version: '10' }; return result; }; } - 保存文件后重启Vivaldi,这样网页通过JS读取系统信息时就会拿到Windows的结果了。
额外提示
极少数网站可能会通过WebGL渲染器、字体列表等更隐蔽的方式检测系统,但对于绝大多数场景来说,上面两步已经足够覆盖常见的检测手段了,而且全程不用依赖第三方插件,完全符合你的需求。
备注:内容来源于stack exchange,提问作者Stan




