Files
Go-VPN-Client/README.md

177 lines
4.3 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)
## Требования
- 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