Загрузка данных


Ниже собраны все файлы и команды для запуска портативного клиента и управления прокси.
1. Скрипт парсинга ссылки и запуска (run_vpn.py)
Скрипт принимает ссылку формата vless://, генерирует локальный config.json и запускает бинарник xray.exe.
import json
import os
import subprocess
import sys
from urllib.parse import parse_qs, urlparse


def parse_vless(link: str) -> dict:
    parsed = urlparse(link)
    if parsed.scheme != "vless":
        raise ValueError("Поддерживаются только ссылки vless://")

    uuid = parsed.username
    server = parsed.hostname
    port = parsed.port

    params = {k: v[0] for k, v in parse_qs(parsed.query).items()}

    security = params.get("security", "none")
    net_type = params.get("type", "tcp")
    flow = params.get("flow", "")

    stream_settings = {"network": net_type, "security": security}

    if security == "reality":
        stream_settings["realitySettings"] = {
            "serverName": params.get("sni", ""),
            "fingerprint": params.get("fp", "chrome"),
            "publicKey": params.get("pbk", ""),
            "shortId": params.get("sid", ""),
            "spiderX": params.get("spx", "/"),
        }
    elif security == "tls":
        stream_settings["tlsSettings"] = {
            "serverName": params.get("sni", server),
            "fingerprint": params.get("fp", "chrome"),
        }

    config = {
        "log": {"loglevel": "warning"},
        "inbounds": [
            {
                "tag": "socks-in",
                "port": 10808,
                "listen": "127.0.0.1",
                "protocol": "socks",
                "settings": {"udp": True},
            },
            {
                "tag": "http-in",
                "port": 10809,
                "listen": "127.0.0.1",
                "protocol": "http",
            },
        ],
        "outbounds": [
            {
                "protocol": "vless",
                "settings": {
                    "vnext": [
                        {
                            "address": server,
                            "port": port,
                            "users": [
                                {
                                    "id": uuid,
                                    "encryption": "none",
                                    "flow": flow,
                                }
                            ],
                        }
                    ]
                },
                "streamSettings": stream_settings,
            }
        ],
    }
    return config


def main():
    if len(sys.argv) > 1:
        link = sys.argv[1].strip()
    else:
        link = input("Вставьте вашу ссылку vless:// : ").strip()

    if not os.path.exists("xray.exe"):
        print("[-] Ошибка: файл xray.exe не найден в текущей папке!")
        sys.exit(1)

    try:
        config = parse_vless(link)
    except Exception as e:
        print(f"[-] Ошибка парсинга ссылки: {e}")
        sys.exit(1)

    with open("config.json", "w", encoding="utf-8") as f:
        json.dump(config, f, indent=2)

    print("[+] Конфигурация config.json сгенерирована.")
    print("[+] Локальный SOCKS5: 127.0.0.1:10808")
    print("[+] Локальный HTTP:   127.0.0.1:10809")
    print("[*] Запуск Xray... Для остановки нажмите Ctrl+C.")

    try:
        subprocess.run(["xray.exe", "run", "-c", "config.json"])
    except KeyboardInterrupt:
        print("\n[*] Остановка Xray.")


if __name__ == "__main__":
    main()

2. Команды запуска в консоли (CMD)
Запуск с передачей ссылки аргументом:
python run_vpn.py "vless://ВАША_ССЫЛКА"

Или интерактивный запуск (скрипт сам запросит ввод):
python run_vpn.py

3. Автоматический запуск без Python (start.bat)
Если дома заранее сгенерирован config.json и скопирован на флешку рядом с xray.exe:
@echo off
title Xray Proxy
echo Запуск локального прокси...
xray.exe run -c config.json
pause

4. Управление системным прокси Windows через CMD
Включение системного HTTP-прокси для всех стандартных программ и браузеров:
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d "127.0.0.1:10809" /f

Отключение системного прокси (возврат настроек сети по умолчанию):
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f