17

Автозапуск Nekobox (NekoRay) под Windows в TUN режиме1

Хотел обновить свой пост на эту тему, но что-то набралось текста по этому поводу..

Для начала

Почему не работает галочка в интерфейсе Запускать вместе с системой для автоматического поднятия в TUN режиме..?

Видимо это баг, или фича.. Я заставил запускаться ее автоматически с поднятием туннеля, но далее такой вывод сделан исходя из того, что при некорректном завершении работы программы (перезагрузка без выхода из NekoRay в трее) всегда без исключений можно ловить окошко с предложением перезапустить программу, при отказе вскоре вылетит следующее

Автозапуск Nekobox (NekoRay) под Windows в TUN режиме Windows, Программа, Инструкция, Компьютерная помощь, Прокси, Кусты реестра, Powershell, Json, Автозапуск, Длиннопост

Говорящее о том, что у нас уже есть TUN интерфейс в системе с таким названием, что указано в конфиге и вот никак с ним не получается подружиться (в диспетчере устройств он же лежит в ошибке).

Подходим к решению

Прежде чем запускать NekoRay нам нужно удалить ранее созданный сетевой интерфейс, и нам надо делать это автоматически.. Забываем про галочку Запускать вместе с системой. Отмечаем пункты Запомнить последний профиль (разумеется с активированным профилем) и Режим TUN. Но это может работать некорректно, поэтому выходим из софта через трей либо Программа — Выход. Открываем следующий файл (путь может отличаться в зависимости от того где лежит папка с утилитой)

C:\nekoray\config\groups\nekobox.json

Автозапуск Nekobox (NekoRay) под Windows в TUN режиме Windows, Программа, Инструкция, Компьютерная помощь, Прокси, Кусты реестра, Powershell, Json, Автозапуск, Длиннопост

Подробнее о пунктах:

  • remember_enable — галочка Запомнить последний профиль (true/false)

  • remember_id — идентификатор профиля (подробнее ниже)

  • spmode2 — галочка Режим ... (элемент массива "vpn" для TUN режима)

Автозапуск Nekobox (NekoRay) под Windows в TUN режиме Windows, Программа, Инструкция, Компьютерная помощь, Прокси, Кусты реестра, Powershell, Json, Автозапуск, Длиннопост

Идентификатор профиля указывает на профиль, который будет активирован при запуске, нумерация в JSON начинается с нуля, как для массивов, с единицы же в графическом интерфейсе программы, т.е. 0 соответствует 1 профилю, а 2 соответствует 3 профилю.

Идентификатор со значением -1919 говорит программе о том, что не нужно активировать ни один из доступных профилей.

Решение

Отлично, NekoRay настроили, в конфиге все перепроверили.. Осталось решить задачу с удалением сетевого интерфейса, ранее созданного утилитой, чтобы при перезагрузке или включении компьютера не словить проблем. Как я говорил ранее, про галочку Запускать вместе с системой забыли. Создаем файл AutorunNekoRay.ps1 рядом с nekobox.exe

C:\nekoray\AutorunNekoRay.ps1

Содержимое скрипта следующее

# Удаляем устройства с именем "sing-tun Tunnel"

foreach ($dev in (Get-PnpDevice | Where-Object { $_.Name -like "sing-tun Tunnel" })) {

# Запускаем pnputil для удаления устройства и ждем завершения процесса

Start-Process pnputil -ArgumentList "/remove-device", "$($dev.InstanceId)" -NoNewWindow -Wait

}

# Путь к exe файлу, который находится в той же папке, что и скрипт

$exePath = Join-Path -Path $PSScriptRoot -ChildPath "nekobox.exe"

# Запускаем nekobox.exe с аргументом -tray

Start-Process -FilePath $exePath -ArgumentList "-tray"

Стоит отметить, что в исходной конфигурации интерфейс в диспетчере устройств называется sing-tun Tunnel. Если меняли, то используем свое название, или смотрим что появилось в диспетчере с включенным режимом TUN.

Создаем файлы autorunEnable.reg (для добавления в автозапуск) и autorunDisable.reg (для удаления из автозапуска), их содержимое соответственно ниже. Проверяйте путь скрипта RemoveNetworkInterfaceTest.ps1!

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

"RemoveNetworkInterfaceTest"="powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File \"C:\\nekoray\\RemoveNetworkInterfaceTest.ps1\""

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

"RemoveNetworkInterfaceTest"=-

Чтобы утилита запускалась для всех пользователей — HKEY_CURRENT_USER необходимо заменить на HKEY_LOCAL_MACHINE в файлах .reg. Также рекомендую быть администратором в системе при использовании HKEY_CURRENT_USER, при использовании HKEY_LOCAL_MACHINE шансов выше, что утилита запуститься с правами администратора, от системного пользователя (касается не только NekoRay).

Запускаем autorunEnable.reg, соглашаемся со всем, что выскочит. Перезагружаем компьютер — радуемся.

Автозапуск Nekobox (NekoRay) под Windows в TUN режиме Windows, Программа, Инструкция, Компьютерная помощь, Прокси, Кусты реестра, Powershell, Json, Автозапуск, Длиннопост

Если что-то не работает перепроверяем именно конфиг (ну я по крайней мере решил, что это надежнее). Если все-таки трудности настигают киньте в комментарии скриншоты, где у вас nekobox.exe лежит, скрипта и файлов реестра (.reg), не забудьте конфиг nekobox.json попробуем разобраться 🫡

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