From 36aac501e459d0f0cee4e8e843ebd697d7c03099 Mon Sep 17 00:00:00 2001 From: Stream Date: Fri, 17 Apr 2026 13:30:02 +0300 Subject: [PATCH] auto-sync: 2026-04-17 13:30:01 --- tasks/ruvpn-xray/test_api.py | 56 ++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 tasks/ruvpn-xray/test_api.py diff --git a/tasks/ruvpn-xray/test_api.py b/tasks/ruvpn-xray/test_api.py new file mode 100644 index 0000000..0eaa2ca --- /dev/null +++ b/tasks/ruvpn-xray/test_api.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +""" +Восстановление SSH доступа к ruvpn через 3x-ui API +Логинимся и пробуем выполнить команду через API (если доступно) +или добавляем правило firewall через systemd +""" +import requests +import json +import urllib3 + +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + +BASE_URL = "https://185.130.212.192:37615" +WEB_BASE_PATH = "/Tlvziqv5coI64Ymq5U/" +USERNAME = "admin" +PASSWORD = "XrayAdmin2026!" + +session = requests.Session() +session.verify = False + +# Логин +login_url = f"{BASE_URL}{WEB_BASE_PATH}login" +login_data = {"username": USERNAME, "password": PASSWORD} + +print(f"=== Логин в 3x-ui ===") +response = session.post(login_url, json=login_data) +print(f"Status: {response.status_code}") + +if response.status_code == 200: + try: + data = response.json() + print(f"Response: {json.dumps(data, indent=2)[:500]}") + if data.get("success"): + print("✅ Логин успешен!") + else: + print("❌ Логин не удался") + except: + print(f"Response text: {response.text[:300]}") +else: + print(f"❌ HTTP {response.status_code}") + +# Проверяем доступные API endpoints +print(f"\n=== Проверка API endpoints ===") +endpoints = [ + "panel/api/inbounds/list", + "panel/api/settings", + "server/status", +] + +for endpoint in endpoints: + url = f"{BASE_URL}{WEB_BASE_PATH}{endpoint}" + try: + resp = session.get(url, timeout=5) + print(f"{endpoint}: {resp.status_code} - {resp.text[:100]}") + except Exception as e: + print(f"{endpoint}: ERROR - {e}")