6

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

Наконец-то руки дошли до накатить Windows 10 Pro (без твиков и т.п., MSDN), чтобы проверить всю ранее изложенную портянку. Пункт Подходим к решению основного поста не пропускаем, вся информация здесь замещает пункт Решение..

Уточню для начала:

  • версия NekoRay — 4.0-beta4

  • расположение — C:\nekoray (работал с ним, скрипты клал туда, пути в них относительно него)

  • исполняемый файл — nekobox.exe

Для любого решения

Необходимо дабы избавиться от ошибки ниже

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

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

Ошибка при запуске

Ошибка при запуске

Создаем скрипт, что будет удалять, при наличии, сетевой интерфейс, созданный в момент последнего запуска и запускать NekoRay..

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"

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

  • через планировщик

  • через автозапуск (ветка реестра HKEY_LOCAL_MACHINE)

  • через автозапуск (ветка реестра HKEY_CURRENT_USER)

Что должно работать

Решение через планировщик (автоматическое выполнение скрипта выше при загрузке системы от SYSTEM). Сразу отмечу, что в трее значка NekoRay не увидите.

C:\nekoray\AutorunCreateTask.ps1

# Параметры задачи

$TaskName = "AutorunNekoRay"

$ScriptPath = "C:\nekoray\AutorunNekoRay.ps1"

$Trigger = New-ScheduledTaskTrigger -AtStartup

$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-ExecutionPolicy Bypass -File `"$ScriptPath`""

$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest

# Удаление старой задачи (если есть)

Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false -ErrorAction SilentlyContinue

# Создание новой задачи

Register-ScheduledTask -TaskName $TaskName -Trigger $Trigger -Action $Action -Principal $Principal

Write-Host "Задача $TaskName успешно создана и будет выполняться при старте системы."

C:\nekoray\AutorunRemoveTask.ps1

# Название задачи

$TaskName = "AutorunNekoRay"

# Удаление задачи

try {

Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false

Write-Host "Задача '$TaskName' успешно удалена."

} catch {

Write-Host "Не удалось удалить задачу '$TaskName'. Возможно, она не существует." -ForegroundColor Red

}

Далее запускаем командную строку от имени Администратора и выполняем:

powershell -ExecutionPolicy Bypass -File "C:\nekoray\AutorunCreateTask.ps1"

Для удаления задачи:

powershell -ExecutionPolicy Bypass -File "C:\nekoray\AutorunRemoveTask.ps1"

Что может сработать

Либо так:

C:\nekoray\autorunEnable.reg

Windows Registry Editor Version 5.00

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

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

C:\nekoray\autorunDisable.reg

Windows Registry Editor Version 5.00

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

"AutorunNekoRay"=-

Либо так:

C:\nekoray\autorunEnable.reg

Windows Registry Editor Version 5.00

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

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

C:\nekoray\autorunDisable.reg

Windows Registry Editor Version 5.00

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

"AutorunNekoRay"=-

Для добавления в автозапуск запускаем созданный autorunEnable.reg, чтобы убрать из автозапуска — autorunDisable.reg.

Если все успешно

  • в диспетчере задач будет nekobox.exe

  • в диспетчере устройств сетевой интерфейс sing-box без ошибки

  • маршрутизация согласно описанным правилам в соответствующем конфиге

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества