V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
busier
V2EX  ›  浏览器

分享一个 Firefox 安装前预配置设置的方法 (自定义分发安装包)

  •  
  •   busier · 119 天前 · 1220 次点击
    这是一个创建于 119 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先官网下载 Firefox 原版安装程序(这里的示例为 WIN64 简中 ESR 长期支持最新版本):
    https://download.mozilla.org/?product=firefox-esr-latest-ssl&os=win64&lang=zh-CN

    将下载的.exe 安装包重命名为:firefox_installer.exe 与下面批处理脚本对应

    接下来,将下面的批处理脚本保持成 firefox_installer.cmd 文件。
    (注意你的文本编辑器,Windows 系统用 /r/n 换行符,别搞成 Linux 的 /n 换行符了)

    @echo off
    SETLOCAL ENABLEEXTENSIONS

    REM Define installation directory and configuration file paths using %ProgramFiles%
    SET INSTALL_DIR=%ProgramFiles%\Mozilla Firefox
    SET PREF_DIR=%INSTALL_DIR%\defaults\pref
    SET CONFIG_FILE=%INSTALL_DIR%\firefox.cfg
    SET AUTOCONFIG_FILE=%INSTALL_DIR%\defaults\pref\autoconfig.js

    REM Specify the path to the Firefox installer
    SET FIREFOX_INSTALLER=%~dp0firefox_installer.exe

    REM Create configuration directory if it does not exist
    if not exist "%PREF_DIR%" mkdir "%PREF_DIR%"

    REM Generate autoconfig.js file
    echo // autoconfig.js > "%AUTOCONFIG_FILE%"
    echo pref("general.config.filename", "firefox.cfg"); >> "%AUTOCONFIG_FILE%"
    echo pref("general.config.obscure_value", 0); >> "%AUTOCONFIG_FILE%"

    REM Generate firefox.cfg file
    echo // firefox.cfg > "%CONFIG_FILE%"
    echo pref("media.peerconnection.enabled", false); >> "%CONFIG_FILE%"
    echo pref("app.update.enabled", false); >> "%CONFIG_FILE%"
    echo pref("app.update.service.enabled", false); >> "%CONFIG_FILE%"
    echo pref("network.proxy.socks_remote_dns", true); >> "%CONFIG_FILE%"
    echo pref("browser.startup.firstrunSkipsHomepage", true); >> "%CONFIG_FILE%"
    echo pref("browser.startup.homepage", "chrome://browser/content/blanktab.html"); >> "%CONFIG_FILE%"
    echo pref("browser.newtabpage.enabled", false); >> "%CONFIG_FILE%"
    echo pref("signon.rememberSignons", false); >> "%CONFIG_FILE%"

    REM Perform silent installation
    echo Installing Firefox silently...
    start "" /wait "%FIREFOX_INSTALLER%" /S

    REM Completion message
    echo Firefox installed and configured successfully.

    ENDLOCAL



    最后,右键以“管理员身份”运行这个.cmd 文件即可。

    配置项目说明:
    !!!特别推荐的项目!!!
    media.peerconnection.enabled 设置为 false ,功能为禁用 firefox WebRTC 支持。
    (这点为 firefox 点个赞,其他浏览器要么不能关闭,要么需要安装第三方插件)
    对于使用代理的用户来说,WebRTC 走 UDF 协议如果没有被代理兜住就会导致 IP 地址泄露,导致目标网站容易实现将你真实 IP 与代理出口的 IP 关联起来。
    对于国内视频网站用户来说,它们会使用 WebRTC 技术利用你的浏览器和宽带跑 PCDN 。

    network.proxy.socks_remote_dns 设置为 true ,让 firefox 使用 socks 代理的时候,让远程代理服务器进行 DNS 解析。而不是本地 DNS 解析的。

    如果你想要配置更多自定义配置项目,请自行在 firefox 中打开 about:config 找寻自己想要预定义的配置!

    重要的事情说三遍,预定义配置只对新生成的配置生效!!!
    重要的事情说三遍,预定义配置只对新生成的配置生效!!!
    重要的事情说三遍,预定义配置只对新生成的配置生效!!!

    如果你先运行过 firefox ,就已经生成了用户配置,即使重装 firefox 进行预定义配置,也不会对现有用户配置进行更改。

    想要检验预定义配置效果,可使用下列方法中的一种。
    1 、删除 %APPDATA%\Mozilla\Firefox 和 %USERPROFILE%\AppData\Local\Mozilla\Firefox 文件夹下的已有用户配置文件。(会导致现有设置丢失,包括收藏夹,登录状态,cookies 和上网记录等)
    2 、Win+R 打开运行 firefox --profile d:\myff ,自定义配置文件路径。
    对于隐私敏感用户来说,可以将 d:\myff 放到 RAMDISK 上,结合前面的预定义配置来用,可以说就非常方便了
    第 1 条附言  ·  119 天前
    原批处理中 start "" /wait "%FIREFOX_INSTALLER%" /S 后面缺少 /D="%INSTALL_DIR%" ,导致在 INSTALL_DIR 变量里面自定义 Firefox 程序目标安装文件夹无效,修改后的完整批处理如下:

    如果你只是安装到默认文件夹则没有关系


    @echo off
    SETLOCAL ENABLEEXTENSIONS

    REM Define installation directory and configuration file paths using %ProgramFiles%
    SET INSTALL_DIR=%ProgramFiles%\Mozilla Firefox
    SET PREF_DIR=%INSTALL_DIR%\defaults\pref
    SET CONFIG_FILE=%INSTALL_DIR%\firefox.cfg
    SET AUTOCONFIG_FILE=%INSTALL_DIR%\defaults\pref\autoconfig.js

    REM Specify the path to the Firefox installer
    SET FIREFOX_INSTALLER=%~dp0firefox_installer.exe

    REM Create configuration directory if it does not exist
    if not exist "%PREF_DIR%" mkdir "%PREF_DIR%"

    REM Generate autoconfig.js file
    echo // autoconfig.js > "%AUTOCONFIG_FILE%"
    echo pref("general.config.filename", "firefox.cfg"); >> "%AUTOCONFIG_FILE%"
    echo pref("general.config.obscure_value", 0); >> "%AUTOCONFIG_FILE%"

    REM Generate firefox.cfg file
    echo // firefox.cfg > "%CONFIG_FILE%"
    echo pref("media.peerconnection.enabled", false); >> "%CONFIG_FILE%"
    echo pref("app.update.enabled", false); >> "%CONFIG_FILE%"
    echo pref("app.update.service.enabled", false); >> "%CONFIG_FILE%"
    echo pref("network.proxy.socks_remote_dns", true); >> "%CONFIG_FILE%"
    echo pref("browser.startup.firstrunSkipsHomepage", true); >> "%CONFIG_FILE%"
    echo pref("browser.startup.homepage", "chrome://browser/content/blanktab.html"); >> "%CONFIG_FILE%"
    echo pref("browser.newtabpage.enabled", false); >> "%CONFIG_FILE%"
    echo pref("signon.rememberSignons", false); >> "%CONFIG_FILE%"

    REM Perform silent installation
    echo Installing Firefox silently...
    start "" /wait "%FIREFOX_INSTALLER%" /S /D="%INSTALL_DIR%"

    REM Completion message
    echo Firefox installed and configured successfully.

    ENDLOCAL
    1 条回复
    slowmist
        1
    slowmist  
       119 天前
    好人一生平安
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5545 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:41 · PVG 16:41 · LAX 00:41 · JFK 03:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.