Files
Go-VPN-Client/README.md
arkonsadter e0a5f0f746 feat(gui): add GUI (Test) implementation with documentation and admin support
- Add GUI (Test) module with Fyne-based interface (internal/gui/gui.go, internal/gui/server.go)
- Add CLI monitoring capability (internal/cli/monitor.go)
- Add main_cli.go entry point for CLI-only builds
- Add comprehensive documentation suite covering setup, build, quick start, and changelog
- Add admin manifest (admin.manifest) for Windows UAC elevation support
- Add rsrc.syso.json configuration for resource embedding
- Update .gitignore to exclude build scripts (*.bat, *.sh)
- Update main.go and cli.go to support dual GUI (Test)/CLI modes
- Update README.md with new project information
- Enables users to build and run both GUI (Test)and CLI versions with proper admin privileges on Windows
2026-04-06 18:57:58 +06:00

206 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# VPN Client (Go)
VPN клиент на Golang с поддержкой VLESS протокола и подписок.
## Возможности
- ✅ Поддержка WireGuard
- ✅ Поддержка VLESS протокола через Xray
- ✅ Управление подписками
- ✅ Автоматическое обновление конфигураций из подписок
- ✅ Тестирование серверов (ping)
- ✅ Детальное логирование
- ✅ Статистика трафика для WireGuard
- ✅ Кроссплатформенность (Windows, Linux, macOS)
- ✅ Современный графический интерфейс (GUI (Test))
- ✅ CLI режим для серверов
## Требования
- 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
```
### Основные функции
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)
- ✅ CLI режим для серверов
- ⚠️ Нет автоматической настройки системного прокси (пока)
## Разработка
### Добавление новых функций
1. Создайте новый пакет в `internal/`
2. Реализуйте функциональность
3. Интегрируйте в CLI (`internal/cli/cli.go`)
### Тестирование
```bash
go test ./...
```
## Лицензия
MIT
## Автор
Портировано с Python на Go