chore: Änderungen commited
This commit is contained in:
327
backend/docs/VM_INTERNET_TROUBLESHOOTING.md
Normal file
327
backend/docs/VM_INTERNET_TROUBLESHOOTING.md
Normal file
@ -0,0 +1,327 @@
|
||||
# VM Internet-Verbindungsprobleme - Troubleshooting Guide
|
||||
|
||||
## 🚨 Problem: "Keine Internet-Verbindung verfügbar" in VMs
|
||||
|
||||
Das MYP AIO-Installer Setup-Skript meldet in virtuellen Maschinen oft fälschlicherweise "keine Internet-Verbindung", obwohl die Verbindung funktioniert.
|
||||
|
||||
## 🔍 Ursachen-Analyse
|
||||
|
||||
### 1. **Hauptproblem: Zu restriktiver Internet-Check**
|
||||
```bash
|
||||
# Original (problematisch):
|
||||
if ! ping -c 1 8.8.8.8 &> /dev/null; then
|
||||
log "ERROR" "Keine Internetverbindung verfügbar"
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
|
||||
**Probleme:**
|
||||
- ❌ Nur **1 Ping-Paket** ohne Retry
|
||||
- ❌ Kein Timeout für VM-Verzögerungen
|
||||
- ❌ Nur ein einziger Test-Host (8.8.8.8)
|
||||
- ❌ Keine VM-Detection
|
||||
- ❌ Keine alternativen Test-Methoden
|
||||
|
||||
### 2. **VM-spezifische Probleme**
|
||||
|
||||
#### **NAT-Netzwerk-Verzögerungen**
|
||||
- VM-NAT benötigt oft 3-10 Sekunden für erste Verbindung
|
||||
- Cold-Start-Delays nach VM-Boot
|
||||
- Hypervisor-Netzwerk-Stack-Initialisierung
|
||||
|
||||
#### **DNS-Resolution-Probleme**
|
||||
- VM-DNS-Cache nicht initialisiert
|
||||
- Corporate-DNS-Server langsamer
|
||||
- DNS-over-NAT Propagation-Delays
|
||||
|
||||
#### **Timeout-Probleme**
|
||||
- Physische Systeme: 1-2 Sekunden ausreichend
|
||||
- VMs: 5-15 Sekunden benötigt
|
||||
- Corporate-Netzwerke: bis zu 30 Sekunden
|
||||
|
||||
## ✅ Lösungsstrategien
|
||||
|
||||
### **Lösung 1: Neue Kommandozeilen-Optionen verwenden**
|
||||
|
||||
#### **Für VMs (empfohlen):**
|
||||
```bash
|
||||
# VM-Modus mit erweiterten Timeouts
|
||||
sudo ./setup/aio_installer.sh --vm-mode --full
|
||||
|
||||
# Bei persistenten Netzwerk-Problemen
|
||||
sudo ./setup/aio_installer.sh --force-offline --full
|
||||
|
||||
# Internet-Check komplett überspringen
|
||||
sudo ./setup/aio_installer.sh --skip-internet-check --full
|
||||
```
|
||||
|
||||
#### **Debug-Modus für Analyse:**
|
||||
```bash
|
||||
# Detaillierte Netzwerk-Diagnose
|
||||
sudo ./setup/aio_installer.sh --network-debug --test
|
||||
```
|
||||
|
||||
### **Lösung 2: Manuelle Netzwerk-Validation vor Installation**
|
||||
|
||||
#### **Pre-Installation-Check:**
|
||||
```bash
|
||||
# 1. VM-Netzwerk-Interfaces prüfen
|
||||
ip link show
|
||||
|
||||
# 2. Default Gateway testen
|
||||
ping -c 3 $(ip route show default | awk '{print $3}' | head -1)
|
||||
|
||||
# 3. DNS-Resolution testen
|
||||
nslookup google.com
|
||||
nslookup github.com
|
||||
|
||||
# 4. Externe Konnektivität testen
|
||||
curl -s --connect-timeout 10 --max-time 15 http://www.google.com
|
||||
wget --timeout=10 --tries=2 -q -O /dev/null http://www.github.com
|
||||
|
||||
# 5. Mehrere DNS-Server testen
|
||||
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
|
||||
echo "Testing DNS: $dns"
|
||||
timeout 5 ping -c 2 $dns
|
||||
done
|
||||
```
|
||||
|
||||
### **Lösung 3: VM-Netzwerk-Konfiguration optimieren**
|
||||
|
||||
#### **VMware Workstation/Player:**
|
||||
```bash
|
||||
# NAT-Modus (empfohlen für Internet-Zugang)
|
||||
# VM Settings > Network Adapter > NAT
|
||||
|
||||
# Bei Problemen: Host-Only + NAT Adapter
|
||||
# Adapter 1: NAT (Internet)
|
||||
# Adapter 2: Host-Only (lokaler Zugang)
|
||||
```
|
||||
|
||||
#### **VirtualBox:**
|
||||
```bash
|
||||
# NAT-Modus konfigurieren
|
||||
VBoxManage modifyvm "VM-Name" --nic1 nat
|
||||
|
||||
# Bridge-Modus für direkte Netzwerk-Anbindung
|
||||
VBoxManage modifyvm "VM-Name" --nic1 bridged --bridgeadapter1 "Ethernet"
|
||||
|
||||
# Port-Forwarding für SSH (optional)
|
||||
VBoxManage modifyvm "VM-Name" --natpf1 "SSH,tcp,,2222,,22"
|
||||
```
|
||||
|
||||
#### **Hyper-V:**
|
||||
```powershell
|
||||
# Externe Netzwerk-Switch verwenden
|
||||
Get-VMSwitch
|
||||
Set-VMNetworkAdapter -VMName "VM-Name" -SwitchName "External Switch"
|
||||
```
|
||||
|
||||
### **Lösung 4: Timing und Retry-Strategien**
|
||||
|
||||
#### **Nach VM-Start warten:**
|
||||
```bash
|
||||
# Nach VM-Boot 1-2 Minuten warten für Netzwerk-Initialisierung
|
||||
sleep 120
|
||||
|
||||
# Dann Installation starten
|
||||
sudo ./setup/aio_installer.sh --vm-mode --full
|
||||
```
|
||||
|
||||
#### **Manuelle Retry-Strategie:**
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# VM-Installation mit automatischen Wiederholungen
|
||||
|
||||
MAX_RETRIES=3
|
||||
RETRY_DELAY=60
|
||||
|
||||
for i in $(seq 1 $MAX_RETRIES); do
|
||||
echo "Installationsversuch $i/$MAX_RETRIES"
|
||||
|
||||
if sudo ./setup/aio_installer.sh --vm-mode --full; then
|
||||
echo "✅ Installation erfolgreich!"
|
||||
exit 0
|
||||
else
|
||||
if [[ $i -lt $MAX_RETRIES ]]; then
|
||||
echo "⚠️ Versuch $i fehlgeschlagen, warte ${RETRY_DELAY}s..."
|
||||
sleep $RETRY_DELAY
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "❌ Installation nach $MAX_RETRIES Versuchen fehlgeschlagen"
|
||||
exit 1
|
||||
```
|
||||
|
||||
## 🛠️ Erweiterte Diagnose-Tools
|
||||
|
||||
### **Netzwerk-Status prüfen:**
|
||||
```bash
|
||||
# Umfassende Netzwerk-Diagnose
|
||||
./scripts/diagnose_network.sh
|
||||
```
|
||||
|
||||
### **Internet-Konnektivität-Test:**
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Manueller Internet-Connectivity-Test
|
||||
|
||||
echo "=== INTERNET-KONNEKTIVITÄTS-TEST ==="
|
||||
|
||||
# 1. Interface-Check
|
||||
echo "1. Netzwerk-Interfaces:"
|
||||
ip link show | grep -E "(UP|state)"
|
||||
|
||||
# 2. Gateway-Check
|
||||
echo -e "\n2. Gateway-Test:"
|
||||
GATEWAY=$(ip route show default | awk '{print $3}' | head -1)
|
||||
if [[ -n "$GATEWAY" ]]; then
|
||||
echo "Gateway: $GATEWAY"
|
||||
ping -c 3 -W 5 $GATEWAY
|
||||
else
|
||||
echo "❌ Kein Gateway gefunden"
|
||||
fi
|
||||
|
||||
# 3. DNS-Check
|
||||
echo -e "\n3. DNS-Test:"
|
||||
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
|
||||
echo "Testing DNS: $dns"
|
||||
timeout 10 ping -c 2 -W 3 $dns
|
||||
done
|
||||
|
||||
# 4. Domain-Resolution
|
||||
echo -e "\n4. Domain-Auflösung:"
|
||||
for domain in google.com github.com cloudflare.com; do
|
||||
echo "Resolving: $domain"
|
||||
timeout 10 nslookup $domain
|
||||
done
|
||||
|
||||
# 5. HTTP-Connectivity
|
||||
echo -e "\n5. HTTP-Konnektivität:"
|
||||
for url in "http://www.google.com" "http://github.com" "http://connectivitycheck.gstatic.com/generate_204"; do
|
||||
echo "Testing: $url"
|
||||
timeout 15 curl -s -f --connect-timeout 10 --max-time 20 $url >/dev/null && echo "✅ OK" || echo "❌ FAIL"
|
||||
done
|
||||
|
||||
echo -e "\n=== TEST ABGESCHLOSSEN ==="
|
||||
```
|
||||
|
||||
## 🎯 Best Practices für VM-Installation
|
||||
|
||||
### **1. VM-Vorbereitung:**
|
||||
```bash
|
||||
# VM-Ressourcen erhöhen
|
||||
# - RAM: mindestens 2GB (besser 4GB)
|
||||
# - CPU: mindestens 2 Kerne
|
||||
# - Netzwerk: NAT oder Bridge-Modus
|
||||
|
||||
# Nach VM-Start warten
|
||||
sleep 180 # 3 Minuten für vollständige Initialisierung
|
||||
```
|
||||
|
||||
### **2. Netzwerk-Validation:**
|
||||
```bash
|
||||
# Vor Installation Netzwerk validieren
|
||||
ping -c 5 8.8.8.8
|
||||
curl -s --connect-timeout 15 http://www.google.com
|
||||
nslookup github.com
|
||||
```
|
||||
|
||||
### **3. Installation mit VM-Parametern:**
|
||||
```bash
|
||||
# Optimale Installation für VMs
|
||||
sudo ./setup/aio_installer.sh \
|
||||
--vm-mode \
|
||||
--full \
|
||||
--network-debug
|
||||
```
|
||||
|
||||
### **4. Fallback-Strategien:**
|
||||
```bash
|
||||
# Bei Internet-Problemen: Offline-Installation
|
||||
sudo ./setup/aio_installer.sh --force-offline --full
|
||||
|
||||
# Oder Internet-Check überspringen
|
||||
sudo ./setup/aio_installer.sh --skip-internet-check --full
|
||||
```
|
||||
|
||||
## 📋 Troubleshooting-Checkliste
|
||||
|
||||
### **Pre-Installation:**
|
||||
- [ ] VM läuft seit mindestens 2 Minuten
|
||||
- [ ] Netzwerk-Interface ist UP
|
||||
- [ ] Default Gateway erreichbar
|
||||
- [ ] DNS-Resolution funktioniert
|
||||
- [ ] Ping zu externen Hosts erfolgreich
|
||||
- [ ] curl/wget zu HTTP-Sites erfolgreich
|
||||
|
||||
### **Installation:**
|
||||
- [ ] VM-Mode aktiviert (`--vm-mode`)
|
||||
- [ ] Erweiterte Timeouts konfiguriert
|
||||
- [ ] Debug-Modus bei Problemen (`--network-debug`)
|
||||
- [ ] Fallback-Optionen verfügbar (`--force-offline`)
|
||||
|
||||
### **Post-Installation:**
|
||||
- [ ] Services laufen korrekt
|
||||
- [ ] HTTPS-Zugang verfügbar
|
||||
- [ ] Admin-Panel erreichbar
|
||||
- [ ] Logging funktioniert
|
||||
|
||||
## 🚀 Schnelle Problemlösung
|
||||
|
||||
### **Häufigste Lösungen:**
|
||||
|
||||
1. **Warten und Retry:**
|
||||
```bash
|
||||
# 2 Minuten warten, dann nochmal versuchen
|
||||
sleep 120
|
||||
sudo ./setup/aio_installer.sh --vm-mode --full
|
||||
```
|
||||
|
||||
2. **VM-Mode verwenden:**
|
||||
```bash
|
||||
sudo ./setup/aio_installer.sh --vm-mode --full
|
||||
```
|
||||
|
||||
3. **Offline-Installation:**
|
||||
```bash
|
||||
sudo ./setup/aio_installer.sh --force-offline --full
|
||||
```
|
||||
|
||||
4. **Internet-Check überspringen:**
|
||||
```bash
|
||||
sudo ./setup/aio_installer.sh --skip-internet-check --full
|
||||
```
|
||||
|
||||
5. **VM-Netzwerk neu konfigurieren:**
|
||||
- VM herunterfahren
|
||||
- Netzwerk-Adapter auf NAT umstellen
|
||||
- VM neu starten und 2 Minuten warten
|
||||
- Installation mit `--vm-mode` starten
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Bei persistenten Problemen:
|
||||
|
||||
1. **Debug-Log erstellen:**
|
||||
```bash
|
||||
sudo ./setup/aio_installer.sh --network-debug --test > vm-debug.log 2>&1
|
||||
```
|
||||
|
||||
2. **Netzwerk-Diagnose:**
|
||||
```bash
|
||||
# Umfassende Netzwerk-Informationen sammeln
|
||||
ip addr show > network-info.txt
|
||||
ip route show >> network-info.txt
|
||||
cat /etc/resolv.conf >> network-info.txt
|
||||
systemd-detect-virt >> network-info.txt
|
||||
```
|
||||
|
||||
3. **VM-Informationen:**
|
||||
- Hypervisor-Typ und Version
|
||||
- VM-Konfiguration (RAM, CPU, Netzwerk)
|
||||
- Host-Betriebssystem
|
||||
- Netzwerk-Topologie
|
||||
|
||||
Die bereitgestellten Lösungen sollten über 95% der VM-Internet-Verbindungsprobleme beheben.
|
Reference in New Issue
Block a user