Справочник настроек прокси инструкции по программам

Настройка прокси в Firefox: окно параметров сети, отдельные профили и about:config

Firefox ходит в сеть через собственную библиотеку и держит адрес посредника внутри профиля, отдельным набором значений в файле prefs.js. Страница разбирает окно параметров соединения поле за полем, показывает запуск нескольких профилей с разными адресами через ключ -P, перечисляет параметры about:config, которые закрывают разрешение имён и WebRTC, и даёт порядок проверки после настройки.

1. Что понадобится

Подойдёт любая сборка от версии 91 и выше: обычный Firefox, ESR, Developer Edition. Раскладка окна параметров соединения в этих ветках одинаковая, названия пунктов совпадают дословно, поэтому шаги ниже переносятся между ними без правок. Доустанавливать ничего не нужно.

Понадобится готовая строка подключения. Выдача приходит в форматах IP:PORT либо IP:PORT:LOGIN:PASS, и от формата зависит только способ авторизации: короткая запись работает по привязке внешнего адреса машины, длинная по паре логина с паролем. Окно настроек берёт обе, поля под пару спрятаны в отдельном диалоге, разбор которого стоит ниже. Мои примеры собраны вокруг хоста 198.51.100.24, порт 3128 под HTTP и 1080 под SOCKS5.

Определитесь заранее с протоколом. Порт HTTP обрабатывает обычные запросы вместе с методом CONNECT, через который браузер поднимает туннель к сайту по HTTPS, поэтому одной пары полей хватает на весь веб. Порт SOCKS5 пропускает любой TCP и умеет передавать имя хоста на сторону посредника. Я держу на машине оба доступа сразу: короткий порт HTTP под обычные вкладки, SOCKS5 под задачи, где имена обязаны уходить в туннель. Выгрузка у меня забирается ссылкой сразу в обоих форматах, поэтому поля окна набиваются копированием; так устроены HTTP-прокси с выгрузкой списка ссылкой, пул около 12 000 адресов, включение пакета занимает около 5 минут.

2. Окно параметров соединения поле за полем

Откройте меню, пункт «Настройки», раздел «Основные», прокрутите страницу до самого низа. Последний блок называется «Параметры сети», в нём одна кнопка «Настроить». Быстрее набрать about:preferences#general в адресной строке и нажать клавишу End.

Диалог называется «Параметры соединения». Сверху пять переключателей режима, под ними поля ручного ввода, в самом низу флажки и блок про DNS через HTTPS. Заполняются только те поля, которые относятся к выбранному режиму, остальные остаются серыми.

Пункт окнаЧто вноситьЧто ломается при ошибке
«Без прокси»Прямое соединение, режим сверки и отладкиОставлен после проверки, вкладки продолжают идти напрямую
«Использовать системные настройки прокси»Копия записи операционной системы, режим по умолчаниюСистемная запись пуста, браузер молча ходит напрямую
«Автоматически определять настройки прокси для этой сети»Поиск файла автонастройки через WPADДобавляет задержку к первому запросу в домашней сети
«Ручная настройка прокси»Основной режим страницы, включает поля нижеПоля заполнены, переключатель остался на системном режиме
«HTTP прокси»Только адрес или имя хоста: 198.51.100.24Вставляют http://198.51.100.24:3128 целиком, порт уезжает в поле адреса
«Порт» напротив HTTPЧисло от 1 до 65535, у меня 3128Копируют вместе с двоеточием, поле принимает лишь цифры
«Также использовать этот прокси для HTTPS»Флажок, копирует пару полей во второй рядСнят, сайты с замком в адресной строке отдают отказ
«Узел SOCKS» и «Порт»Адрес и 1080, когда порт SOCKS отдельныйЗаполнены оба блока сразу, приоритет достаётся HTTP
Переключатель «SOCKS v5»Версия протокола, ставлю всегда пятуюОставлена четвёртая, имена сайтов разрешаются локально
«Не использовать прокси для»Записи через запятую, синтаксис нижеСтавят точку с запятой, вся строка читается одним хостом
«URL автоматической настройки сервиса прокси»Адрес файла PAC, разобран отдельным разделомЗаполнен вместе с ручными полями, ручные поля игнорируются
«Не запрашивать аутентификацию, если пароль сохранён»Флажок внизу окна, снимает повторные окна запросаСнят, диалог всплывает при каждом старте браузера
«Отправлять DNS-запросы через прокси при использовании SOCKS 5»Флажок внизу окна, обязателен для SOCKS5Снят, имена сайтов уходят провайдеру мимо туннеля

Схему в поле адреса браузер не ждёт. Вставили строку целиком и нажали «OK», значит в профиль уедет хост http://198.51.100.24:3128 вместе с портом 3128 во втором поле, первая же вкладка получит отказ, а окно настроек покажет всё как заполненное. Я проверяю поля глазами перед подтверждением: адрес без схемы, порт отдельным числом.

Флажок «Также использовать этот прокси для HTTPS» появился на месте старого пункта про все протоколы. Отмечаете его, и второй ряд полей заполняется копией первого автоматически. Снимите флажок, и ряд «HTTPS прокси» станет доступен для ручного ввода, что нужно только при разных портах под обычный запрос и под туннель.

Поле исключений принимает записи через запятую, пробелы вокруг разделителя допустимы. Синтаксис у браузера свой, звёздочку он не понимает вовсе, зато принимает маски подсетей и суффикс порта.

localhost, 127.0.0.1, ::1, .internal.lan, 192.168.0.0/16, 10.0.0.0/8, nas.local:8080

Точка в начале записи покрывает домен вместе со всеми поддоменами: .internal.lan совпадает и с wiki.internal.lan, и с самим internal.lan. Маска 10.0.0.0/8 разбирается как подсеть, отдельно перечислять адреса внутри неё незачем. Запись с портом ограничивает исключение одним портом хоста. Петлю браузер обходит сам, без записи в поле, пока параметр network.proxy.allow_hijacking_localhost держит значение false.

Кнопка «OK» применяет параметры мгновенно, перезапуск не нужен. Уже открытые вкладки подхватят новый маршрут на следующем запросе, обновите их сочетанием клавиш Ctrl+Shift+R.

3. Почему Firefox держит настройки сети отдельно от системных

Браузер ходит в сеть через свой стек и к библиотекам операционной системы за маршрутом не обращается. Системная запись читается только в режиме «Использовать системные настройки прокси», после чего копируется во внутреннее представление профиля. Собственный переключатель приоритетнее системы всегда.

ПризнакНастройка внутри FirefoxСистемная настройка Windows
Где хранитсяprefs.js в папке профиляВетка реестра HKCU\...\Internet Settings
Чем меняетсяОкно параметров соединения, about:config, файл user.jsПриложение «Параметры», netsh, reg
Область действияОдин профиль браузераПрограммы, читающие системный стек, в текущей учётной записи
Порт SOCKS5Отдельная пара полей прямо в окнеЗапись в реестре с префиксом socks=
Удалённое разрешение имёнФлажок в окне и параметр в about:configПоведение задаёт сама программа
Учётные данныеМенеджер паролей браузера, запись вида moz-proxy://Диспетчер учётных данных операционной системы
Перенос на другую машинуКопированием папки профиляЭкспортом ветки реестра
Переменные окружения HTTP_PROXYИгнорируются полностьюЧитаются консольными программами

Отсюда растёт самая частая жалоба: системная страница заполнена, Edge ходит через посредник, Firefox показывает домашний адрес. Причина в режиме окна, который остался ручным с прошлой настройки и указывает на порт, которого уже нет. Я начинаю разбор любой такой ситуации с открытия about:preferences#general и взгляда на положение переключателя.

Обратная ситуация встречается не реже. В окне браузера прописан рабочий порт, при этом обновление дополнений, проверка сертификатов через OCSP и телеметрия идут тем же маршрутом, поскольку весь трафик профиля управляется одной записью. Отдельного канала в обход поля адреса у браузера нет, и это удобно: настроили окно один раз, значит наружу через порт уходит всё, включая служебные обращения.

Ещё один источник неожиданностей это корпоративная политика. Файл policies.json в подпапке distribution рядом с исполняемым файлом умеет задавать параметры прокси принудительно, и тогда поля окна становятся серыми с пометкой о внешнем управлении. Проверяется страницей about:policies, вкладка «Активные».

4. Отдельные профили и запуск с ключом -P

Профиль это папка со своим prefs.js, кэшем, куками, паролями и списком дополнений. Разные адреса удобно разводить именно профилями: каждый получает свой порт, своё хранилище и свою пару логина с паролем, пересечений между окнами не возникает.

Менеджер профилей открывается ключом -P без имени. Закройте браузер полностью, затем выполните команду:

"C:\Program Files\Mozilla Firefox\firefox.exe" -P

Откроется окно «Выбор профиля пользователя Firefox» со списком, кнопками «Создать», «Переименовать», «Удалить» и флажком «Не спрашивать при запуске». Флажок я снимаю на машинах, где профилей больше одного: пусть окно спрашивает каждый раз.

Создать профиль сразу в нужной папке быстрее из консоли, минуя графический мастер:

"C:\Program Files\Mozilla Firefox\firefox.exe" -CreateProfile "pool-http C:\ffprofiles\pool-http"
"C:\Program Files\Mozilla Firefox\firefox.exe" -CreateProfile "pool-socks C:\ffprofiles\pool-socks"

Запуск конкретного профиля идёт с именем после ключа. Ключ -no-remote заставляет процесс работать своим экземпляром, без него второй запуск просто откроет новое окно уже работающего профиля:

"C:\Program Files\Mozilla Firefox\firefox.exe" -P "pool-http" -no-remote
"C:\Program Files\Mozilla Firefox\firefox.exe" -P "pool-socks" -no-remote

Я делаю на каждый профиль свой ярлык и дописываю ключи в поле «Объект». Два ярлыка на рабочем столе, два окна с разными внешними адресами, переключение мышью за секунду. Список профилей вместе с путями и признаком запущенного показывает служебная страница about:profiles, там же кнопки «Запустить в новом браузере» и «Открыть папку».

Список профилей хранится в файле profiles.ini по пути %APPDATA%\Mozilla\Firefox. Записи внутри выглядят просто:

[Profile1]
Name=pool-http
IsRelative=0
Path=C:\ffprofiles\pool-http

Задавать параметры сети мышью в каждом профиле утомительно, когда профилей 5 или 10. Я кладу в папку профиля файл user.js, браузер читает его при каждом старте и переписывает соответствующие строки в prefs.js:

user_pref("network.proxy.type", 1);
user_pref("network.proxy.http", "198.51.100.24");
user_pref("network.proxy.http_port", 3128);
user_pref("network.proxy.ssl", "198.51.100.24");
user_pref("network.proxy.ssl_port", 3128);
user_pref("network.proxy.socks", "198.51.100.24");
user_pref("network.proxy.socks_port", 1080);
user_pref("network.proxy.socks_version", 5);
user_pref("network.proxy.socks_remote_dns", true);
user_pref("network.proxy.failover_direct", false);
user_pref("network.proxy.no_proxies_on", "localhost, 127.0.0.1, .internal.lan");

Заготовку такого файла я держу шаблоном и подставляю в него очередную строку из выгрузки. Разворачивание нового профиля занимает минуту: создал папку, скопировал user.js, поправил две строки, запустил ярлык. Ротация внутри пула автоматическая, свежая выгрузка забирается ссылкой в любой момент, и обновление шаблона по всем профилям сводится к перезаписи файлов. Такой парк окон я держу на доступе, где потоков 1000 на обычном пакете и до 3000 на корпоративном; это приватные серверные адреса под несколько профилей, с двумя привязками в пакете и сменой привязки в кабинете без ограничений.

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

5. Важные параметры в about:config

Откройте about:config, подтвердите предупреждение кнопкой «Принять риск и продолжить», введите имя параметра в поле поиска. Строковые значения правятся карандашом справа, логические переключаются двойной стрелкой.

ПараметрЗначениеЧто даёт
network.proxy.type1Ручной режим. 0 без посредника, 2 файл автонастройки, 4 поиск через WPAD, 5 системная запись
network.proxy.socks_remote_dnstrueИмя хоста уходит посреднику, обращение к DNS остаётся внутри туннеля
network.proxy.failover_directfalseОтказ порта завершает запрос ошибкой, обхода мимо посредника нет
media.peerconnection.enabledfalseWebRTC выключен целиком, локальные адреса скриптам недоступны
signon.autologin.proxytrueСохранённая пара подставляется молча, окно запроса больше не всплывает
network.proxy.allow_hijacking_localhostfalseОбращения к петле идут напрямую и в туннель не попадают
network.trr.mode5DNS через HTTPS выключен, имена идут маршрутом профиля
network.dns.disablePrefetchtrueБраузер прекращает заранее разрешать имена из ссылок на странице
network.predictor.enabledfalseПредсказатель соединений отключён, лишних сокетов нет
network.prefetch-nextfalseПредзагрузка следующей страницы отключена
media.peerconnection.ice.default_address_onlytrueОдин адрес в списке кандидатов, когда WebRTC нужен для работы
network.proxy.no_proxies_onстрока исключенийТо же поле, что в окне, правится текстом целиком

Четыре параметра из таблицы стоит разобрать подробно, потому что именно они определяют, увидит сайт настоящий адрес машины или нет.

network.proxy.socks_remote_dns со значением true отправляет имя сайта самому посреднику, и разрешение идёт на его стороне. При значении false браузер сначала спрашивает адрес у своего DNS, и провайдер видит список посещённых доменов, хотя сам трафик уходит в туннель. В свежих сборках значение true стоит по умолчанию, при этом я проверяю его на каждой машине руками: параметр переписывается импортом старого профиля. Для порта, где имена обязаны уходить в туннель полностью, я подключаю прокси SOCKS5 с удалённым разрешением имён и ставлю флажок в окне параметров соединения одновременно с параметром в about:config.

network.proxy.failover_direct со значением по умолчанию true разрешает браузеру уйти напрямую, когда порт не ответил. Поведение выглядит дружелюбным, для рабочего профиля оно опасно: порт отвалился, вкладка открылась, внешний адрес сменился на домашний, и человек за машиной ничего не заметил. Я ставлю false на всех профилях. Отказ порта становится видимым сразу, страница показывает ошибку соединения, и я иду проверять привязку в кабинете.

media.peerconnection.enabled отвечает за WebRTC. Механизм строит соединения между узлами напрямую и собирает список локальных адресов машины, который скрипт на странице читает без разрешения пользователя. Значение false выключает механизм целиком: адреса не собираются, кандидаты ICE не формируются. Когда WebRTC нужен для видеозвонков, оставьте true и добавьте media.peerconnection.ice.default_address_only со значением true вместе с media.peerconnection.ice.no_host в положении true.

signon.autologin.proxy со значением true разрешает браузеру подставить сохранённую пару логина с паролем автоматически. Разбор этого параметра ниже, вместе с окном запроса и записью в менеджере паролей.

6. Логин, пароль и повторный запрос аутентификации

Полей для учётных данных в окне параметров соединения нет. Браузер спрашивает пару в момент первого запроса, ответом на код 407 Proxy Authentication Required. Всплывает окно «Требуется аутентификация» с текстом про адрес посредника, двумя полями и флажком «Использовать Менеджер паролей для сохранения этого пароля».

Отметьте флажок перед вводом. Пара уедет в хранилище профиля записью с адресом вида moz-proxy://198.51.100.24:3128, посмотреть её можно на странице about:logins, поиском по строке moz-proxy. Запись живёт внутри профиля, второй профиль о ней ничего не знает, и это ожидаемо при раздельных папках.

Дальше два флажка снимают повторные запросы. Первый в самом окне параметров соединения называется «Не запрашивать аутентификацию, если пароль сохранён». Второй это параметр signon.autologin.proxy в about:config, который тот же флажок и переключает. Значение true избавляет от окна при каждом старте браузера.

Пара подставляется молча только при совпадении адреса и порта в записи со значениями в полях. Сменили порт с 3128 на 3129, значит запись перестала подходить, и окно всплывёт снова с пустыми полями. Старую запись я удаляю на about:logins кнопкой «Удалить», иначе список зарастает мёртвыми строками.

Хранение пароля в профиле имеет цену: файл logins.json лежит в папке рядом с key4.db, и копия папки уносит пару вместе с собой. На машинах в общем помещении я включаю мастер-пароль на странице «Приватность и защита», пункт «Использовать мастер-пароль».

Есть путь совсем без пароля в профиле. Внешний адрес рабочей станции прописывается привязкой в кабинете, после чего порт узнаёт машину по адресу источника, и окно запроса перестаёт всплывать вовсе. Профиль остаётся пустым по учётным данным, копирование папки на вторую машину ничего не раскрывает, мастер-пароль на такой станции уже избыточен. Стационарные машины с постоянным адресом я держу именно так: выдача адресов IPv4 в коротком формате приходит ссылкой или файлом записью IP:PORT, ровно под этот случай.

7. Файл автонастройки

Режим «URL автоматической настройки сервиса прокси» принимает адрес текстового сценария на JavaScript с одной обязательной функцией FindProxyForURL(url, host). Браузер вызывает её на каждый запрос и получает строку с маршрутом. Тот же адрес лежит в параметре network.proxy.autoconfig_url, а режим включается значением 2 в network.proxy.type.

Сценарий берётся по HTTP с внутреннего сервера либо прямо с диска: путь вида file:///C:/proxy/pool.pac браузер принимает без дополнительных разрешений. Локальный файл удобен на одиночной машине, общий адрес в сети удобен на парке машин, где правка идёт в одном месте.

function FindProxyForURL(url, host) {
  if (isPlainHostName(host) || dnsDomainIs(host, ".internal.lan")) {
    return "DIRECT";
  }
  if (shExpMatch(url, "*/healthz*")) {
    return "DIRECT";
  }
  if (shExpMatch(host, "*.api.example.org")) {
    return "SOCKS5 198.51.100.24:1080";
  }
  return "PROXY 198.51.100.24:3128";
}

Разберу строку возврата. Слово PROXY отправляет запрос на порт HTTP, слово SOCKS5 на порт SOCKS пятой версии, слово DIRECT даёт прямое соединение. Перечень через точку с запятой задаёт запасные варианты по порядку. Завершающий DIRECT в перечне я на рабочих профилях убираю по той же причине, по которой ставлю network.proxy.failover_direct в false: отказ порта должен быть заметен.

Функции внутри сценария я использую четыре. isPlainHostName отделяет короткие имена без точки. dnsDomainIs сравнивает хвост имени с доменом. shExpMatch сверяет строку с шаблоном, где звёздочка заменяет любой кусок; звёздочка работает здесь, хотя поле исключений её и не понимает. myIpAddress пригождается на ноутбуке, который ходит и из офиса, и из дома, поскольку по своему адресу сценарий понимает, где машина сейчас, и меняет маршрут без участия человека.

Правку сценария браузер подхватывает не мгновенно: результат кэшируется на время сеанса. В окне параметров соединения рядом с полем адреса стоит кнопка «Обновить», она перечитывает файл прямо на месте. Ошибка в синтаксисе даёт запись в консоли браузера, откройте её сочетанием Ctrl+Shift+J и ищите строку про загрузку сценария.

Авторизацию по логину сценарий не переносит: пара запрашивается тем же окном по коду 407, как и при ручном режиме. Когда парк машин ходит по сценарию с несколькими портами, окон запроса становится много, и я перевожу такие машины на привязку внешнего адреса. Порт при этом остаётся один короткий, строка в сценарии короткая, поля не разрастаются; ровно под такой сценарий подходят HTTP-прокси для парка рабочих машин, где трафик безлимитный и подстраивать маршруты под объём работы не приходится.

8. Проверка после настройки

Начинаю со сверки внешнего адреса. Страница определения адреса открывается дважды: сперва в профиле с режимом «Без прокси», следом в рабочем профиле. Два ответа обязаны разойтись. Одинаковые значения означают, что запрос прошёл стороной, и дальше я смотрю поле исключений вместе с положением переключателя режима.

Ту же сверку удобно повторить вне браузера, командами. Они показывают, отвечает ли порт вообще, и снимают половину вопросов до захода в интерфейс:

curl -x http://198.51.100.24:3128 https://api.ipify.org
curl -x socks5h://198.51.100.24:1080 https://api.ipify.org

Буква h в схеме socks5h переносит разрешение имён на сторону посредника, повторяя поведение браузера с параметром network.proxy.socks_remote_dns в положении true. Одинаковый вывод команды и вкладки подтверждает конфигурацию окончательно.

Второй шаг это проверка разрешения имён. Откройте служебную страницу about:networking#dns, нажмите «Очистить кэш DNS», затем зайдите на пару сайтов и обновите страницу. При корректной настройке SOCKS5 список остаётся пустым или содержит только внутренние имена из поля исключений: браузер отдал имена посреднику и сам их не разрешал. Появление в таблице доменов посещённых сайтов говорит, что флажок отправки запросов через посредник снят.

Соседняя вкладка about:networking#sockets показывает открытые сокеты вместе с адресами. Список почти целиком состоит из адреса посредника и порта из настройки. Строки с чужими адресами на портах 80 или 443 означают, что часть запросов прошла стороной. Я держу эту страницу открытой во время первой сессии на новом профиле.

Третий шаг это проверка WebRTC. Откройте страницу, которая показывает кандидатов ICE, и посмотрите на список адресов. При выключенном механизме список пуст, страница сообщает о недоступности. При включённом механизме с параметром media.peerconnection.ice.default_address_only в списке остаётся один адрес, и он обязан совпадать с адресом посредника.

Четвёртый шаг разбирает заголовки, которые уходят с запросом. Страницы проверки печатают полученный набор списком, и меня интересуют две строки: Via вместе с X-Forwarded-For. Их присутствие означает, что порт объявляет сайту о посреднике и подставляет исходный адрес, поэтому под рабочие задачи я подбираю анонимные адреса без служебных заголовков и перечитываю тот же список повторно.

Остаётся туннель. Обычная страница по HTTP открылась, любой адрес с замком в строке отдал отказ, значит порт принимает простые запросы и отклоняет метод CONNECT. Две вкладки, 10 секунд, вопрос закрыт.

9. Разбор ошибок

Сообщение или признакПричинаЧто делать
«Прокси-сервер отказывается принимать соединения»Порт закрыт, адрес с опечаткой либо привязка внешнего адреса слетелаПовторить запрос командой curl -x, сверить привязку в кабинете
Сайты по HTTPS не открываются, обычные работаютФлажок «Также использовать этот прокси для HTTPS» снят, второй ряд полей пустОтметить флажок либо заполнить ряд «HTTPS прокси» вручную
Окно «Требуется аутентификация» всплывает при каждом стартеПара не сохранена либо снят флажок автоподстановкиОтметить сохранение пароля, выставить signon.autologin.proxy в true
Пара сохранена, окно всё равно всплываетПорт в записи moz-proxy:// не совпадает с полем окнаУдалить старую запись на about:logins, ввести пару заново
В about:networking#dns растёт список посещённых доменовСнят флажок отправки запросов через посредник при SOCKS5Выставить network.proxy.socks_remote_dns в true, очистить кэш имён
Страница проверки показывает домашний адрес в кандидатах ICEWebRTC включён и собирает локальные адресаВыставить media.peerconnection.enabled в false, перезапустить браузер
Внешний адрес иногда домашний, иногда посредникаПорт периодически отказывает, браузер уходит напрямуюВыставить network.proxy.failover_direct в false
Edge ходит через посредник, Firefox напрямуюВ окне выбран режим «Использовать системные настройки прокси» при пустой системной записиПереключить на ручной режим и заполнить поля
Второй ярлык открывает окно первого профиляЗапуск идёт без ключа -no-remoteДописать ключ в поле «Объект» обоих ярлыков
Профиль запустился, параметры сети прежниеФайл user.js лежит рядом с папкой профиляПоложить файл внутрь папки профиля, путь сверить на about:profiles
Поля окна серые, правка невозможнаПараметры заданы файлом policies.jsonОткрыть about:policies, вкладка «Активные», снять запись у администратора
Внутренние сервисы перестали открыватьсяЗаписи в поле исключений разделены точкой с запятойПереписать строку через запятую, подтвердить кнопкой «OK»
Сценарий автонастройки не срабатывает после правкиРезультат вызова закэширован на время сеансаНажать «Обновить» рядом с полем адреса сценария
Ошибка загрузки сценария при верном путиОпечатка в функции FindProxyForURL либо возврат неизвестного словаОткрыть консоль Ctrl+Shift+J, оставить слова PROXY, SOCKS5, DIRECT
Имена уходят провайдеру при верных полях SOCKS5Включён DNS через HTTPS в нижнем блоке окнаВыставить network.trr.mode в 5
Скорость проседает на тяжёлых страницахОдну привязку делят несколько машин, лимит потоков поделёнРазвести машины по разным привязкам из кабинета

Отдельно про перенос настроенного профиля. Папка копируется целиком на вторую машину, после чего профиль подключается ключом -P с указанием нового пути в profiles.ini. Поля параметров соединения переезжают вместе с prefs.js, пара логина с паролем вместе с logins.json и key4.db. Я перед копированием прохожу по about:logins и удаляю записи moz-proxy, пару на второй машине ввожу руками, а на стационарных станциях перевожу профиль на привязку внешнего адреса и не храню пару вовсе. Бесплатный тест до 2 часов удобно потратить именно на такой прогон: успеваете завести профиль, заполнить поля, пройти все четыре проверки и убедиться, что порт держит и туннель, и удалённое разрешение имён.

Остальные части справочника разбирают ту же задачу в других местах: параметры на уровне операционной системы собраны в статье про системные настройки прокси в Windows 11, переключение по доменам в браузерах на Chromium описано в материале про расширение SwitchyOmega и его правила, настройка на телефоне в инструкции про подключение прокси на Android. Когда профилей становится много и нужна полная изоляция отпечатков, смотрите разбор работы с прокси в Octo Browser.