GNU/Linux >> LINUX-Kenntnisse >  >> Linux

SSH-Verbindung aus dem LAN verweigert?

Ich verwende Fedora 19 und habe ein Problem mit ssh .

Ssh ist in Betrieb und ich kann mich verbinden, wenn ich meine Lan-IP eingebe. Aber wenn ich versuche, meinen Servernamen (blahblah.no-ip.org ) Ich bekomme eine Verbindung abgelehnt. No-ip läuft bereits als Dienst und funktioniert ordnungsgemäß (sendet die richtige IP).

Ich habe auf meinem Router bereits eine Portweiterleitung eingerichtet, außerdem habe ich den Port von ssh geändert sowohl beim Dienst als auch bei der Router-Portweiterleitung (falls mein geliebter ISP beschlossen hat, diese Ports zu blockieren). Aber ich bekomme immer noch eine Verbindung abgelehnt und wenn ich nmap Beim Hostnamen sehe ich, dass der SSH-Port geschlossen ist.

Eines jedoch:Ich habe zwei PCs unter derselben externen IP (ich habe die Portweiterleitung auf die richtige interne IP eingerichtet). Wenn ich nmap blahblah.no-ip.org Ich bekomme einen Port 23 und 80 offen. 80 scheint in Ordnung zu sein, aber ich habe den Telnet-Dienst auf meinem Computer noch nie gestartet.

Irgendwelche Ideen, was man noch versuchen könnte? Router ist zte zxv10 und die Portweiterleitung ist korrekt eingerichtet. Ich sage das, weil ich die Portweiterleitung bereits für Deluge eingerichtet habe und sie ordnungsgemäß funktioniert.

Akzeptierte Antwort:

Es ist nicht möglich, innerhalb desselben LANs eine Verbindung zu einer öffentlichen IP-Adresse mit Portweiterleitung herzustellen. Um das zu erklären, brauche ich ein Beispiel.

Nehmen wir an, die private IP Ihres Routers ist 192.168.1.1 mit der öffentlichen IP 10.1.1.1. Ihr Server befindet sich auf 192.168.1.2 Port 2222. Sie richten eine Portweiterleitung von 10.1.1.1:1111 auf 192.168.1.2:2222 ein.

Wenn jemand im Internet (10.3.3.3) mit Ihnen sprechen möchte, generiert er ein Paket:

Source: 10.3.3.3 port 33333
Dest:   10.1.1.1 port 1111

Ihr Router empfängt das Paket auf 10.1.1.1 und schreibt es um:

Source: 10.3.3.3 port 33333
Dest:   192.168.1.2 port 2222

Ihr Server empfängt dieses Paket und sendet eine Antwort:

Source: 192.168.1.2 port 2222
Dest:   10.3.3.3 port 33333

Ihr Router empfängt dieses Paket auf 192.168.1.1 und schreibt es um:

Source: 10.1.1.1 port 1111
Dest:   10.3.3.3 port 33333

Und die Verbindung funktioniert, und alle sind glücklich.

Angenommen, Sie verbinden sich von innerhalb Ihres LANs (192.168.1.3). Sie generieren ein Paket:

Source: 192.168.1.3 port 33333
Dest:   10.1.1.1 port 1111

Ihr Router empfängt das Paket auf 10.1.1.1 und schreibt es um:

Source: 192.168.1.3 port 33333
Dest:   192.168.1.2 port 2222

Ihr Server empfängt dieses Paket und sendet eine Antwort:

Source: 192.168.1.2 port 2222
Dest:   192.168.1.3 port 33333

Hier stoßen wir auf ein Problem. Da sich die Ziel-IP in Ihrem LAN befindet, sendet Ihr Server dieses Paket nicht zum Umschreiben an den Router. Stattdessen sendet es es direkt an 192.168.1.3. Aber diese Maschine erwartet keine Antwort von 192.168.1.2 Port 2222. Sie erwartet eine von 10.1.1.1 Port 1111. Und so weigert sie sich, auf dieses „falsche“ Paket zu hören, und die Dinge funktionieren nicht.

Verwandte:SSH 7.4 verlängerte Pause bei „pledge:network“?

Um dies zu umgehen, konfiguriere ich meinen Router (der auch DNS für mein LAN bereitstellt) so, dass er die private IP-Adresse meines Servers zurückgibt, wenn ich meinen DDNS-Hostnamen nachschlage. Auf diese Weise verbinde ich mich in meinem Heimnetzwerk direkt mit dem Server und überspringe die Portweiterleitung. (Diese Lösung funktioniert nur, wenn Ihre Portweiterleitungen nicht die Portnummer, sondern nur die IP-Adresse ändern. Und Sie können nur 1 Server pro öffentlichem Hostnamen haben.)


Linux
  1. Fix ::Linux SSH-Fehlerverbindung abgelehnt

  2. SSH-Verbindung vom TCP-Wrapper abgelehnt

  3. Verbindung zu MongoDB Fehler Nr. 111 abgelehnt

  4. SSH:connect to host localhost port 22:Verbindung abgelehnt

  5. Sollte ich den Standard-SSH-Port auf Linux-Servern ändern?

So beheben Sie den Fehler „SSH-Verbindung abgelehnt“.

Ssh-Portweiterleitung, um von überall auf den Heimcomputer zuzugreifen?

So ändern Sie den SSH-Port in CentOS

Verbindung zum Host localhost Port 22 herstellen:Verbindung abgelehnt

Führen Sie ein Shell-Skript über den Befehl docker-compose im Container aus

Zugriff auf den DNAT-Webserver aus dem LAN heraus