我的目标是能够自动更改配置设置,而无需重新启动正在运行的 Firefox 实例。特别是我想更改网络代理类型。因此,例如,理想的做法是
firefox --set network.proxy.type "1"
或者
firefox --network-proxy-type "1"
目前,我的解决方法是使用名为“QuickProxy”的扩展程序,它允许我通过单击 QuickProxy 状态栏按钮来打开或关闭代理设置。(如果您需要更改其他设置,则此解决方法显然不起作用)
但这仍然是一个额外的步骤 - 对于其他所有操作,代理设置都是通过插入网络管理器(在 Kubuntu Linux 上)的脚本动态管理的,该脚本根据分配的 IP 地址触发以打开或关闭代理使用。只有 Firefox 无法(目前)进行这样的管理。
我想可能有一种方法可以创建一个“设置” Mime 类型,它可能会改变配置设置,这样我就可以做类似的事情:
firefox file:///tmp/turn-proxy-on.settings
或者也许有一个附加组件可以使 Firefox 理解新的 CLI 选项来实现这一点……
但是在正在运行的 Firefox 实例中更改设置的任何其他可编写脚本的方式就足够了。
PS 理想情况下,我还希望能够查询设置的当前值,例如通过类似命令firefox --get network.proxy.setting
答案1
我找不到任何方法prefs.js
在从命令行更改文件后重新加载文件(这是 Firefox 存储其设置的地方)。这很遗憾,因为这本来是最简单的方法。
但是,对于您想要更改的特定设置,您可以简单地设置一个proxy.pac
文件检查你的 IP 是否在特定子网中,并且仅在其位于特定子网中时才设置代理:
if (isInNet(myIpAddress(), "192.168.1.0", "255.252.0.0")) {
proxy = "PROXY 123.456.789.100:12345";
}
else{
proxy = "DIRECT";
}
return proxy;
显然,您应该使用实际代理的 URL 和端口。您还需要对其进行修改,以便它为您的设置运行正确的测试(IP 范围等)。
现在,打开代理设置选项卡,选择“自动代理配置 URL”并将其指向:file:////path/to/proxy.pac
。重新启动 Firefox,现在您的代理应该会根据您的 IP 地址自动设置。
看这里更多细节。