如何在Windows XP / 2k上通过命令行更改Firefox代理设置?
由于
答案 0 :(得分:17)
代理设置存储在Firefox配置文件中用户的prefs.js
文件中。
Firefox配置文件目录和文件的路径是:
%APPDATA%\Mozilla\Firefox\Profiles\7b9ja6xv.default\prefs.js
其中“7b9ja6xv
”是随机字符串。但是,默认配置文件的目录始终以“.default”结尾。大多数时候,只有一个档案。
您之后的设置被命名为“network.proxy.http
”和“network.proxy.http_port
”。
现在它取决于您能够/准备用于更改文件的技术。
P.S。:如果这是通过登录脚本或类似方式更改一组用户的代理设置,我建议考虑使用自动代理发现(WPAD)机制的可能性。您永远不必再次在用户计算机上更改代理配置。
答案 1 :(得分:10)
我认为你不能。但是,您可以为每个代理设置创建不同的配置文件,并在运行Firefox时使用以下命令在配置文件之间切换:
firefox -no-remote -P <profilename>
答案 2 :(得分:9)
只是想以更干净的格式发布代码...最初由sam3344920发布
cd /D "%APPDATA%\Mozilla\Firefox\Profiles"
cd *.default
set ffile=%cd%
echo user_pref("network.proxy.http", "148.233.229.235 ");>>"%ffile%\prefs.js"
echo user_pref("network.proxy.http_port", 3128);>>"%ffile%\prefs.js"
echo user_pref("network.proxy.type", 1);>>"%ffile%\prefs.js"
set ffile=
cd %windir%
如果有人想要删除代理设置,可以使用以下代码来执行此操作。
cd /D "%APPDATA%\Mozilla\Firefox\Profiles"
cd *.default
set ffile=%cd%
type "%ffile%\prefs.js" | findstr /v "user_pref("network.proxy.type", 1);" >"%ffile%\prefs_.js"
rename "%ffile%\prefs.js" "prefs__.js"
rename "%ffile%\prefs_.js" "prefs.js"
del "%ffile%\prefs__.js"
set ffile=
cd %windir%
解释:代码会找到perfs.js文件。然后在其中查找行“user_pref(”network.proxy.type“,1);”。如果找到它,它将使用/ v参数删除该文件。我添加重命名和删除行的原因是因为在删除代理行后,我找不到覆盖文件的方法。我确信有更多高效/安全的方式来做这件事......
答案 3 :(得分:4)
最简单的方法是将Firefox配置为使用带有文件URL的PAC,然后在启动Firefox之前从line命令更改文件URL。
这是最简单的方法。您不必编写一个脚本来记住prefs.js的路径(可能随时间而变化)。
您可以配置一次配置文件,然后根据需要编辑外部文件。
答案 4 :(得分:4)
it working perfect.
cd /D "%APPDATA%\Mozilla\Firefox\Profiles"
cd *.default
set ffile=%cd%
echo user_pref("network.proxy.ftp", "YOUR_PROXY_SERVER"); >>prefs.js
echo user_pref("network.proxy.ftp_port", YOUR_PROXY_PORT); >>prefs.js
echo user_pref("network.proxy.http", "YOUR_PROXY_SERVER"); >>prefs.js
echo user_pref("network.proxy.http_port", YOUR_PROXY_PORT); >>prefs.js
echo user_pref("network.proxy.share_proxy_settings", true); >>prefs.js
echo user_pref("network.proxy.socks", "YOUR_PROXY_SERVER"); >>prefs.js
echo user_pref("network.proxy.socks_port", YOUR_PROXY_PORT); >>prefs.js
echo user_pref("network.proxy.ssl", "YOUR_PROXY_SERVER"); >>prefs.js
echo user_pref("network.proxy.ssl_port", YOUR_PROXY_PORT); >>prefs.js
echo user_pref("network.proxy.type", 1); >>prefs.js
set ffile=
cd %windir%
答案 5 :(得分:3)
cd / D. “%APPDATA%\ Mozilla的\火狐\配置文件” cd * .default set ffile =%cd%echo user_pref( “network.proxy.http” “%1”);&gt;&gt;“%ffile%\ prefs.js”echo user_pref( “network.proxy.http_port” 3128);&gt;&gt;“%ffile%\ prefs.js”echo user_pref( “network.proxy.type” 1);&gt;&gt;“%ffile%\ prefs.js”设置ffile = cd %WINDIR%
这很好!谢谢你写这个。我需要Windows的这段代码。我的目标是通过首先学习使用Linux来学习Windows shell,然后学习我不满意的Windows shell,这样我就节省了一些时间!
我的Linux版本在这篇文章的底部。我一直在尝试将prefs插入哪个文件。看起来很挑剔。首先我尝试了〜/ .mozilla / firefox / * .default / prefs.js,但它加载得不是很好。 about:config屏幕从未显示我的更改。目前我一直在尝试编辑实际的Firefox默认文件。如果有人知道他们头脑中的知识,他们可以重写Windows代码只添加行,如果他们还没有在那里?我没有想法如何在没有安装Cygwin的情况下在Windows中执行sed / awk。
我能够对Windows脚本进行的唯一更改是在引用部分中。我将IP更改为%1,因此当您从命令行调用脚本时,您可以为其提供一个选项,而不必更改文件。
#!/bin/bash
version="`firefox -v | awk '{print substr($3,1,3)}'`"
echo $version " is the version."
# Insert an ip into firefox for the proxy if there isn't one
if
! grep network.proxy.http /etc/firefox-$version/pref/firefox.js
then echo 'pref("network.proxy.http", "'"$1"'")";' >> /etc/firefox-$version/pref/firefox.js
fi
# Even if there is change it to what we want
sed -i s/^.*network.proxy.http\".*$/'pref("network.proxy.http", "'"$1"')";'/ /etc/firefox-$version/pref/firefox.js
# Set the port
if ! grep network.proxy.http_port /etc/firefox-$version/pref/firefox.js
then echo 'pref("network.proxy.http_port", 9980);' >> /etc/firefox-$version/pref/firefox.js
else sed -i s/^.*network.proxy.http_port.*$/'pref("network.proxy.http_port", 9980);'/ /etc/firefox-$version/pref/firefox.js
fi
# Turn on the proxy
if ! grep network.proxy.type /etc/firefox-$version/pref/firefox.js
then echo 'pref("network.proxy.type", 1);' >> /etc/firefox-$version/pref/firefox.js
else sed -i s/^.*network.proxy.type.*$/'pref("network.proxy.type", 1)";'/ /etc/firefox-$version/pref/firefox.js
fi
答案 6 :(得分:2)
我需要设置一个额外的选项,以允许SSO passthrough到我们的Intranet站点。我在上面的例子中添加了一些代码。
pushd "%APPDATA%\Mozilla\Firefox\Profiles\*.default"
echo user_pref("network.proxy.type", 4);>>prefs.js
echo user_pref("network.automatic-ntlm-auth.trusted-uris","site.domain.com, sites.domain.com");>>prefs.js
popd
答案 7 :(得分:2)
您可以使用-proxy-server选项从代理服务器的命令行轻松启动Firefox。
适用于Mac,Windows和Linux。
path_to_firefox / firefox.exe -proxy-server%proxy_URL%
Mac示例:
/Applications/Firefox.app/Contents/MacOS/firefox -proxy-server proxy.example.com
答案 8 :(得分:1)
我认为没有直接的方法来设置代理(在Windows上)。
然而,你可以安装一个像FoxyProxy这样的附加组件,为不同的代理创建几个配置,在启动FireFox之前,将适当的配置移动到FireFox配置文件中的正确文件夹(使用批处理文件)。
答案 9 :(得分:1)
这是对我有用的最终编译解决方案...经过尝试和测试...
powershell-命令“(gc prefs.js)-替换'user_pref(\” network.proxy.type \“,已经存在的值)\;','user_pref(\ “ network.proxy.type \”, 1 );' |设置内容prefs.js”
cd%windir%
注意:您可能不必再次运行步骤14。相反,您可以直接运行firefox.exe
答案 10 :(得分:1)
我在Windows下找到了一个更好的方法来使用PowerShell(但实际上只是因为我正在寻找一种方法来更改用户代理字符串,而不是使用代理进行捣乱)。
function set-uas
{
Param
(
[string]$UAS = "Default"
)
$FirefoxPrefs = "C:\Users\Admin\AppData\Roaming\Mozilla\Firefox\Profiles\*.default\prefs.js"
if ($UAS -eq "Default")
{
$fileinfo = type $FirefoxPrefs
$fileinfo = $fileinfo | findstr /v "general.appname.override"
$fileinfo = $fileinfo | findstr /v "general.appversion.override"
$fileinfo = $fileinfo | findstr /v "general.platform.override"
$fileinfo = $fileinfo | findstr /v "general.useragent.appName"
$fileinfo = $fileinfo | findstr /v "general.useragent.override"
$fileinfo = $fileinfo | findstr /v "general.useragent.vendor"
$fileinfo = $fileinfo | findstr /v "general.useragent.vendorSub"
$fileinfo += "user_pref(`"useragentswitcher.import.overwrite`", false);`n"
$fileinfo += "user_pref(`"useragentswitcher.menu.hide`", false);`n"
$fileinfo += "user_pref(`"useragentswitcher.reset.onclose`", false);`n"
$fileinfo | Out-File -FilePath $FirefoxPrefs -Encoding ASCII
}
else
{
set-uas Default
}
if ($UAS -eq "iphone")
{
$fileinfo = ""
$fileinfo += "user_pref(`"general.appname.override`", `"Netscape`");`n"
$fileinfo += "user_pref(`"general.appversion.override`", `"5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16`");`n"
$fileinfo += "user_pref(`"general.platform.override`", `"iPhone`");`n"
$fileinfo += "user_pref(`"general.useragent.appName`", `"Mozilla`");`n"
$fileinfo += "user_pref(`"general.useragent.override`", `"Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16`");`n"
$fileinfo += "user_pref(`"general.useragent.vendor`", `"Apple Computer, Inc.`");`n"
$fileinfo += "user_pref(`"general.useragent.vendorSub`", `"`");`n"
$fileinfo += "user_pref(`"useragentswitcher.reset.onclose`", false);`n"
$fileinfo | Out-File -FilePath $FirefoxPrefs -Encoding ASCII -Append
}
elseif ($UAS -eq "lumia")
{
$fileinfo = ""
$fileinfo += "user_pref(`"general.appname.override`", `"Netscape`");`n"
$fileinfo += "user_pref(`"general.appversion.override`", `"9.80 (Windows Phone; Opera Mini/9.0.0/37.6652; U; en) Presto/2.12.423 Version/12.16`");`n"
$fileinfo += "user_pref(`"general.platform.override`", `"Nokia`");`n"
$fileinfo += "user_pref(`"general.useragent.appName`", `"Mozilla`");`n"
$fileinfo += "user_pref(`"general.useragent.override`", `"Opera/9.80 (Windows Phone; Opera Mini/9.0.0/37.6652; U; en) Presto/2.12.423 Version/12.16`");`n"
$fileinfo += "user_pref(`"general.useragent.vendor`", `"Microsoft`");`n"
$fileinfo += "user_pref(`"general.useragent.vendorSub`", `"`");`n"
$fileinfo += "user_pref(`"useragentswitcher.reset.onclose`", false);`n"
$fileinfo | Out-File -FilePath $FirefoxPrefs -Encoding ASCII -Append
}
}
我还安装了firefox插件“useragentswitcher”,没有它就没有测试过。
我也设置了“user_pref(”useragentswitcher.reset.onclose“,false);”
[编辑]我修改了我的代码,偶尔输出一些不好的字符或其他东西。出于某种原因,firefox将其检测为损坏的配置文件,并丢弃整个配置文件,并使用默认配置文件进行刷新。
此外,信用到期的信用:此代码基于xBoarder在回复sam3344920(https://stackoverflow.com/a/2509088/5403057)时发布的内容。此外,我能够在Phoenix14830(https://stackoverflow.com/a/32080395/5403057)的帖子的帮助下修复编码错误
[Edit2]添加了将UAS设置为lumia的支持。这实际上是使用Opera移动UAS,因为我仍然希望bing工作,如果你使用常规lumia UAS www.bing.com重定向到bing://?%^&amp; *哪个firefox不知道如何过程
答案 11 :(得分:1)
此处的所有其他答案都解释了如何将代理设置编程到Firefox中,这是WPAD发明的内容。如果你配置了WPAD,那就告诉Firefox使用它来自动检测它的设置,就像在GUI中一样。
要从cmd文件或命令行执行此操作:
pushd "%APPDATA%\Mozilla\Firefox\Profiles\*.default"
echo user_pref("network.proxy.type", 4);>>prefs.js
popd
这当然要求您配置WPAD并正常工作。另外我相信prefs.js
在您运行Firefox一次之前不会存在。
答案 12 :(得分:0)
最新的Firefox必须更改
cd *.default
到
cd *.default*
答案 13 :(得分:0)
@echo off
color 1F
cd /D "%APPDATA%\Mozilla\Firefox\Profiles"
cd *.default
set ffile=%cd%
cd %ffile%
echo user_pref("network.proxy.http", "192.168.1.235 ");>>"prefs.js"
echo user_pref("network.proxy.http_port", 80);>>"prefs.js"
echo user_pref("network.proxy.type", 1);>>"prefs.js"
set ffile=
cd %windir%
答案 14 :(得分:0)
您也可以使用我编写的Powershell脚本来执行此操作,以及所有其他Firefox设置。
https://bitbucket.org/remyservices/powershell-firefoxpref/wiki/Home
使用此功能,您可以使用计算机启动和用户登录脚本轻松管理Firefox。有关如何使用它的说明,请参阅维基页面。
答案 15 :(得分:0)
还有一些Firefox附加组件可以帮助进行代理设置。 FoxyProxy是最受欢迎的人之一。还有一个,只用命令行改变了代理设置,但我现在似乎无法找到它。
答案 16 :(得分:0)
非常感谢,我在这个网站上找到答案。
这里我指的是cmd文件的制作
by minimo
cd /D "%APPDATA%\Mozilla\Firefox\Profiles"
cd *.default
set ffile=%cd%
echo user_pref("network.proxy.http", "192.168.1.235 ");>>"%ffile%\prefs.js"
echo user_pref("network.proxy.http_port", 80);>>"%ffile%\prefs.js"
echo user_pref("network.proxy.type", 1);>>"%ffile%\prefs.js"
set ffile=
cd %windir%
答案 17 :(得分:0)
user.js更适合自定义,因为您可以仅包含要处理的行,即代替查找替换,您可以覆盖整个文件。另外,prefs.js(至少在Mac上为Firefox 65.0.1上)以警告开头:
// DO NOT EDIT THIS FILE.
//
// If you make changes to this file while the application is running,
// the changes will be overwritten when the application exits.
//
// To change a preference value, you can either:
// - modify it via the UI (e.g. via about:config in the browser); or
// - set it within a user.js file in your profile.
在我的情况下,user.js不存在,因此我创建了它并包含了在“无代理”和“手动代理配置”之间切换的行(我一直只使用一个SOCKS代理,所以无需更改端口号或任何其他详细信息,只需将以下行中的0翻转为1):
user_pref("network.proxy.type", 1);
最后我得到一个放在/ usr / local / bin / firefox的bash脚本:
#!/bin/bash
if [ $# -eq 0 ]; then
echo 'user_pref("network.proxy.type", 0);' > ~/Library/Application\ Support/Firefox/Profiles/t5rvw47o.default/user.js
open -a Firefox
else
case $1 in
vpn)
echo 'user_pref("network.proxy.type", 1);' > ~/Library/Application\ Support/Firefox/Profiles/t5rvw47o.default/user.js
open -a Firefox
esac
fi
要使用它,请确保没有Firefox在运行,然后运行firefox
进行直接连接,并运行firefox vpn
使用代理。
答案 18 :(得分:-1)
您好,我使用此代码获得了完美的鳕鱼
cd / D“%APPDATA%\ Mozilla \ Firefox \ Profiles”
cd * .default
set ffile =%cd%
echo user_pref(“ network.proxy.http”,“ 127.0.0.1”); >> prefs.js
echo user_pref(“ network.proxy.http_port”,8080); >> prefs.js
set ffile =
cd%windir
答案 19 :(得分:-3)
火狐?我认为你不能。 IE是另一个故事..