# 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 cd vpn_client_go go mod download go build -o vpn-client main.go ``` ### Windows ```bash build.bat ``` ### Linux/macOS ```bash chmod +x build.sh ./build.sh ``` ## Использование ### Запуск ```bash # Windows vpn-client.exe # Linux/macOS ./vpn-client ``` ### Основные функции 1. **WireGuard** - Список конфигураций - Добавить конфиг (вручную) - Добавить конфиг (из файла) - Удалить конфиг - Подключиться - Статистика трафика 2. **VLESS** - Список конфигураций - Добавить конфиг - Удалить конфиг - Подключиться - Тестировать конфиг (пинг) 3. **Управление подписками** - Список подписок - Добавить подписку - Удалить подписку - Обновить конфиги из подписки - Показать конфиги из подписки - Тестировать конфиги из подписки 4. **Статус подключения** - Показать детальный статус - Время подключения - Информация о прокси - Статистика трафика (для WireGuard) 5. **Отключение от VPN** ## Структура проекта ``` vpn_client_go/ ├── main.go # Точка входа ├── go.mod # Зависимости ├── internal/ │ ├── cli/ # CLI интерфейс │ │ └── cli.go │ ├── config/ # Управление конфигурацией │ │ └── config.go │ ├── wireguard/ # WireGuard протокол │ │ └── wireguard.go │ ├── vless/ # VLESS протокол │ │ └── vless.go │ ├── subscription/ # Управление подписками │ │ └── subscription.go │ ├── vpn/ # Управление VPN │ │ └── vpn.go │ └── logger/ # Логирование │ └── logger.go ├── .vpn_client/ # Конфигурационные файлы │ ├── configs.json │ ├── subscriptions.json │ └── state.json └── logs/ # Логи ├── wireguard.log ├── vless.log ├── vless_access.log ├── vless_error.log └── vless_traffic_*.log ``` ## Конфигурация Все конфигурационные файлы хранятся в папке `.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 ./... ``` ## Лицензия MIT ## Автор Портировано с Python на Go