Разные прокси для профилей Safari в macOS Ventura Sonoma Sequoia
Можно ли настроить разные HTTP/HTTPS/SOCKS прокси для каждого профиля Safari на macOS (Ventura, Sonoma, Sequoia)? Штатных средств нет. Обзор Network Locations, PAC-файлов, networksetup и Proxifier для обхода.
Можно ли на современной macOS (Ventura, Sonoma, Sequoia) настроить разные прокси для каждого профиля Safari? Существует ли у Apple поддерживаемый способ назначать уникальные сетевые настройки (HTTP/HTTPS/SOCKS) на уровне профиля Safari, а не глобально для всей системы? Если штатных средств нет — какие надёжные обходные решения существуют?
Нет — на современной macOS (Ventura, Sonoma, Sequoia) нельзя назначить разные HTTP/HTTPS/SOCKS‑прокси для каждого профиля Safari: браузер использует системную конфигурацию прокси macOS, и у Apple нет встроенного механизма привязки прокси к отдельному профилю. Если нужно различное поведение для «профилей», доступны надёжные обходные решения: Network Locations и PAC‑файлы для быстрой смены конфигурации, автоматизация через networksetup/scselect, а для одновременной работы — пер‑апп прокси‑утилиты (например, Proxifier) или запуск Safari в изолированной виртуальной среде.
Содержание
- Короткий ответ: Safari профили и прокси в macOS
- Почему Safari использует системные прокси в macOS (Ventura, Sonoma, Sequoia)
- Штатные средства macOS для прокси: Network Locations, PAC, networksetup
- Надёжные обходные решения для разных прокси на профиле Safari
- Практические примеры и команды (networksetup, PAC, SSH, Proxifier)
- Источники
- Заключение
Короткий ответ: Safari профили и прокси в macOS
Apple прямо указывает, что Safari использует системную конфигурацию прокси, заданную в Системных настройках → Сеть, и не имеет отдельного интерфейса для задания прокси на уровне профиля браузера — см. Изменение настроек прокси на Mac. Соответственно, единственные штатные способы — менять системную конфигурацию (Network Locations, PAC) или автоматизировать это через командную строку; для одновременной работы с разными прокси нужны сторонние инструменты или изоляция среды.
Почему Safari использует системные прокси в macOS (Ventura, Sonoma, Sequoia)
Safari опирается на сетевой стек macOS (System Configuration/CFNetwork) — браузер берет настройки прокси из системных сетевых настроек, а не хранит отдельную прокси‑конфигурацию внутри профиля. Это подтверждают и обсуждения сообщества, где пользователи и эксперты указывают, что «Safari only supports using the system‑wide proxies» (см. обсуждение на Apple StackExchange) и ссылки на примеры использования networksetup для управления этими настройками из командной строки (Stack Overflow).
Что это значит на практике? Окна, вкладки и профили Safari на одном аккаунте будут разделять одну конфигурацию прокси — изменения в Системных настройках отражаются сразу для всех запущенных экземпляров браузера.
Штатные средства macOS для прокси: Network Locations, PAC, networksetup
Штатно у macOS есть несколько механизмов управления прокси, но все они работают на уровне системы или сетевого подключения, а не на уровне профиля Safari.
- Network Locations (Сетевые расположения). Позволяют сохранить несколько наборов сетевых параметров (включая прокси) и быстро переключаться между ними через GUI. Это удобно, если вы периодически переключаетесь между наборами прокси (например, «Работа» / «Дома»), но переключение глобально для всей системы.
- PAC‑файлы (Automatic Proxy Configuration). PAC‑скрипт определяет правило маршрутизации по хосту/URL и позволяет направлять разные домены к разным прокси‑сервером. PAC полезен, когда нужно маршрутизировать трафик по хост‑шаблонам, но снова: PAC назначается системно и не «видит» профиль Safari.
- CLI‑автоматизация через networksetup / scselect. Для быстрой смены конфигураций и интеграции в скрипты используют
networksetup(настройка прокси для конкретного сетевого сервиса) иscselect(переключение Location). Это удобно для привязки профилей в рабочем процессе — например, ссылка в меню или горячая клавиша, которая переключает Location с нужной конфигурацией.
Примеры полезных команд (далее — в разделе с примерами): networksetup -setwebproxy, -setsecurewebproxy, -setsocksfirewallproxy, -setautoproxyurl и scselect для переключения Location. Подробности и подтверждение системного поведения — в руководстве Apple и обсуждениях сообщества (Apple Support, Superuser про SOCKS и Safari).
Надёжные обходные решения для разных прокси на профиле Safari
Ниже — практичные варианты, ранжированные по удобству и способности работать одновременно с несколькими «профилями»:
- Пер‑апп прокси (Proxifier, ProxyCap и т.п.)
- Что делает: перехватывает выходящие соединения на уровне процесса и перенаправляет их через заданные прокси; позволяет создать правило «всё, что из Safari.app — через proxy A; всё, что из другой копии/процесса — через proxy B».
- Плюсы: даёт возможность одновременно иметь несколько независимых прокси для разных процессов (лучший вариант для параллельной работы).
- Минусы: платные инструменты, нужно внимательно настраивать правила для HTTPS/проверки сертификатов; возможны нюансы с системными расширениями.
- Где читать/начать: обзор обходных решений и рекомендация Proxifier — в статье о настройке прокси для Safari (thesafety.us).
- Локальный прокси + правила (Charles, mitmproxy, локальный SOCKS) в связке с пер‑апп инструментом
- Идея: направляете Safari через локальный прокси (например, Charles), а уже локальный прокси перенаправляет трафик к разным апстрим‑проксиям по правилам. Удобно, если нужны тонкие правила маршрутизации.
- Минусы: требует настройки локального прокси и доверия к сертификату при HTTPS‑перехвате.
- Виртуальные машины / контейнеры
- Что делает: запускаете отдельную виртуальную машину (Parallels, VMware, UTM/VirtualBox) с собственными сетевыми настройками и внутри неё запускаете Safari (или отдельный профиль macOS). Каждая VM имеет свою сетевую конфигурацию/прокси.
- Плюсы: полная изоляция, простая конфигурация прокси в каждой VM.
- Минусы: тяжеловато по ресурсам и по лицензированию macOS; удобнее для задач с высокой изоляцией.
- Альтернативные браузеры для задач, где нужен per‑profile proxy
- Firefox поддерживает кастомные прокси‑настройки на профиль/пользовательском уровне; если задача — лишь иметь несколько «профилей с разными прокси», можно использовать Firefox для этих профилей, а Safari — для остального.
- Минус: это не Safari, но часто практичное решение.
- Сценарий «переключаемых» конфигураций (если не нужно одновременно)
- Если вам не нужно одновременно держать открытыми несколько профилей с разными прокси, самый простой путь — заранее создать несколько Network Locations или PAC, и переключаться между ними вручную или скриптом (
scselect). Это штатный, поддерживаемый Apple подход.
Какой подход выбрать?
- Нужны разные прокси одновременно → пер‑апп инструменты (Proxifier) или отдельные VM.
- Нужна быстрая смена настройки время от времени → Network Locations + скрипты.
- Нужна гибкая маршрутизация по хостам → PAC или локальный прокси с правилами.
Практические примеры и команды (networksetup, PAC, SSH, Proxifier)
Ниже — рабочие команды и примеры PAC‑файла. Все изменения прокси через networksetup влияют на весь macOS‑стек и, следовательно, на Safari.
Пример: базовые networksetup‑команды
# Посмотреть список сетевых сервисов (имя сервиса, используйте в следующих командах)
networksetup -listallnetworkservices
# Установить HTTP (web) proxy для сервиса "Wi-Fi"
sudo networksetup -setwebproxy "Wi-Fi" proxy.example.com 8080
# Установить HTTPS (secure web) proxy
sudo networksetup -setsecurewebproxy "Wi-Fi" proxy.example.com 8443
# Установить SOCKS proxy
sudo networksetup -setsocksfirewallproxy "Wi-Fi" 127.0.0.1 1080
# Отключить все прокси (пример)
sudo networksetup -setwebproxystate "Wi-Fi" off
sudo networksetup -setsecurewebproxystate "Wi-Fi" off
sudo networksetup -setsocksfirewallproxystate "Wi-Fi" off
# Назначить PAC-файл для "Wi-Fi"
sudo networksetup -setautoproxyurl "Wi-Fi" "https://example.com/proxy.pac"
Переключение Network Location:
# Переключить Location (scselect входит в macOS)
scselect "Work" # имя Location — то, что вы создали в Системных настройках -> Сеть
scselect "Home"
Пример PAC‑файла (proxy.pac):
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*.internal.local")) {
return "DIRECT";
}
if (shExpMatch(host, "*.serviceA.com")) {
return "PROXY proxy-A.example.com:8080";
}
// основной прокси, с запасным DIRECT
return "PROXY proxy-B.example.com:8080; DIRECT";
}
Важно: PAC позволяет маршрутизировать по хостам/URL, но не по профилю Safari.
SSH‑туннель + локальный SOCKS (быстрое решение для тестов):
# Создать локальный SOCKS‑туннель к удалённому серверу
ssh -D 1080 -q -C -N user@remote-server.example.com
# Затем в Per‑app прокси (Proxifier) или в system proxy указываете SOCKS на 127.0.0.1:1080
Per‑app (Proxifier) — базовые шаги:
- Установите Proxifier (или аналог).
- Добавьте прокси‑сервер(а) (SOCKS/HTTP) в список прокси.
- Создайте правило: Process = /Applications/Safari.app → Proxy = proxy-A.
- Добавьте дополнительные правила по доменам/портам по необходимости.
- Запустите Safari — трафик переадресуется согласно правилам, не меняя системную конфигурацию.
Где читать и брать инструменты: рекомендации по сторонним инструментам и обходам — в статье о настройке прокси для Safari (thesafety.us), а общая заметка о том, что Safari использует системные настройки — в обзорах и статьях (geonode, proxys.io).
Источники
- Изменение настроек прокси на Mac — Служба поддержки Apple (RU)
- Is it possible to have multiple Safari windows with different proxy settings? — Apple StackExchange
- Set SOCKS proxy for Safari — Super User
- Change the proxy settings in Safari? — Stack Overflow
- Setting up a proxy in Safari on macOS — TheSafety (рекомендации по сторонним инструментам)
- How to use proxies with Safari — Geonode blog
- Как настроить прокси в браузере Safari на Mac OS — Proxys.io (RU)
Заключение
Коротко: штатного способа назначать уникальные HTTP/HTTPS/SOCKS‑прокси на уровне профиля Safari в macOS (Ventura, Sonoma, Sequoia) нет — Safari использует системные прокси macOS. Для практических задач используйте Network Locations и PAC‑файлы для переключения конфигураций, автоматизируйте networksetup/scselect для быстрого переключения, а если нужно одновременно работать с несколькими разными прокси — применяйте пер‑апп прокси‑утилиты (Proxifier) или изолируйте браузер в виртуальной машине.