Initial commit

This commit is contained in:
2026-04-05 20:33:30 +06:00
commit 83fbe7afdd
18 changed files with 3038 additions and 0 deletions

180
README.md Normal file
View File

@@ -0,0 +1,180 @@
# 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