You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让Linux环境下的Vivaldi浏览器向网页伪装操作系统为Windows

如何让Linux环境下的Vivaldi浏览器向网页伪装操作系统为Windows

嘿,完全理解你的隐私顾虑——作为Linux用户确实属于极小众群体,伪装操作系统确实能降低被针对性识别的风险。既然Vivaldi已经默认伪装成Chrome了,咱们不用额外装插件,靠浏览器自带的功能和简单的自定义就能搞定系统伪装,具体步骤如下:

  • 第一步:修改User-Agent(UA)字符串
    虽然你不确定现在网站是否只靠UA识别系统,但这是最基础的一步。Vivaldi支持通过启动参数直接指定UA:

    1. 找到Vivaldi的桌面快捷方式(一般在~/.local/share/applications/或者系统应用菜单里)
    2. 编辑快捷方式的命令行,把原来的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”行的版本号)。
  • 第二步:拦截JavaScript的系统属性检测
    很多网站会通过JS读取navigator.platformnavigator.oscpu甚至新的userAgentData来识别系统,这时候需要用Vivaldi的自定义JS功能来覆盖这些属性:

    1. 打开Vivaldi的设置页面,进入「外观」选项,找到「自定义UI修改」,勾选「允许使用CSS和JS修改UI」
    2. 找到自定义JS的存储目录(可以在设置里的「自定义UI修改」下方看到路径,一般是~/.config/vivaldi/Default/User CSS/
    3. 在该目录下新建一个名为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;
          };
      }
      
    4. 保存文件后重启Vivaldi,这样网页通过JS读取系统信息时就会拿到Windows的结果了。
  • 额外提示
    极少数网站可能会通过WebGL渲染器、字体列表等更隐蔽的方式检测系统,但对于绝大多数场景来说,上面两步已经足够覆盖常见的检测手段了,而且全程不用依赖第三方插件,完全符合你的需求。

备注:内容来源于stack exchange,提问作者Stan

火山引擎 最新活动