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

5.9 KiB
Raw Blame History

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

Основные функции

  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)

Тестирование

go test ./...

Лицензия

MIT

Автор

Портировано с Python на Go