Хотел обновить свой пост на эту тему, но что-то набралось текста по этому поводу..
Почему не работает галочка в интерфейсе Запускать вместе с системой для автоматического поднятия в TUN режиме..?
Видимо это баг, или фича.. Я заставил запускаться ее автоматически с поднятием туннеля, но далее такой вывод сделан исходя из того, что при некорректном завершении работы программы (перезагрузка без выхода из NekoRay в трее) всегда без исключений можно ловить окошко с предложением перезапустить программу, при отказе вскоре вылетит следующее
Говорящее о том, что у нас уже есть TUN интерфейс в системе с таким названием, что указано в конфиге и вот никак с ним не получается подружиться (в диспетчере устройств он же лежит в ошибке).
Прежде чем запускать NekoRay нам нужно удалить ранее созданный сетевой интерфейс, и нам надо делать это автоматически.. Забываем про галочку Запускать вместе с системой. Отмечаем пункты Запомнить последний профиль (разумеется с активированным профилем) и Режим TUN. Но это может работать некорректно, поэтому выходим из софта через трей либо Программа — Выход. Открываем следующий файл (путь может отличаться в зависимости от того где лежит папка с утилитой)
C:\nekoray\config\groups\nekobox.json
remember_enable — галочка Запомнить последний профиль (true/false)
remember_id — идентификатор профиля (подробнее ниже)
spmode2 — галочка Режим ... (элемент массива "vpn" для TUN режима)
Идентификатор профиля указывает на профиль, который будет активирован при запуске, нумерация в 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.exe лежит, скрипта и файлов реестра (.reg), не забудьте конфиг nekobox.json попробуем разобраться 🫡
Возможно я тут много насквернословил и есть более простые решения обозреваемой задачи, поделитесь если знаете 🥲