# 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`) ## Установка ### Инициализация зависимостей ```bash # Windows init_gui.bat # Linux/macOS chmod +x init_gui.sh ./init_gui.sh ``` ### Сборка GUI версии ```bash # Windows build_gui.bat # Linux/macOS chmod +x build_gui.sh ./build_gui.sh ``` ### Сборка CLI версии (опционально) ```bash # Windows build.bat # Linux/macOS chmod +x build.sh ./build.sh ``` ## Использование ### Запуск GUI (по умолчанию) ```bash # Windows vpn-client-gui.exe # Linux/macOS ./vpn-client-gui ``` ### Запуск CLI режима ```bash # 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` - конфигурации VLESS - `subscriptions.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 версии - ⚠️ Нет автоматической настройки системного прокси (пока) ## Разработка ### Добавление новых функций 1. Создайте новый пакет в `internal/` 2. Реализуйте функциональность 3. Интегрируйте в CLI (`internal/cli/cli.go`) ### Тестирование ```bash go test ./... ``` ## Лицензия AGPL 3.0