In diesem Szenario gibt es drei Computer:
- Desktop A: [email protected]
- Laptop A: [email protected]
- Maschine B: [email protected]
Alle Maschinen haben Ubuntu 11.04 (Desktop A ist eine 64-Bit-Version) und haben sowohl einen openssh-Server als auch einen openssh-Client.
Wenn ich nun versuche, Desktop A mit Laptop A zu verbinden oder umgekehrt, ssh [email protected]
erhalte ich eine Fehlermeldung als
port 22: No route to host
in beiden Fällen.
Ich besitze beide Computer. Wenn ich jetzt dieselben Befehle auf dem Computer meines Freundes ausprobiere, z. B. über Desktop B, kann ich sowohl auf meinen Laptop als auch auf den Desktop zugreifen. Aber wenn ich versuche, von meinem Laptop oder über den Desktop auf Desktop B zuzugreifen, erhalte ich
port 22: Connection timed out
Ich habe sogar versucht, die SSH-Portnummer zu ändern. in ssh_config
Datei aber kein Erfolg.
Hinweis : "Laptop A" verwendet eine WiFi-Verbindung, während "Maschine A" eine Ethernet-Verbindung verwendet und sich "Maschine B" in einem völlig anderen Netzwerk befindet.
@Lekensteyn Hier ist es ->
Laptop A && Desktop A -> Router / Nano_Rcvr von ISP zur Verfügung gestellt. An einen Router sind also zwei Maschinen angeschlossen, auf die gleichzeitig zugegriffen werden kann. Hier ist meine Ausgabe von ifconfig für beide Maschinen: - Laptop
wlan0
Link encap:Ethernet HWaddr X:X:X:X:00:bc
inet addr:1.23.73.111 Bcast:1.23.95.255 Mask:255.255.224.0
inet6 addr: fe80::219:e3ff:fe04:bc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:108409 errors:0 dropped:0 overruns:0 frame:0
TX packets:82523 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:44974080 (44.9 MB) TX bytes:22973031 (22.9 MB)
Desktop
eth0
Link encap:Ethernet HWaddr X:X:X:X:c5:78
inet addr:1.23.68.209 Bcast:1.23.95.255 Mask:255.255.224.0
inet6 addr: fe80::227:eff:fe04:c578/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10380 errors:0 dropped:0 overruns:0 frame:0
TX packets:4509 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1790366 (1.7 MB) TX bytes:852877 (852.8 KB)
Interrupt:43 Base address:0x2000
Ausgabe von ip route show
1.23.64.0/19 dev wlan0 proto kernel scope link src 1.23.73.111 metric 2
169.254.0.0/16 dev wlan0 scope link metric 1000
Ausgabe von traceroute -n 1.23.73.111
traceroute to 1.23.73.111 (1.23.73.111), 30 hops max, 60 byte packets
1 1.23.68.209 3008.787 ms !H 3008.786 ms !H 3008.784 ms !H
ping 192.168.x.x
Antworten:
Die Routen sehen gut aus. Ich gehe davon aus, dass diese IP-Adressen privat (LAN) und nicht öffentlich zugänglich sind.
Da Sie auf unterschiedliche Art und Weise mit dem Netzwerk verbunden sind (WLAN / WLAN), hat Ihr Router mit hoher Wahrscheinlichkeit Kabel- / WLAN-Netzwerke getrennt. Versuchen Sie, beide über eine kabelgebundene (oder kabellose) Verbindung miteinander zu verbinden. Eine andere Möglichkeit ist, dass eine Firewall auf den Ubuntu-Rechnern Verbindungen blockiert.
Andernfalls konfigurieren Sie Ihren Router so, dass für drahtlose und kabelgebundene Verbindungen dasselbe Netzwerk (Subnetz) verwendet wird. Stellen Sie außerdem sicher, dass der Router die Client-zu-Client-Kommunikation nicht blockiert.
Möglicherweise verwirft Ihr Router alle unerwünschten Pakete. Aus diesem Grund erhält Ihr Freund eine Meldung, dass die Zeit für die Verbindung abgelaufen ist, auf Ihrer öffentlichen IP-Adresse. Konfigurieren Sie die NAT-Portweiterleitung so, dass die Kombination aus öffentlicher IP-Adresse und Port an Ihre LAN-Adresse weitergeleitet wird.
Beispiel Netzwerk:
Richten Sie auf Router A die NAT-Weiterleitung ein:
Wenn Sie eine Firewall haben (
ufw
,iptables
, ...) auf den Maschinen eingestellt, um eingehenden Datenverkehr auf Port 22 (Desktop - A) und Port 2222 (Laptop A).Auf den Desktop kann jetzt mit SSH zugegriffen werden:
Auf den Laptop kann nun über SSH zugegriffen werden mit:
Wenn Sie auf den Computer Ihres Freundes zugreifen möchten, wenden Sie diese Anweisungen auf seinen Computer + Router an.
quelle
Ich hatte ein ähnliches Problem. Eine Maschine auf Draht eine drahtlose. Ich habe in meinem Router ein Häkchen neben "separate IPS für LAN und WLAN" gefunden und abgehakt. Jetzt kann ich mich am drahtlosen Computer anmelden. Davor bekam ich die Fehlermeldung "No route to host".
quelle
Aktivieren Sie das Kontrollkästchen ssh, während Sie RHEL installieren. Ich habe es nicht überprüft und verursachte das gleiche Problem. Bitte überprüfen Sie diesen Parameter
quelle
Ich habe das gleiche Problem jetzt selbst auf einem VPS, und es ist völlig seltsam, so etwas noch nie gesehen.
Ich bin ein erfahrener Serveradministrator und diese Art von Fehler ist normalerweise trocken und trocken.
Keine Route zum Host bedeutet, dass der Server nicht weiß, wie das Paket weitergeleitet wird (Routing-Tabelle, ich habe jedoch noch nie gesehen, dass es nur bei einem Protokoll und nicht bei einem anderen auftritt).
In meinem Fall.
Keine NAT-Internetverbindung. Kein IPTABLES-Ping funktioniert. Ich kann mich zu beiden Seiten der defekten IP mit der IP verbinden. Die kaputte IP zeigt an, dass auf keinem TCP-Port eine Route zum Host existiert.
Dies deutet darauf hin, dass entweder etwas in der Mitte den Fehlercode zurückgibt oder dass ein Fehler im Betriebssystem mit der Routingtabelle vorliegt.
Beachten Sie, dass der Fehler sofort und nicht verzögert auftritt, was bedeutet, dass die Zurückweisung lokal erfolgt. Aber das ist alles, was ich diagnostizieren kann.
quelle
Ich würde seltsamerweise diesen Fehler erhalten, selbst nachdem ich SSH erfolgreich zwischen meinem PC und Himbeer-Pi ausgeführt habe. Was es für mich behebt, ist das Ein- und Ausschalten von WLAN (sowohl Client als auch Host), das Neustarten Ihres Terminals und die Verwendung neuer IP-Adressen.
quelle
In meinem Fall gab es ein Docker-Netzwerk auf derselben CIDR wie mein VPN.
Ich habe den folgenden Befehl verwendet, um herauszufinden, welches Netzwerk ich verwendet habe, und habe es dann entfernt:
Danach hat es gut funktioniert.
quelle
Wenn Sie das Festplattenlaufwerk Ihres Systems geändert / ausgetauscht haben, entfernen Sie den Hostschlüssel aus der Datei .ssh / known_hosts und versuchen Sie erneut, eine Verbindung herzustellen.
quelle