我正在寻找一种方法来告诉 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 中设置某些内容吗?
答案1
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
和类似的环境变量:环境代理。
Firefox 的最新版本据称默认情况下会使用通常的环境变量,或者代理类型偏好明确设置为 5(“使用系统代理设置”),但是对于我的 Ubuntu 10.04 版本来说它不起作用。
user_pref("network.proxy.type", 5);
答案2
您说的是“代理”,但您的示例表明您可能特指“HTTP 代理”。但是,如果您还可以访问不禁止 HTTP 流量的 SOCKS 代理,则可以使用以下工具tsocks
:
tsocks firefox
一旦您进行了/etc/tsocks.conf
适当配置。
答案3
根据命令行选项列表没有明确的代理选项。正如您所发现的,这http_proxy
两种方法都行不通。我建议首先创建一个配置文件:
firefox -CreateProfile foo
接下来,您可以使用sed
或任何您喜欢的工具写入user_pref("network.proxy.http", "YOUR_PROXY"); user_pref("network.proxy.http_port", PORT);
。prefs.js
现在 Firefox 应该可以很好地与这些代理配合使用。