настройки прокси Firefox через командную строку - PullRequest
38 голосов
/ 09 мая 2009

Как мне изменить настройки Firefox Proxy через командную строку на windows xp / 2k?

Спасибо

Ответы [ 20 ]

17 голосов
/ 09 мая 2009

Настройки прокси хранятся в пользовательском файле prefs.js в их профиле Firefox.

Путь к каталогу профиля Firefox и файлу:

%APPDATA%\Mozilla\Firefox\Profiles\7b9ja6xv.default\prefs.js

где "7b9ja6xv" - случайная строка. Однако каталог профиля по умолчанию всегда оканчивается на «.default». В большинстве случаев в любом случае будет только один профиль.

Настройки, которые вы хотите, называются "network.proxy.http" и "network.proxy.http_port".

Теперь это зависит от того, какую технологию вы можете / готовы использовать для изменения файла.

P.S .: Если речь идет об изменении настроек прокси группы пользователей с помощью сценария входа или аналогичного, я рекомендую изучить возможность использования механизма автоматического обнаружения прокси ( WPAD ). Вам больше никогда не придется менять конфигурацию прокси на пользовательском компьютере.

10 голосов
/ 09 мая 2009

Не думаю, что ты можешь. Однако вы можете создавать разные профили для каждого параметра прокси и использовать следующую команду для переключения между профилями при запуске Firefox:

firefox -no-remote -P <profilename>
9 голосов
/ 24 марта 2010

Просто хотел опубликовать код в более чистом формате ... первоначально опубликовано 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. Причина, по которой я добавил строки переименования и удаления, заключается в том, что я не смог найти способ перезаписать файл после удаления строки прокси. Я уверен, что есть более эффективный / безопасный способ сделать это ...

4 голосов
/ 10 мая 2015
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%
4 голосов
/ 26 июня 2009

Самый простой способ сделать это - настроить Firefox для использования PAC с URL-адресом файла, а затем изменить URL-адрес файла из команды line перед запуском Firefox.

Это самый простой способ. Вам не нужно писать скрипт, который запоминает, какой путь к prefs.js (который может со временем измениться).

Вы настраиваете свой профиль один раз, а затем редактируете внешний файл в любое время.

3 голосов
/ 25 марта 2010

кд / д "% 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" user_pref ( "network.proxy.type", 1); >> "% ffile% \ prefs.js" установить ffile = cd % Windir%

Это мило! Спасибо, что написали это. Мне нужен был именно этот кусок кода для Windows. Моя цель состояла в том, чтобы сделать это, научившись сначала делать это с Linux, а затем изучить оболочку Windows, что мне не понравилось, поэтому вы сэкономили мне время!

Моя версия для Linux находится внизу этого поста. Я экспериментировал с тем, в какой файл вставлять префы. Кажется придирчивым. Сначала я попробовал в ~ / .mozilla / firefox / *. Default / prefs.js, но он загружался не очень хорошо. Экран about: config никогда не показывал мои изменения. В настоящее время я пытаюсь отредактировать фактический файл настроек Firefox по умолчанию. Если у кого-то есть знания из головы, могут ли они переписать код Windows, чтобы добавить строки, только если их там еще нет? Я не представляю, как делать sed / awk в Windows без предварительной установки Cygwin.

Единственное изменение, которое я смог внести в сценарии 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
2 голосов
/ 02 июня 2013

Вы можете легко запустить Firefox из командной строки с прокси-сервером, используя опцию -proxy-server.

Это работает на Mac, Windows и Linux.

path_to_firefox / firefox.exe -proxy-server% proxy_URL%

Mac Пример:

/ Приложения / Firefox.app / Содержание / MacOS / firefox -proxy-server proxy.example.com

2 голосов
/ 10 октября 2015

Мне нужно было установить дополнительную опцию, чтобы разрешить проход 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
1 голос
/ 03 октября 2015

Я нашел лучший способ сделать это с PowerShell под Windows (но на самом деле только потому, что я искал способ написания сценария изменения строки агента пользователя, а не обмана с прокси).

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 (https://stackoverflow.com/a/2509088/5403057). Также я смог исправить ошибку кодирования с помощью сообщения из Phoenix14830 (https://stackoverflow.com/a/32080395/5403057)

[Edit2] Добавлена ​​поддержка для установки UAS на lumia. Это на самом деле использует мобильный UAS Opera, потому что я все еще хотел, чтобы bing работал, и если вы используете обычный lumia UAS, www.bing.com перенаправляет на bing: //?% ^ & *, Который firefox не знает, как обрабатывать

1 голос
/ 17 июля 2014

Все остальные ответы здесь объясняют, как запрограммировать ваши настройки прокси-сервера в Firefox, что и было изобретено WPAD . Если у вас настроен WPAD, просто скажите Firefox использовать его для автоматического определения его настроек, как в графическом интерфейсе.

Connection Settings

Чтобы сделать это из файла cmd или командной строки:

pushd "%APPDATA%\Mozilla\Firefox\Profiles\*.default"
echo user_pref("network.proxy.type", 4);>>prefs.js
popd

Это, конечно, требует, чтобы WPAD был настроен и работал правильно. Также я считаю, что prefs.js не будет существовать, пока вы не запустите Firefox один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...