e0a5f0f746ecaf2d7e54ee059e0448a8dee9bf52
- 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
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)
Установка
Инициализация зависимостей
# Windows
init_gui.bat
# Linux/macOS
chmod +x init_gui.sh
./init_gui.sh
Сборка GUI версии
# Windows
build_gui.bat
# Linux/macOS
chmod +x build_gui.sh
./build_gui.sh
Сборка CLI версии (опционально)
# Windows
build.bat
# Linux/macOS
chmod +x build.sh
./build.sh
Использование
Запуск GUI (по умолчанию)
# Windows
vpn-client-gui.exe
# Linux/macOS
./vpn-client-gui
Запуск CLI режима
# Windows
vpn-client-gui.exe --cli
# Linux/macOS
./vpn-client-gui --cli
Основные функции
-
WireGuard
- Список конфигураций
- Добавить конфиг (вручную)
- Добавить конфиг (из файла)
- Удалить конфиг
- Подключиться
- Статистика трафика
-
VLESS
- Список конфигураций
- Добавить конфиг
- Удалить конфиг
- Подключиться
- Тестировать конфиг (пинг)
-
Управление подписками
- Список подписок
- Добавить подписку
- Удалить подписку
- Обновить конфиги из подписки
- Показать конфиги из подписки
- Тестировать конфиги из подписки
-
Статус подключения
- Показать детальный статус
- Время подключения
- Информация о прокси
- Статистика трафика (для WireGuard)
-
Отключение от 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- конфигурации VLESSsubscriptions.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 режим для серверов
- ⚠️ Нет автоматической настройки системного прокси (пока)
Разработка
Добавление новых функций
- Создайте новый пакет в
internal/ - Реализуйте функциональность
- Интегрируйте в CLI (
internal/cli/cli.go)
Тестирование
go test ./...
Лицензия
MIT
Автор
Портировано с Python на Go
Releases
4
Languages
Go
93.1%
Inno Setup
3.4%
Makefile
2.9%
Shell
0.3%
Batchfile
0.3%