v1.1
- Upgrade Go version from 1.21 to 1.25.0 - Update golang.org/x/sys dependency to v0.42.0 - Add Unix/Linux admin check using os.Geteuid() with sudo requirement - Add Windows admin check using windows.SID and token membership validation - Integrate admin privilege validation into main CLI entry point - Enhance monitor.go with graceful signal handling for Ctrl+C interrupts - Add signal channels for clean shutdown of monitoring loop - Ensures VPN client runs with required elevated privileges on both platforms
VPN Client (Go)
VPN клиент на Golang с поддержкой VLESS протокола и подписок.
🚀 Возможности
- ✅ Поддержка WireGuard
- ✅ Поддержка VLESS протокола через Xray
- ✅ Управление подписками
- ✅ Автоматическое обновление конфигураций из подписок
- ✅ Тестирование серверов (ping)
- ✅ Детальное логирование
- ✅ Статистика трафика для WireGuard
- ✅ Кроссплатформенность (Windows, Linux, macOS)
Требования
- Go 1.21 или выше
- Xray-core (автоматически загружается и используется из папки
xray) - WireGuard (для Windows: https://www.wireguard.com/install/, для Linux:
apt install wireguardилиyum install wireguard-tools)
Установка
Инициализация зависимостей
# Windows
init_gui.bat
# Linux/macOS
chmod +x init_gui.sh
./init_gui.sh
Сборка GUI версии
# Windows
build_gui.bat
# Linux/macOS
chmod +x build_gui.sh
./build_gui.sh
Сборка CLI версии (опционально)
# Windows
build.bat
# Linux/macOS
chmod +x build.sh
./build.sh
Использование
Запуск GUI (по умолчанию)
# Windows
vpn-client-gui.exe
# Linux/macOS
./vpn-client-gui
Запуск CLI режима
# Windows
vpn-client-gui.exe --cli
# Linux/macOS
./vpn-client-gui --cli
Основные возможности CLI
WireGuard
- управление конфигами (добавить / удалить / список)
- подключение
- статистика трафика
VLESS
- управление конфигами
- подключение через Xray
- ping-тест серверов
Подписки
- добавление / удаление
- обновление конфигураций
- просмотр и тест конфигов
Статус
- текущее подключение
- время сессии
- информация о прокси
- трафик (WireGuard)
📁 Структура проекта
.
├── main.go
├── internal/
│ ├── cli/
│ ├── config/
│ ├── wireguard/
│ ├── vless/
│ ├── subscription/
│ ├── vpn/
│ └── logger/
├── .vpn_client/
└── logs/
Конфигурация
Все конфигурационные файлы хранятся в папке .vpn_client/:
configs.json- конфигурации VLESSsubscriptions.json- подпискиstate.json- текущее состояние подключения
Логи
Логи сохраняются в папке logs/:
vless.log- основной логvless_access.log- лог доступа (IP, подключения)vless_error.log- лог ошибокvless_traffic_*.log- логи трафика для каждого подключения
Прокси
После подключения к VLESS серверу, SOCKS5 прокси доступен по адресу:
127.0.0.1:10808
Настройте браузер или систему на использование этого прокси.
Отличия от Python версии
- ✅ Более быстрая работа
- ✅ Один исполняемый файл без зависимостей
- ✅ Меньшее потребление памяти
- ✅ Нативная кроссплатформенность
- ✅ Полная поддержка WireGuard
- ✅ Полная поддержка VLESS
- ⚠️ Нет GUI версии
- ⚠️ Нет автоматической настройки системного прокси (пока)
Разработка
Добавление новых функций
- Создайте новый пакет в
internal/ - Реализуйте функциональность
- Интегрируйте в CLI (
internal/cli/cli.go)
Тестирование
go test ./...
Лицензия
AGPL 3.0
Releases
4
Languages
Go
93.1%
Inno Setup
3.4%
Makefile
2.9%
Shell
0.3%
Batchfile
0.3%