auto-sync: 2026-04-17 13:30:01
This commit is contained in:
56
tasks/ruvpn-xray/test_api.py
Normal file
56
tasks/ruvpn-xray/test_api.py
Normal file
@@ -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}")
|
||||
Reference in New Issue
Block a user