Initial commit
This commit is contained in:
180
README.md
Normal file
180
README.md
Normal 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
|
||||
Reference in New Issue
Block a user