配置Firefox以从命令行使用代理

我正在寻找一种方法来告诉Firefox在Ubuntu Ludid(10.04.1 LTS)中使用代理。

我在几台相同的机器上半自动安装Ubuntu。 为此,我使用一个脚本,除其他外,设置系统范围的代理设置:

echo "export http_proxy=http://myproxy:3128/" > /etc/profile.d/proxy.sh echo "export HTTP_PROXY=http://myproxy:3128/" >> /etc/profile.d/proxy.sh chmod a+x /etc/profile.d/proxy.sh 

我可以确认在检入shell时正确设置了变量。 大多数程序都遵循此设置并使用我的代理。 但是,Firefox没有。 但是,当我打开其网络连接设置对话框时,它会预先设置为代理的“使用系统设置”。

Firefox在这里期待什么? 一个命名不同的变量? 我可以在FF的prefs.js中设置一些东西吗?

Firefox无法做标准的事情并使用环境变量(虽然说实话这部分是合理的,因为标准事物不允许代理自动配置文件)。 静态代理的首选项是

 user_pref("network.proxy.http", "wwwproxy.example.com"); user_pref("network.proxy.http_port", 3128); user_pref("network.proxy.type", 1); 

有一个Firefox扩展使用$http_proxy和类似的环境变量: Environment Proxy 。

Firefox的最新版本默认使用通常的环境变量,或者如果代理类型首选项显式设置为5(“使用系统代理设置”),但它对我使用Ubuntu 10.04中的版本不起作用。

 user_pref("network.proxy.type", 5); 

你说’代理’,但你的例子表明你可能特意指’HTTP代理’。 但是,如果您还可以访问不禁止HTTP流量的SOCKS代理,则可以使用tsocks工具:

 tsocks firefox 

一旦你适当地配置了/etc/tsocks.conf

根据命令行选项列表,代理没有可用的探索选项。 正如你所发现的那样, http_proxy和类似的东西都http_proxy 。 我建议先创建一个配置文件:

 firefox -CreateProfile foo 

接下来,您可以使用sed或您喜欢的任何工具编写user_pref("network.proxy.http", "YOUR_PROXY"); user_pref("network.proxy.http_port", PORT); user_pref("network.proxy.http", "YOUR_PROXY"); user_pref("network.proxy.http_port", PORT);prefs.js 。 现在Firefox应该可以正常使用这些代理。