Загрузка данных
Ниже собраны все файлы и команды для запуска портативного клиента и управления прокси.
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