Files
Go-VPN-Client/README.md
2026-04-05 20:33:30 +06:00

181 lines
5.3 KiB
Markdown
Raw Permalink 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
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