You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
4.6 KiB
116 lines
4.6 KiB
#!/bin/bash |
|
# WebSocket Debug Script for Stella's Orly Relay |
|
|
|
echo "🔍 Debugging WebSocket Connection for orly-relay.imwald.eu" |
|
echo "==================================================" |
|
|
|
echo "" |
|
echo "📋 Step 1: Check if relay container is running" |
|
echo "----------------------------------------------" |
|
docker ps | grep -E "(stella|relay|orly)" || echo "❌ No relay containers found" |
|
|
|
echo "" |
|
echo "📋 Step 2: Test local relay connection" |
|
echo "--------------------------------------" |
|
if curl -s -I http://127.0.0.1:7777 | grep -q "426"; then |
|
echo "✅ Local relay responding correctly (HTTP 426)" |
|
else |
|
echo "❌ Local relay not responding correctly" |
|
curl -I http://127.0.0.1:7777 |
|
fi |
|
|
|
echo "" |
|
echo "📋 Step 3: Check Apache modules" |
|
echo "------------------------------" |
|
if apache2ctl -M 2>/dev/null | grep -q "proxy_wstunnel"; then |
|
echo "✅ proxy_wstunnel module enabled" |
|
else |
|
echo "❌ proxy_wstunnel module NOT enabled" |
|
echo "Run: sudo a2enmod proxy_wstunnel" |
|
fi |
|
|
|
if apache2ctl -M 2>/dev/null | grep -q "rewrite"; then |
|
echo "✅ rewrite module enabled" |
|
else |
|
echo "❌ rewrite module NOT enabled" |
|
echo "Run: sudo a2enmod rewrite" |
|
fi |
|
|
|
echo "" |
|
echo "📋 Step 4: Check Plesk Apache configuration" |
|
echo "------------------------------------------" |
|
if [ -f "/etc/apache2/plesk.conf.d/vhosts/orly-relay.imwald.eu.conf" ]; then |
|
echo "✅ Plesk config file exists" |
|
echo "Current proxy configuration:" |
|
grep -E "(Proxy|Rewrite|proxy|rewrite)" /etc/apache2/plesk.conf.d/vhosts/orly-relay.imwald.eu.conf || echo "❌ No proxy/rewrite rules found" |
|
else |
|
echo "❌ Plesk config file not found" |
|
fi |
|
|
|
echo "" |
|
echo "📋 Step 5: Test WebSocket connections" |
|
echo "------------------------------------" |
|
|
|
# Test with curl first (simpler) |
|
echo "Testing HTTP upgrade request to local relay..." |
|
if curl -s -I -H "Connection: Upgrade" -H "Upgrade: websocket" http://127.0.0.1:7777 | grep -q "426\|101"; then |
|
echo "✅ Local relay accepts upgrade requests" |
|
else |
|
echo "❌ Local relay doesn't accept upgrade requests" |
|
fi |
|
|
|
echo "Testing HTTP upgrade request to remote relay..." |
|
if curl -s -I -H "Connection: Upgrade" -H "Upgrade: websocket" https://orly-relay.imwald.eu | grep -q "426\|101"; then |
|
echo "✅ Remote relay accepts upgrade requests" |
|
else |
|
echo "❌ Remote relay doesn't accept upgrade requests" |
|
echo "This indicates Apache proxy issue" |
|
fi |
|
|
|
# Try to install websocat if not available |
|
if ! command -v websocat >/dev/null 2>&1; then |
|
echo "" |
|
echo "📥 Installing websocat for proper WebSocket testing..." |
|
if wget -q https://github.com/vi/websocat/releases/download/v1.12.0/websocat.x86_64-unknown-linux-musl -O websocat 2>/dev/null; then |
|
chmod +x websocat |
|
echo "✅ websocat installed" |
|
else |
|
echo "❌ Could not install websocat (no internet or wget issue)" |
|
echo "Manual install: wget https://github.com/vi/websocat/releases/download/v1.12.0/websocat.x86_64-unknown-linux-musl -O websocat && chmod +x websocat" |
|
fi |
|
fi |
|
|
|
# Test with websocat if available |
|
if command -v ./websocat >/dev/null 2>&1; then |
|
echo "" |
|
echo "Testing actual WebSocket connection..." |
|
echo "Local WebSocket test:" |
|
timeout 3 bash -c 'echo "[\"REQ\",\"test\",{}]" | ./websocat ws://127.0.0.1:7777/' 2>/dev/null || echo "❌ Local WebSocket failed" |
|
|
|
echo "Remote WebSocket test (ignoring SSL):" |
|
timeout 3 bash -c 'echo "[\"REQ\",\"test\",{}]" | ./websocat --insecure wss://orly-relay.imwald.eu/' 2>/dev/null || echo "❌ Remote WebSocket failed" |
|
fi |
|
|
|
echo "" |
|
echo "📋 Step 6: Check ports and connections" |
|
echo "------------------------------------" |
|
echo "Ports listening on 7777:" |
|
netstat -tlnp 2>/dev/null | grep :7777 || ss -tlnp 2>/dev/null | grep :7777 || echo "❌ No process listening on port 7777" |
|
|
|
echo "" |
|
echo "📋 Step 7: Test SSL certificate" |
|
echo "------------------------------" |
|
echo "Certificate issuer:" |
|
echo | openssl s_client -connect orly-relay.imwald.eu:443 -servername orly-relay.imwald.eu 2>/dev/null | openssl x509 -noout -issuer 2>/dev/null || echo "❌ SSL test failed" |
|
|
|
echo "" |
|
echo "🎯 RECOMMENDED NEXT STEPS:" |
|
echo "=========================" |
|
echo "1. If proxy_wstunnel is missing: sudo a2enmod proxy_wstunnel && sudo systemctl restart apache2" |
|
echo "2. If no proxy rules found: Add configuration in Plesk Apache & nginx Settings" |
|
echo "3. If local WebSocket fails: Check if relay container is actually running" |
|
echo "4. If remote WebSocket fails but local works: Apache proxy configuration issue" |
|
echo "" |
|
echo "🔧 Try this simple Plesk configuration:" |
|
echo "ProxyPass / http://127.0.0.1:7777/" |
|
echo "ProxyPassReverse / http://127.0.0.1:7777/"
|
|
|