2026-04-05 21:52:05 +07:00
2026-04-05 20:33:30 +06:00
2026-04-05 20:33:30 +06:00
2026-04-05 20:33:30 +06:00
2026-04-05 20:33:30 +06:00
2026-04-05 20:33:30 +06:00
2026-04-05 20:33:30 +06:00
2026-04-05 20:33:30 +06:00
2026-04-05 20:33:30 +06:00
2026-04-05 20:33:30 +06:00
2026-04-05 21:52:05 +07:00
2026-04-05 20:33:30 +06:00
2026-04-05 20:33:30 +06:00
2026-04-05 20:33:30 +06:00

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)

Установка

Сборка из исходников

cd vpn_client_go
go mod download
go build -o vpn-client main.go

Windows

build.bat

Linux/macOS

chmod +x build.sh
./build.sh

Использование

Запуск

# 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)

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

go test ./...

Лицензия

MIT

Автор

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

Description
No description provided
Readme AGPL-3.0 9 MiB
2026-04-12 20:03:11 +07:00
Languages
Go 93.1%
Inno Setup 3.4%
Makefile 2.9%
Shell 0.3%
Batchfile 0.3%