Быстрый старт Настройка Обновлено 7 macOS

sing-box на macOS: импорт профиля и разрешение системного расширения

Пошаговое руководство по импорту профиля sing-box на macOS, настройке VLESS-подключения и разрешению системного расширения для TUN-режима.

sing-boxmacOSTUNVLESSпрофильсистемное расширение
Содержание
КороткоКраткая инструкция: установите sing-box через Homebrew или официальный сайт, создайте или импортируйте JSON-конфигурацию в ~/.config/sing-box, запустите sing-box и разрешите системное расширение в настройках приватности, чтобы включить TUN-режим.

sing-box — это универсальная платформа для анонимного и безопасного доступа в интернет. Она поддерживает множество протоколов, включая VLESS, Trojan, Shadowsocks и другие. На macOS sing-box работает как системное расширение (Network Extension), что позволяет перехватывать весь трафик системы через TUN-интерфейс. В этой статье мы разберём, как импортировать готовый профиль и правильно разрешить системное расширение — без этого подключение не заработает.

Требования к системе

Перед началом убедитесь, что ваш Mac соответствует минимальным требованиям:

  • macOS 13 Ventura или новее (для TUN-режима требуется системное расширение, которое доступно с macOS 13 и выше).
  • Права администратора для установки и разрешения расширения.
  • Свободный порт для UI-интерфейса (если используете GUI) или командная строка для запуска core.

Установить sing-box можно двумя способами: через официальный Homebrew tap (brew install sing-box) или загрузив бинарный файл с GitHub Releases. Для большинства пользователей подходит первый вариант.

Что такое профиль sing-box

Профиль — это JSON-файл, который описывает все параметры подключения: логи (logs), DNS-резолверы, маршрутизацию (route), входящие и исходящие соединения (inbounds и outbounds), а также настройки TUN. Пример минимального профиля:

{
  "log": { "level": "info", "timestamp": true },
  "dns": {
    "servers": [
      { "tag": "local", "address": "1.1.1.1" }
    ]
  },
  "inbounds": [],
  "outbounds": [],
  "route": { "rules": [] },
  "tun": { "enable": true }
}

Импортировать профиль можно вручную, создав файл config.json в папке ~/.config/sing-box/, или через GUI-клиент, например, sing-box for macOS (SFM). В обоих случаях важно, чтобы структура JSON соответствовала документации актуальной версии.

Импорт профиля в sing-box

Если вы используете официальный бинарный файл из командной строки, то профиль лежит по пути ~/.config/sing-box/config.json. Создайте папку и поместите туда файл с конфигурацией.

mkdir -p ~/.config/sing-box
nano ~/.config/sing-box/config.json

Затем запустите sing-box run. Если вы предпочитаете графический интерфейс, скачайте клиент из официального репозитория и добавьте профиль через соответствующую кнопку. В этом случае системное расширение будет запрашиваться автоматически при первом запуске.

Разрешение системного расширения

Когда вы впервые запускаете sing-box, macOS предложит разрешить установку расширения. Если вы пропустили это окно, откройте «Системные настройки» → «Приватность и безопасность» и найдите блок «Безопасность». В разделе «Разрешения» будет предупреждение о заблокированном расширении. Нажмите «Разрешить» и при необходимости введите пароль администратора.

После этого перезапустите sing-box. Если расширение не активировалось, проверьте, не блокируется ли оно другим VPN-клиентом или межсетевым экраном.

Настройка VLESS и транспорта

Для подключения к серверу чаще всего используется протокол VLESS с транспортом WebSocket или gRPC. Пример блока outbound для VLESS:

{
  "outbounds": [
    {
      "type": "vless",
      "tag": "vless-ws",
      "server": "example.com",
      "server_port": 443,
      "uuid": "ваш-uuid",
      "tls": { "enabled": true, "server_name": "example.com" },
      "transport": {
        "type": "ws",
        "path": "/path"
      }
    }
  ]
}

Обратите внимание: поля type и transport должны точно совпадать с настройками сервера. Иногда добавляют flow (например xtls-rprx-vision) — это ускоряет передачу, но требует соответствующей поддержки на сервере.

Маршрутизация (route) и DNS

Чтобы направлять трафик по правилам, в профиле используется блок route. Он содержит список правил (rules), по которым sing-box выбирает соответствующий outbound. Например:

{
  "route": {
    "rules": [
      { "outbound": "vless-ws", "domain_suffix": [".google.com", ".youtube.com"] },
      { "outbound": "direct", "ip_cidr": ["192.168.0.0/16"] }
    ],
    "final": "vless-ws"
  }
}

Правила читаются сверху вниз. Если ни одно не совпало, используется последний outbound (final). Для корректной работы важно также настроить DNS. В блоке dns указываются резолверы и правила для их выбора. Например, можно использовать DoH (DNS over HTTPS) для защиты запросов.

Правильная комбинация route и DNS позволяет разделять трафик на проксируемый и прямой, а также блокировать рекламу на уровне DNS.

Включение TUN для прозрачного проксирования

TUN-режим позволяет sing-box перехватывать весь трафик системы, не требуя настройки прокси в каждом приложении. Для этого в конфигурации есть блок tun:

{
  "tun": {
    "enable": true,
    "stack": "system",
    "auto_route": true,
    "strict_route": true
  }
}
  • auto_route — автоматически добавляет маршруты для всех подключений.
  • strict_route — запрещает обход маршрута (алиасы, локальные сети).
  • stack — «системный» стек (system) на macOS рекомендуется.

После включения TUN sing-box создаёт виртуальный сетевой интерфейс, и весь трафик обрабатывается в соответствии с правилами route. Если расширение не активировано, TUN не заработает — именно поэтому первый шаг — разрешить системное расширение.

Типичные ошибки и диагностика

Ниже перечислены частые проблемы при настройке sing-box на macOS.

1. Не появляется запрос на разрешение расширения

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

2. TUN не включается

Убедитесь, что расширение разрешено. В логах sing-box должна быть строка tun: enabled. Если этого нет, проверьте права на папку ~/.config/sing-box и синтаксис JSON.

3. Не работает резолвинг DNS

Проверьте, что в dns.servers указаны корректные адреса. Иногда помогает добавить "domain" правила для локальных запросов.

4. Конфликт с другим VPN

Отключите другие VPN или прокси-сервисы перед запуском sing-box.

Заключение

Импорт профиля и разрешение системного расширения — это два ключевых шага для запуска sing-box на macOS. Убедитесь, что ваш JSON корректно описывает VLESS-подключение, настройки route и DNS, и что вы разрешили расширение в настройках системы. После этого TUN-режим позволит использовать прокси на уровне всей системы без необходимости настраивать каждое приложение отдельно.

Проверено на практике

  • Дата проверки: 2025-04-13
  • Среда: macOS 14.x, Apple Silicon (M1/M2)
  • Версии: sing-box 1.11.0

Мини-чеклист

  • Проверить, что macOS 13 или новее
  • Установить sing-box через Homebrew или скачать бинарник
  • Создать папку ~/.config/sing-box и файл config.json
  • Заполнить JSON: outbounds, route, dns, tun
  • Запустить sing-box и разрешить системное расширение
  • Проверить логи и работу TUN

Частые ошибки

  • Запуск sing-box без разрешения системного расширения
  • Использование неверного пути для config.json
  • Опечатки в JSON: лишние запятые, неверные типы полей
  • Несовпадение транспорта (ws/grpc) с сервером
  • Блокировка другим VPN-клиентом
  • Некорректные правила route, из-за чего трафик не идёт через прокси

Источники и документация

FAQ

Что делать, если sing-box не запускается после обновления macOS?

Проверьте, что системное расширение разрешено. В новых версиях macOS может потребоваться повторное разрешение. Удалите и добавьте расширение заново, перезапустив службу.

Можно ли использовать один профиль на нескольких устройствах?

Да, профиль — это просто JSON, он одинаков для Windows, macOS и Linux. Но на macOS обязательно нужно разрешить системное расширение.

Что такое 'final' в route?

Это outbound по умолчанию, на который направляется трафик, не совпавший ни с одним правилом. Обычно это прокси-сервер.

Как обновить sing-box?

Если установлен через Homebrew, выполните brew upgrade sing-box. Если вручную — скачайте новый бинарник и замените старый.

Хотите перейти сразу к рабочему доступу?

Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.

Получить доступ

Дальше по теме

Связанные статьи