Настройка прокси в 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.type | 1 | Ручной режим. 0 без посредника, 2 файл автонастройки, 4 поиск через WPAD, 5 системная запись |
network.proxy.socks_remote_dns | true | Имя хоста уходит посреднику, обращение к DNS остаётся внутри туннеля |
network.proxy.failover_direct | false | Отказ порта завершает запрос ошибкой, обхода мимо посредника нет |
media.peerconnection.enabled | false | WebRTC выключен целиком, локальные адреса скриптам недоступны |
signon.autologin.proxy | true | Сохранённая пара подставляется молча, окно запроса больше не всплывает |
network.proxy.allow_hijacking_localhost | false | Обращения к петле идут напрямую и в туннель не попадают |
network.trr.mode | 5 | DNS через HTTPS выключен, имена идут маршрутом профиля |
network.dns.disablePrefetch | true | Браузер прекращает заранее разрешать имена из ссылок на странице |
network.predictor.enabled | false | Предсказатель соединений отключён, лишних сокетов нет |
network.prefetch-next | false | Предзагрузка следующей страницы отключена |
media.peerconnection.ice.default_address_only | true | Один адрес в списке кандидатов, когда 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, очистить кэш имён |
| Страница проверки показывает домашний адрес в кандидатах ICE | WebRTC включён и собирает локальные адреса | Выставить 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.