SSH-Verbindungsproblem: Keine Verbindung zum Server möglich
Anleitung zur Behebung von SSH-Verbindungsproblemen: Path.net Firewall-Regeln, Default Block, Filterregel für SSH-Port erstellen und Fehlerbehebungsschritte.
Anleitung zur Diagnose von Port-Zugriffsproblemen mit netstat, ss, iptables, ufw und Dienstüberwachung.
Wenn Sie von außen nicht auf einen Dienst zugreifen können, der auf Ihrem Server läuft, liegt dies in der Regel an Port-Zugriffsproblemen. In dieser Anleitung erklären wir Ihnen ausführlich die Werkzeuge und Methoden zur systematischen Diagnose und Behebung von Port-Zugriffsproblemen.
Der ss-Befehl wird auf modernen Linux-Systemen zur Anzeige von Socket-Statistiken verwendet:
# Alle lauschenden TCP-Ports auflisten
ss -tlnp
# Alle lauschenden UDP-Ports auflisten
ss -ulnp
# Bestimmten Port prüfen
ss -tlnp | grep :80
ss -tlnp | grep :443
ss -tlnp | grep :3306
# Alle Verbindungen anzeigen (lauschend + verbunden)
ss -tanp
# Detaillierte Socket-Informationen
ss -tlnp -e
# Beispielausgabe:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=5678,fd=6))
LISTEN 0 128 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=9012,fd=22))
| Feld | Beschreibung |
|---|---|
| State LISTEN | Port lauscht aktiv |
| 0.0.0.0:port | Von allen Schnittstellen erreichbar |
| 127.0.0.1:port | Nur von localhost erreichbar |
| Process | Prozessinformation des lauschenden Dienstes |
Wenn ein Dienst auf 127.0.0.1 lauscht, ist er von außen nicht erreichbar. Sie müssen die bind-address- oder listen-Direktive in der Dienstkonfiguration auf 0.0.0.0 ändern.
# Alle lauschenden Ports auflisten
netstat -tlnp
# Alle Ports einschließlich UDP
netstat -tulnp
# Bestimmten Port prüfen
netstat -tlnp | grep :8080
# Verbindungsanzahl anzeigen
netstat -an | grep :80 | wc -l
# Alle Regeln auflisten
sudo iptables -L -n -v
# INPUT-Kette prüfen
sudo iptables -L INPUT -n -v --line-numbers
# NAT-Tabelle prüfen
sudo iptables -t nat -L -n -v
# Nach Regeln für bestimmten Port suchen
sudo iptables -L -n -v | grep 80
# TCP-Port 80 öffnen
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# TCP-Port 443 öffnen
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Port-Zugriff von bestimmter IP
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT
# Port-Bereich öffnen
sudo iptables -A INPUT -p tcp --dport 8000:9000 -j ACCEPT
# Regeln speichern
sudo iptables-save > /etc/iptables/rules.v4
sudo netfilter-persistent save
# UFW-Status prüfen
sudo ufw status verbose
# Nummerierte Regeln auflisten
sudo ufw status numbered
# Ports öffnen
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8080/tcp
# Port-Zugriff von bestimmter IP
sudo ufw allow from 192.168.1.100 to any port 3306
# Port-Bereich öffnen
sudo ufw allow 8000:9000/tcp
# Regel löschen
sudo ufw delete allow 8080/tcp
# UFW aktivieren
sudo ufw enable
# UFW neu laden
sudo ufw reload
# Aktive Zone prüfen
sudo firewall-cmd --get-active-zones
# Alle Regeln auflisten
sudo firewall-cmd --list-all
# Port öffnen (temporär)
sudo firewall-cmd --add-port=80/tcp
# Port öffnen (permanent)
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
server {
listen 80; # Auf allen Schnittstellen lauschen
listen [::]:80; # Einschließlich IPv6
server_name example.com;
}
[mysqld]
bind-address = 0.0.0.0 # Auf allen Schnittstellen lauschen
# bind-address = 127.0.0.1 # Nur localhost (Standard, sicher)
port = 3306
listen_addresses = '*' # Alle Schnittstellen
port = 5432
bind 0.0.0.0
port 6379
protected-mode yes
requirepass STARKES_PASSWORT
Verwenden Sie beim Freigeben von Datenbank- und Cache-Diensten nach außen immer starke Passwörter und IP-Beschränkungen.
# Remote-Port-Test vom lokalen Rechner
nc -zv SERVER_IP 80
nc -zv SERVER_IP 443
# Detaillierter Port-Scan mit nmap
nmap -p 80,443,3306,5432,6379 SERVER_IP
# Dienstversionserkennung
nmap -sV -p 80,443 SERVER_IP
# HTTP-Port-Test mit curl
curl -I http://SERVER_IP:80
Auf REXE-Servern sind alle Ports offen, solange eine IP keine einzige Regel hat. Sobald Ihre IP mindestens eine Regel hat, wird automatisch Default Block aktiviert und nur die erlaubten Ports bleiben offen. Um externen Zugriff auf Ihren Dienst zu ermöglichen, müssen Sie eine Filterregel für den entsprechenden Port im Path Panel erstellen:
1. Melden Sie sich im Path Panel an (x.rexe.tr)
2. Klicken Sie auf die entsprechende IP-Adresse
3. Klicken Sie auf "Neue Regel hinzufügen"
4. Protokoll: TCP (oder UDP)
5. Richtung: Symmetric (bidirektional)
6. Zielport: Der Port, den Sie öffnen möchten
7. Aktion: Allow
8. Speichern Sie die Regel und warten Sie auf den propagated-Status
Auch wenn die Regel im Panel noch als nicht verteilt (nicht aktualisiert) angezeigt wird, wurde die Regel höchstwahrscheinlich bereits innerhalb von 2-5 Minuten ausgerollt. Der Status kann sich verzögert aktualisieren – etwa wegen des Statusabfrage-Intervalls des Panels oder der Zeit, die die Regel benötigt, um auf der Path-Seite auf allen Nodes (außer unserem) angewendet zu werden. Dies ist nur eine visuelle Verzögerung im Panel; der Port ist im System tatsächlich bereits geöffnet.
#!/bin/bash
PORT=$1
SERVER_IP=$2
if [ -z "$PORT" ] || [ -z "$SERVER_IP" ]; then
echo "Verwendung: $0 <port> <server_ip>"
exit 1
fi
echo "=== Port $PORT Zugriffsprüfung ==="
echo -e "\n[1] Dienst-Lausch-Prüfung:"
ss -tlnp | grep ":$PORT" || echo "Port $PORT lauscht nicht!"
echo -e "\n[2] Firewall-Prüfung:"
if command -v ufw &> /dev/null; then
sudo ufw status | grep "$PORT"
else
sudo iptables -L -n | grep "$PORT"
fi
echo -e "\n[3] Externer Zugriffstest:"
nc -zv -w 5 $SERVER_IP $PORT 2>&1
echo -e "\n=== Prüfung abgeschlossen ==="
| Problem | Ursache | Lösung |
|---|---|---|
| Port lauscht nicht | Dienst läuft nicht | systemctl start dienstname |
| Lauscht auf 127.0.0.1 | Bind-Adresse ist localhost | In Konfiguration auf 0.0.0.0 ändern |
| Firewall blockiert | Keine Port-Regel | Port mit iptables/ufw/firewalld öffnen |
| Path Panel blockiert | Keine Filterregel | Regel im Path Panel erstellen |
| Connection refused | Dienst-Port geändert | Dienstkonfiguration prüfen |
Um Port-Zugriffsprobleme zu lösen, müssen Sie eine dreischichtige Prüfung durchführen: Dienst-Lausch-Status, Server-Firewall-Regeln und REXE Path Panel-Regeln. Stellen Sie zunächst sicher, dass der Dienst auf dem richtigen Port und der richtigen Schnittstelle lauscht, prüfen Sie dann die Firewall-Regeln und erstellen Sie schließlich die erforderlichen Regeln im Path Panel.
Drei mögliche Gründe: 1) Der Dienst lauscht möglicherweise auf 127.0.0.1 (ändern Sie auf 0.0.0.0), 2) Die Server-Firewall blockiert möglicherweise den Port (öffnen Sie mit iptables/ufw), 3) Es gibt möglicherweise keine Filterregel im REXE Path Panel (erstellen Sie eine Regel).
ss (Socket Statistics) hat netstat auf modernen Linux-Systemen ersetzt. Es läuft schneller und liefert detailliertere Informationen. netstat kann auf älteren Systemen noch verwendet werden, aber ss wird auf neueren Systemen bevorzugt.
UFW basiert tatsächlich auf iptables. Beide gleichzeitig manuell zu verwalten kann zu Verwirrung führen. Es wird empfohlen, eines auszuwählen und konsistent zu verwenden.
Direkte Freigabe stellt ein Sicherheitsrisiko dar. Verwenden Sie starke Passwörter, fügen Sie IP-Beschränkungen hinzu und greifen Sie wenn möglich über SSH-Tunnel oder VPN zu.
Es kann 2-5 Minuten dauern, bis die Regel den propagated-Status erreicht. Stellen Sie außerdem sicher, dass die serverseitige Firewall den Port ebenfalls geöffnet hat. Path Panel und Server-Firewall arbeiten unabhängig voneinander.
Anleitung zur Behebung von SSH-Verbindungsproblemen: Path.net Firewall-Regeln, Default Block, Filterregel für SSH-Port erstellen und Fehlerbehebungsschritte.
Anleitung zur Behebung von RDP-Verbindungsproblemen: Path.net Firewall-Regeln, Default Block, Filterregel für RDP-Port erstellen und Fehlerbehebungsschritte.
Anleitung zum Netzwerktest mit WinMTR und Linux MTR, ICMP-Filterregel erstellen und Ergebnisse an das Support-Team senden. Paketverlust und Latenz diagnostizieren.