Как изменить настройки прокси-сервера Firefox через командную строку на окнах xp/2k?
Спасибо
Как изменить настройки прокси-сервера Firefox через командную строку на окнах xp/2k?
Спасибо
Настройки прокси-сервера хранятся в пользовательском prefs.js
файле в их профиле Firefox.
Путь к файлу профиля Firefox и файлу:
%APPDATA%\Mozilla\Firefox\Profiles\7b9ja6xv.default\prefs.js
где "7b9ja6xv
" - случайная строка. Однако каталог профиля по умолчанию всегда заканчивается на ".default". В большинстве случаев в любом случае будет только один профиль.
Настройка после имени называется "network.proxy.http
" и "network.proxy.http_port
".
Теперь это зависит от того, какую технологию вы можете/готовы использовать для изменения файла.
PS: Если вы хотите изменить настройки прокси-сервера для группы пользователей с помощью входа в систему script или аналогичного, я рекомендую изучить возможность использования автоматического открытия прокси-сервера (WPAD). Вам больше не придется менять конфигурацию прокси-сервера на машине пользователя.
Я не думаю, что ты можешь. Однако вы можете создавать разные профили для каждого прокси-сервера и использовать следующую команду для переключения между профилями при запуске Firefox:
firefox -no-remote -P <profilename>
Просто хотел опубликовать код в более чистом формате... изначально отправленный 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. Причина, по которой я добавил строки переименования и удаления, заключается в том, что я не смог найти способ перезаписи файла после удаления прокси-строки. Я уверен, что есть более эффективный/безопасный способ сделать это...
Самый простой способ сделать это - настроить Firefox на использование PAC с URL-адресом файла, а затем изменить URL-адрес файла из командной строки перед запуском Firefox.
Это самый простой способ. Вам не нужно писать script, который запоминает, какой путь к prefs.js(который может меняться со временем).
Вы настраиваете свой профиль один раз, а затем редактируете внешний файл, когда захотите.
cd/D "% APPDATA%\Mozilla\Firefox\Profiles" cd *.default set ffile =% cd% echo user_pref ( "network.proxy.http", "% 1" ); → "% 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%
Это хорошо! Спасибо, что написал это. Мне нужна эта точная часть кода для Windows. Моя цель состояла в том, чтобы сделать это, научившись сначала делать это с Linux, а затем изучать оболочку Windows, которую я не рад сделать, чтобы вы спасли меня некоторое время!
Моя версия Linux находится внизу этой публикации. Я экспериментировал с каким файлом вставлять префы. Кажется придирчивым. Сначала я попытался в ~/.mozilla/firefox/*. Default/prefs.js, но он не загрузился очень хорошо. Экран about: config никогда не показывал мои изменения. В настоящее время я пытаюсь редактировать фактический файл по умолчанию Firefox. Если у кого-то есть знания от верхней части головы, они могут переписать код Windows, чтобы добавить строки только в том случае, если они еще не там? У меня нет идеала, как делать файлы sed/awk в Windows, не устанавливая сначала Cygwin.
Единственное изменение, которое я смог выполнить для сценариев Windows, указано выше в цитируемой части. Я меняю IP на% 1, поэтому, когда вы вызываете script из командной строки, вы можете дать ему опцию вместо изменения файла.
#!/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
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%
Вы можете легко запустить Firefox из командной строки с помощью прокси-сервера, используя опцию -proxy-server.
Это работает на Mac, Windows и Linux.
path_to_firefox/firefox.exe -proxy-server% proxy_URL%
Mac Пример:
/Applications/Firefox.app/Contents/MacOS/firefox -proxy-server proxy.example.com
Мне нужно было установить дополнительный параметр, чтобы разрешить сквозную пересылку SSO на наш сайт интрасети. Я добавил код в пример выше.
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
Все остальные ответы здесь объясняют, как программировать настройки прокси-сервера в Firefox, что было предложено WPAD. Если у вас настроен WPAD, просто скажите Firefox использовать его для автоматического определения его параметров, как в графическом интерфейсе.
Чтобы сделать это из файла cmd или командной строки:
pushd "%APPDATA%\Mozilla\Firefox\Profiles\*.default"
echo user_pref("network.proxy.type", 4);>>prefs.js
popd
Это, конечно, требует, чтобы WPAD настроен и работает правильно. Также я считаю, что prefs.js
не будет существовать, пока вы не запустите Firefox один раз.
Я нашел лучший способ сделать это с помощью powershell под окнами (но на самом деле только потому, что я искал способ script изменить строку пользовательского агента, а не промахиваться прокси).
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);"
[EDIT] Я пересмотрел свой код, он иногда выводил какой-то плохой характер или что-то в этом роде. По какой-то причине это обнаружено firefox как поврежденный профиль, и весь профиль был отброшен и обновлен профилем по умолчанию.
Кроме того, кредит, на который рассчитывается кредит: этот код свободно основан на том, что xBoarder опубликовал в своем ответе на sam3344920 (fooobar.com/questions/189845/...). Кроме того, я смог исправить ошибку кодирования с помощью сообщения от Phoenix14830 (fooobar.com/questions/98979/...)
[Edit2] Добавлена поддержка настройки UAS на lumia. Это на самом деле использует мобильный UAS для Opera, потому что я все еще хотел, чтобы bing работал, и если вы используете регулярную Lumia UAS www.bing.com перенаправляет на bing://?% ^ & *, который firefox не знает, как процесс
Это окончательное скомпилированное решение, которое сработало для меня... Испытано и проверено...
powershell -Command "(gc prefs.js) -replace 'user_pref (\" network.proxy.type\", уже существующее значение) \;', 'user_pref (\" network.proxy.type\", 1) ;" | Set-Content prefs.js "
кд% windir%
ПРИМЕЧАНИЕ. Возможно, вам не придется снова выполнять шаг 14. Вместо этого вы можете напрямую запустить firefox.exe
Я не думаю, что есть прямой способ установить прокси (в Windows).
Однако вы могли установить надстройку, такую как FoxyProxy, создать несколько конфигураций для разных прокси и до запуска FireFox переместить соответствующую конфигурацию в нужную папку в вашем профиле FireFox (используя пакетный файл).
Большое спасибо, я нахожу ответы на этом сайте.
Здесь я имею в виду создание файла 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%
Существует также несколько надстроек Firefox, которые помогают с настройками прокси. FoxyProxy является одним из самых популярных. Был еще один, который только изменил настройки прокси с помощью командной строки, но я не могу найти его только сейчас.
Вы также можете использовать эту Powershell script, которую я написал, чтобы сделать именно это и все другие настройки Firefox.
https://bitbucket.org/remyservices/powershell-firefoxpref/wiki/Home
С помощью этого вы можете легко управлять Firefox с помощью сценариев запуска компьютера и входа в систему. См. Страницу wiki о том, как ее использовать.
@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%
для последнего firefox вы должны изменить
cd *.default
to
cd *.default*
user.js лучше подходит для настройки, так как вы можете включать только те строки, которыми хотите манипулировать, т.е. вместо find-replace вы можете просто перезаписать весь файл. Кроме того, prefs.js (по крайней мере, в Firefox 65.0.1 для Mac) начинается с предупреждения:
// 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);
Я закончил с bash-скриптом, который я поместил в /usr/local/bin/firefox:
#!/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
чтобы использовать прокси.
Здравствуйте, я получил идеальный трески использовать этот код
cd/D "% APPDATA%\Mozilla\Firefox\Профили"
cd *.default
установить 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
Firefox? Я не думаю, что ты можешь. IE - это еще одна история, хотя..