如何以编程方式更改Firefox代理设置?
我正在通过命令行启动 Firefox,我想使用代理启动特定的 Firefox 配置文件。根据Stackoverflow 上的这个答案,Firefox 代理设置存储在pref.jsFirefox Profile 文件夹中,需要编辑此文件以使用代理启动 FF。
我已编辑该文件如下:
user_pref("network.proxy.ftp", "1.0.0.1");
user_pref("network.proxy.ftp_port", 00000);
user_pref("network.proxy.gopher", "1.0.0.1");
user_pref("network.proxy.gopher_port", 00000);
user_pref("network.proxy.http", "1.0.0.1");
user_pref("network.proxy.http_port", 22222);
user_pref("network.proxy.no_proxies_on", "localhost, 1.0.0.1");
user_pref("network.proxy.socks", "1.0.0.1");
user_pref("network.proxy.socks_port", 00000);
user_pref("network.proxy.ssl", "1.0.0.1");
user_pref("network.proxy.ssl_port", 00000);
user_pref("network.proxy.type", 1);
注意:上面使用的 IP 地址和端口仅用于演示目的。
但是,我遇到了两个问题:
1) Firefox 完全忽略这些设置并在没有任何代理的情况下启动 FF
2)当 Firefox 退出时,文本修改被还原/删除
注意:当我编辑上面的文本文件时,Firefox 没有运行。我知道顶部有一个免责声明prefs.js:
如果在应用程序运行时更改此文件,则应用程序退出时更改将被覆盖。
但是在我编辑上述文件时没有运行 Firefox 的实时实例。
使用不同的代理手动创建不同的 FF 配置文件(如另一个用户的建议)不是一种选择,因为一切都需要以编程方式完成,无需手动干预。
Firefox 是否仍然支持通过 链接代理pref.js?如果没有,通过命令行使用 Java 代理启动 Firefox 的当前工作解决方案是什么?
谢谢
回答
代理自动配置文件正是您要找的。
文档在这里。定义一个name.pac包含 javascript 函数的文件
function FindProxyForURL(url, host)
function FindProxyForURL(url, host)
在文件中,您可以使用任何想要决定使用哪个代理的 javscript。在自动配置代理下的 firefox 设置中设置 .pac 文件的路径。请记住使用文件 url。
要设置自动文件切换,只需将 firefox 配置为指向单个文件,并在每次需要更改时以编程方式覆盖该文件。您可以保留所有选项的副本,只需在运行前将选项文件复制到目标文件中即可。
一个超级简单的 pac 文件的例子是这样的:
它将始终为所有端点返回相同的代理。
pac 标准没有明确支持密码,但有不同的方法来解决这个问题。如果 Firefox 认为需要登录,它会提示您登录,您也可以将密码嵌入到 url ( username:password@proxy.example.com) 中。此外,像代理登录自动机这样的工具可以让您使用密码并动态设置代理,而无需与 Firefox 作斗争。