不使用 GUI 配置 Firefox

不使用 GUI 配置 Firefox

在自动安装机器的上下文中,我想从命令行配置 Firefox,特别是代理设置,例如通过执行命令或编辑配置文件。

这可能吗?如果可能的话,如何实现?

编辑:我忘了提及我想为所有用户配置代理。

答案1

根据https://support.mozilla.org/en-US/kb/customizing-firefox-using-autoconfig你需要创建2个文件。第一个文件 autoconfig.js 应位于 install-dir/defaults/pref 目录中,并且应仅包含 2 行:

pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);

第二个文件 firefox.cfg 应位于 install-dir/ 中,包含代理的设置。

如果您使用的是 Ubuntu 22.04 或更高版本,则可以快速提供 Firefox(请参阅https://ubuntu.com/desktop/features)。您也可能在其他发行版上使用 snap。如果您不确定 Firefox 是否安装为 snap,请尝试以下操作:

$ which firefox
/snap/bin/firefox
or
~$ snap list
Name               Version          Rev    Tracking         Publisher   Notes
firefox            110.0-3          2356   latest/stable/…  mozilla    -

Firefox snap 无法读取 /usr/lib/firefox 等目录,并且 firefox snap 的文件系统是只读的。从 Firefox 108 开始,您可以选择将配置文件放在 /etc/firefox 中(如果该目录不存在,则创建该目录)。请执行以下步骤。您需要相应地调整代理的 IP。

$ cd /etc
$ sudo mkdir firefox  
$ cd /etc/firefox

创建包含以下内容的文件 firefox.cfg (第一条注释很重要):

// IMPORTANT: Start your code on the 2nd line
pref("network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation", true);
pref("network.proxy.backup.ssl", "");
pref("network.proxy.backup.ssl_port", 0);
pref("network.proxy.http", "192.168.XXX.XXX");
pref("network.proxy.http_port", XXXX);
pref("network.proxy.share_proxy_settings", true);
pref("network.proxy.ssl", "192.168.XXX.XXX");
pref("network.proxy.ssl_port", XXXX);
pref("network.proxy.type", 1);
pref("network.trr.mode", 5);

创建其他目录:

$ sudo mkdir /etc/firefox/defaults 
$ sudo mkdir /etc/firefox/defaults/pref 
$ cd /etc/firefox/defaults/pref

创建包含以下内容的文件 autoconfig.js:

pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);

现在已为此本地系统上的所有用户设置代理。您可以在这里找到更多信息:https://bugzilla.mozilla.org/show_bug.cgi?id=1785278

答案2

你基本上有两个选择(我能想到的)

  1. 启动 Firefox,并使用正确的设置(例如代理设置)更新您的配置文件。然后关闭并检索您的配置~myusername/.mozilla/firefox/xxxxxxx.default/prefs.jsxxxxx是一个动态字符串。然后,您可以使用此用户首选项进行部署。
  2. 在部署/安装计算机后,使用代理设置直接更新该文件。

当您使用该用户启动 Firefox 时,将直接应用这些设置。


根据@Sparhawk 的评论,第二个选项更合适。在这种情况下,我们prefs.js尽可能保持原始版本不变,只需更改代理设置:

user_pref("network.proxy.http", "IPADDRESS OR URL");
user_pref("network.proxy.http_port", 8080);

相关内容