Macos sing-box

Macos — sing-box

Альтернативная настройка VPN на macOS через sing-box вместо Clash Verge. Используется тот же Hysteria2-сервер и аналогичный split-routing.

Готовую конфигурацию с актуальным адресом узла, портом и учётными данными нужно скопировать или скачать со своей секретной страницы профиля.

Где взять конфигурацию

Администратор выдаёт персональную секретную ссылку вида https://vpn-panel.nordpatriot.ru/s/. В рабочей ссылке после /s/ находится секретный токен профиля.

На своей секретной странице копируйте готовую конфигурацию нужного типа:

  • Connection URL — для импорта по ссылке или QR-коду;
  • sing-box · Split — российские адреса напрямую, остальные через VPN (рекомендуется);
  • sing-box · All — весь трафик через VPN;
  • Clash Verge — готовая YAML-конфигурация.

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

1. Варианты запуска

Вариант A: SFM с графическим интерфейсом

SFM — официальный sing-box for macOS из семейства sing-box for Apple platforms.

brew install sfm

Также сборки могут публиковаться в sing-box GitHub Releases.

SFM использует NetworkExtension/System Extension и позволяет создавать Local Profile, включать TUN и Always On.

Если standalone-сборка временно недоступна из-за нотарификации Apple, использовать CLI-вариант ниже.

Вариант B: sing-box CLI и LaunchDaemon

brew install sing-box

CLI запускается от root через LaunchDaemon, потому что создание системного TUN и маршрутов требует повышенных прав.

Важно: не держать одновременно активными Clash Verge TUN и sing-box TUN. Перед тестом sing-box выключить TUN/System Proxy в Clash Verge и завершить его helper/core.

2. Выбор готовой конфигурации

Откройте свою персональную секретную страницу профиля. Не разбирайте Connection URL и не подставляйте пароли вручную.

  • sing-box · Split — российские домены и IP идут напрямую, остальной трафик через VPN; это рекомендуемый вариант.
  • sing-box · All — весь трафик идёт через VPN.

3. Импорт конфигурации

Для SFM вставьте JSON в Local Profile. Для CLI скачайте файл и сохраните его как config.json.

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

4. Запуск через SFM

  1. Открыть SFM.
  2. Создать Local Profile.
  3. Вставить готовый JSON со своей секретной страницы.
  4. Сохранить и выбрать профиль.
  5. Разрешить System Extension/Network Extension в System Settings, если macOS запросит.
  6. Нажать Start.
  7. Для автоматического восстановления включить Always On.
  8. Проверить внешний IP:
curl -4 https://api.ipify.org

В standalone SFM доступны правила process_name, поэтому OpenVPN можно отправить в DIRECT.

5. Запуск CLI через LaunchDaemon

Создать каталог и установить конфигурацию:

sudo mkdir -p /usr/local/etc/sing-box
sudo cp config.json /usr/local/etc/sing-box/config.json
sudo chown root:wheel /usr/local/etc/sing-box/config.json
sudo chmod 600 /usr/local/etc/sing-box/config.json

Проверить конфигурацию:

sudo "$(brew --prefix)/bin/sing-box" check   -c /usr/local/etc/sing-box/config.json

Создать /Library/LaunchDaemons/io.nordpatriot.sing-box.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>io.nordpatriot.sing-box</string>
  <key>ProgramArguments</key>
  <array>
    <string>/opt/homebrew/bin/sing-box</string>
    <string>run</string>
    <string>-c</string>
    <string>/usr/local/etc/sing-box/config.json</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
  <key>StandardOutPath</key>
  <string>/var/log/sing-box.log</string>
  <key>StandardErrorPath</key>
  <string>/var/log/sing-box.log</string>
</dict>
</plist>

Для Intel Mac путь к бинарнику обычно /usr/local/bin/sing-box​; проверить командой which sing-box.

Загрузить LaunchDaemon:

sudo chown root:wheel /Library/LaunchDaemons/io.nordpatriot.sing-box.plist
sudo chmod 644 /Library/LaunchDaemons/io.nordpatriot.sing-box.plist
sudo launchctl bootstrap system   /Library/LaunchDaemons/io.nordpatriot.sing-box.plist

Проверка:

sudo launchctl print system/io.nordpatriot.sing-box
tail -f /var/log/sing-box.log

Перезапуск:

sudo launchctl kickstart -k system/io.nordpatriot.sing-box

Удаление автозапуска:

sudo launchctl bootout system   /Library/LaunchDaemons/io.nordpatriot.sing-box.plist

6. Split-routing

Напрямую идут:

  • процесс OpenVPN;
  • локальные и частные IP;
  • .ru​, .рф​, .yanet.org​, .local;
  • российские IP из geoip-ru.srs;
  • адрес получения OpenVPN-конфигурации.

Остальной трафик идёт через Hysteria2.

Если одновременно нужен Tunnelblick/OpenVPN, убедиться, что Hysteria2-сервер не маршрутизируется обратно в TUN, а route.auto_detect_interface включён.

7. Диагностика

sudo "$(brew --prefix)/bin/sing-box" check   -c /usr/local/etc/sing-box/config.json

ps -axo user,pid,command | grep '[s]ing-box'
ifconfig | grep '^utun'
netstat -rn -f inet
curl -4 https://api.ipify.org

Если после запуска пропадает сеть:

  1. Остановить Clash Verge и другие TUN-клиенты.
  2. Проверить лог sing-box.
  3. Временно удалить geoip-ru rule-set и проверить базовое подключение.
  4. Проверить UDP-доступ к адресу и порту, указанным в Connection URL на своей секретной странице.
  5. Проверить разрешение System Extension/Network Extension в System Settings.

8. Официальные источники