Подтвердить что ты не робот

Настройки прокси-сервера firefox через командную строку

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

Спасибо

4b9b3361

Ответ 1

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

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

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

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

Настройка после имени называется "network.proxy.http" и "network.proxy.http_port".

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

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

Ответ 2

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

firefox -no-remote -P <profilename>

Ответ 3

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

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

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

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

Ответ 5

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

Ответ 6

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%

Ответ 7

Вы можете легко запустить 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

Ответ 8

Мне нужно было установить дополнительный параметр, чтобы разрешить сквозную пересылку 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

Ответ 9

Все остальные ответы здесь объясняют, как программировать настройки прокси-сервера в 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 один раз.

Ответ 10

Я нашел лучший способ сделать это с помощью 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 не знает, как процесс

Ответ 11

Это окончательное скомпилированное решение, которое сработало для меня... Испытано и проверено...

Действия по изменению настроек прокси в Mozilla Firefox с помощью cmd в Windows

  1. cd/D "% APPDATA%\Mozilla\Firefox\Profiles"
  2. cd *.default

Замена уже существующих параметров прокси на пользовательские

  1. powershell -Command "(gc prefs.js) -replace 'user_pref (\" network.proxy.http\", \" уже присутствует IP\") \;', 'user_pref (\" network.proxy.http\", \" ваш http прокси ip\"); ' | Set-Content prefs.js "
  2. powershell -Command "(gc prefs.js) -replace 'user_pref (\" network.proxy.http_port\", уже существующий порт) \;', 'user_pref (\" network.proxy.http_port\", ваш http порт прокси);' | Set-Content prefs.js "
  3. powershell -Command "(gc prefs.js) -replace 'user_pref (\" network.proxy.share_proxy_settings\", уже существующее значение) \;', 'user_pref (\" network.proxy.share_proxy_settings\", true) ;" | Set-Content prefs.js "
  4. powershell -Command "(gc prefs.js) -replace 'user_pref (\" network.proxy.type\", уже существующее значение) \;', 'user_pref (\" network.proxy.type\", 1) ;" | Set-Content prefs.js "

    0 - Нет прокси

    1 - Настройка прокси вручную

    4 - Автоматическое определение настроек прокси-сервера

    5 - Использовать системные настройки (по умолчанию)

  5. кд% windir%

Чтобы проверить уже имеющиеся настройки прокси-сервера

  1. cd C:\Users\{имя пользователя}\AppData\Roaming\Mozilla\Firefox\Profiles\sat2m7dr.default \
  2. find/i "network.proxy" prefs.js

Чтобы запустить Firefox из CMD, используя настройки прокси-сервера, определенные вами

  1. cd C:\Program Files \
  2. CD "Mozilla Firefox"
  3. firefox.exe -ProfileManager
  4. Выберите default из списка (default-release выбран по умолчанию) и нажмите ok.

ПРИМЕЧАНИЕ. Возможно, вам не придется снова выполнять шаг 14. Вместо этого вы можете напрямую запустить firefox.exe

Ответ 12

Я не думаю, что есть прямой способ установить прокси (в Windows).

Однако вы могли установить надстройку, такую ​​как FoxyProxy, создать несколько конфигураций для разных прокси и до запуска FireFox переместить соответствующую конфигурацию в нужную папку в вашем профиле FireFox (используя пакетный файл).

Ответ 13

Большое спасибо, я нахожу ответы на этом сайте.

Здесь я имею в виду создание файла 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%

Ответ 14

Существует также несколько надстроек Firefox, которые помогают с настройками прокси. FoxyProxy является одним из самых популярных. Был еще один, который только изменил настройки прокси с помощью командной строки, но я не могу найти его только сейчас.

Страница Mozilla FoxyProxy

Ответ 15

Вы также можете использовать эту Powershell script, которую я написал, чтобы сделать именно это и все другие настройки Firefox.

https://bitbucket.org/remyservices/powershell-firefoxpref/wiki/Home

С помощью этого вы можете легко управлять Firefox с помощью сценариев запуска компьютера и входа в систему. См. Страницу wiki о том, как ее использовать.

Ответ 16

@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%

Ответ 17

для последнего firefox вы должны изменить

cd *.default

to

cd *.default*

Ответ 18

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 чтобы использовать прокси.

Ответ 19

Здравствуйте, я получил идеальный трески использовать этот код

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

Ответ 20

Firefox? Я не думаю, что ты можешь. IE - это еще одна история, хотя..