不使用 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);

相關內容