Можно обойтись вообще без Python. Сам xray.exe — это самостоятельный бинарник на Go, ему интерпретатор не нужен. Python использовался исключительно для того, чтобы распарсить строку ссылки в JSON.
Если у тебя уже есть расшифрованная строка vless://..., её можно один раз руками или через любой сайт вставить в config.json. А если ссылки нет и ты хочешь скачать портативный Python прямо через командную строку Windows без прав администратора — это делается через PowerShell.
Вариант 1. Запуск вообще БЕЗ Python (Самый надежный)
Тебе нужны только два файла в папке C:\1:
* xray.exe
* config.json
Создай текстовый файл config.json в папке C:\1 и заполни его по этому шаблону, подставив свои данные из VLESS-ключа:
{
"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": "IP_ИЛИ_ДОМЕН_СЕРВЕРА",
"port": 443,
"users": [
{
"id": "ТВОЙ_UUID",
"encryption": "none",
"flow": "xtls-rprx-vision"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"serverName": "ТВОЙ_SNI",
"fingerprint": "chrome",
"publicKey": "ТВОЙ_PUBLIC_KEY",
"shortId": "ТВОЙ_SHORT_ID",
"spiderX": "/"
}
}
}
]
}
Если flow или shortId пустые в ключе — можно оставить пустыми кавычками "".
Запуск одной командой в CMD:
xray.exe run -c config.json
Вариант 2. Быстро скачать портативный Python через CMD (без прав админа)
Если всё же хочется, чтобы скрипт сам всё парсил, можно загрузить официальный портативный Python (embeddable zip) прямо встроенным PowerShell.
Вставь эту команду целиком в CMD в папке C:\1:
powershell -Command "Invoke-WebRequest -Uri 'https://www.python.org/ftp/python/3.11.9/python-3.11.9-embed-amd64.zip' -OutFile 'python.zip'; Expand-Archive -Path 'python.zip' -DestinationPath 'C:\1\py'; Remove-Item 'python.zip'"
После завершения скачивания в папке C:\1\py появится готовый python.exe. Запуск скрипта будет таким:
py\python.exe run_vpn.py "vless://..."
Главный нюанс по ссылке
На экране была ссылка на подписку:
[https://toriispirits.com/tq8Z7N2bpQhgLARx](https://toriispirits.com/tq8Z7N2bpQhgLARx)...
Ни Xray, ни скрипт парсинга не умеют подключаться по HTTP-ссылке подписки напрямую. Сначала открой её в браузере — там появится длинный закодированный текст (Base64). Скопируй его, декодируй (например, на base64decode.org), и ты получишь готовую строчку, начинающуюся именно с vless://. Её уже можно либо скормить в run_vpn.py, либо вставить значения из неё в config.json.