vless-to-xray
Version:
Convert VLESS subscription URLs to Xray configuration
195 lines (142 loc) • 7.28 kB
Markdown
# VLESS to Xray Config Converter
CLI инструмент для загрузки VLESS подписок и конвертации их в JSON конфигурацию для Xray-core.
**Что делает пакет:**
- 📥 Загружает данные подписки по URL
- 🔍 Декодирует base64 содержимое
- 🔄 Парсит VLESS URL'ы
- 📄 Генерирует JSON конфигурацию для Xray-core
**Что НЕ делает:**
- ❌ Не запускает Xray-core
- ❌ Не создает прокси соединения
- ❌ Не управляет сетевыми подключениями
## Возможности
- 🔄 Конвертация VLESS URL в JSON конфигурацию Xray-core
- 📥 Загрузка подписок по HTTP/HTTPS
- 🔍 Автоматическое декодирование base64
- 🌐 Поддержка Reality, TCP, WebSocket параметров
- ⚙️ Генерация HTTP inbound'ов для каждого сервера
- 📦 CLI интерфейс и программный API
- 🛡️ Timeout защита и обработка ошибок
## Установка
**Установка не требуется!** Используйте npx для запуска без установки:
```bash
# Запуск без установки через npx (рекомендуется)
npx vless-to-xray <subscription-url> [output-file]
```
### Альтернативные способы
```bash
# Глобальная установка (опционально)
npm install -g vless-to-xray
# Локальная разработка
git clone <repository-url>
cd vless-to-xray
npm install
```
## Использование
### CLI команды
```bash
# Базовое использование (через npx)
npx vless-to-xray <subscription-url> [output-file]
# Сохранить в файл
npx vless-to-xray https://example.com/sub/data ./config.json
# Вывести в консоль (по умолчанию сохраняет в xray-config.json)
npx vless-to-xray https://example.com/sub/data
# Справка
npx vless-to-xray --help
```
### Программный API
```javascript
import { parseVlessUrl } from 'vless-to-xray';
const vlessUrl = 'vless://uuid@server.com:443?type=tcp&security=reality&pbk=...#server1';
const config = parseVlessUrl(vlessUrl);
console.log(config);
```
## Структура генерируемой конфигурации
Инструмент создает конфигурацию Xray со следующей структурой:
### Inbounds
- HTTP proxy на портах `11081`, `11082`, `11083`... для каждого сервера
- Привязка к `0.0.0.0` для внешнего доступа
### Outbounds
- VLESS протокол с Reality/TLS
- Автоматическая настройка Reality параметров
- Поддержка flow: `xtls-rprx-vision`
### Routing
- Прямое соответствие inbound → outbound
- Каждый HTTP порт связан с конкретным сервером
## Поддерживаемые параметры VLESS
| Параметр | Описание | Значение по умолчанию |
|----------|----------|-----------------------|
| `type` | Транспортный протокол | `tcp` |
| `security` | Тип шифрования | `reality` |
| `flow` | Flow control | `xtls-rprx-vision` |
| `fp` | Fingerprint | `chrome` |
| `sni` | Server Name Indication | адрес сервера |
| `pbk` | Public Key | обязательный |
| `sid` | Short ID | опциональный |
| `spx` | Spider X | опциональный |
## Примеры использования
### 1. Простая конвертация (npx)
```bash
npx vless-to-xray https://your-provider.com/sub/abc123
```
### 2. Сохранение в кастомный файл
```bash
npx vless-to-xray https://your-provider.com/sub/abc123 ./my-config.json
```
### 3. Использование с Xray-core
```bash
# 1. Генерация конфига через npx (только конвертация!)
npx vless-to-xray https://your-provider.com/sub/abc123 ./config.json
# 2. Запуск Xray с сгенерированным конфигом (отдельно)
xray -c ./config.json
```
> **Важно:** Пакет только генерирует конфигурацию. Запуск Xray-core и настройка прокси выполняется отдельно.
## Требования
- Node.js >= 22.0.0
- Доступ к интернету для загрузки подписок
## Лицензия
MIT
---
## 🚀 Рекомендуемые VPN сервисы
### [Просто Космос VPN](https://t.me/prosto_kosmos_vpn_bot?start=140402)
**Почему рекомендуем:**
- 🏆 Высокая стабильность соединения
- 🌍 Серверы по всему миру
- ⚡ Отличная скорость для стриминга и игр
- 💰 Доступные тарифы
- 🤝 Telegram-бот для удобного управления
- 🔒 Поддержка Reality и современных протоколов
**Идеально подходит для:**
- Обход блокировок
- Стриминг сервисы
- Игры с низким пингом
- Повседневное использование
### [FizzVPN](https://fizzvpn.io/)
**Преимущества:**
- 🛡️ Фокус на безопасность и приватность
- 🔧 Продвинутые настройки для технических пользователей
- 📱 Кроссплатформенность
- ⚙️ Совместимость с Xray-core из коробки
- 🆓 Пробный период для тестирования
**Подходит если вам нужно:**
- Максимальная приватность
- Тонкие настройки протоколов
- Профессиональное использование
- Техподдержка на русском языке
### Использование с данным инструментом
Оба сервиса предоставляют VLESS подписки, которые можно легко конвертировать:
```bash
# Пример для Просто Космос VPN
npx vless-to-xray "https://sub.your-cosmos-link.com/path" ./cosmos-config.json
# Пример для FizzVPN
npx vless-to-xray "https://fizzvpn.io/sub/yourkey" ./fizz-config.json
```
После генерации конфигурации запустите Xray отдельно:
```bash
xray -c ./config.json
```
После запуска Xray настройте ваши приложения на использование HTTP proxy:
- HTTP Proxy: `127.0.0.1:11081` (первый сервер)
- HTTP Proxy: `127.0.0.1:11082` (второй сервер)
- И т.д.
> **Примечание:** `vless-to-xray` только создает конфигурацию. Запуск прокси и Xray-core выполняется отдельными инструментами.