Normalerweise bedeutet dies, dass Sie den Port an die falsche IP-Adresse im LAN weitergeleitet haben.
Standardmäßig filtert Ubuntu eingehende Verbindungsversuche mit einer Firewall nicht. Wenn Sie also die Firewall-Einstellungen in Ubuntu nicht geändert haben, wird beim Versuch, eine Verbindung zu einem beliebigen TCP-Port (1 bis 65535) herzustellen, entweder Folgendes ausgeführt:
Das verursacht genau die Situation, die Sie beschrieben haben. Sie können dies also höchstwahrscheinlich beheben, indem Sie sicherstellen, dass der Port an die richtige IP-Adresse im LAN weitergeleitet wird.
... dann müssen Sie eine Fehlerbehebung durchführen.
Ist der für die LAN-Seite angegebene Port korrekt? Angenommen, Sie haben die Konfiguration des SSH-Servers nicht geändert. Ist Port 57757 auf der WAN-Seite so eingestellt, dass er an Port 22 auf dem OpenSSH-Server weitergeleitet wird? (Möglicherweise möchten Sie dies noch einmal überprüfen.)
Möglicherweise liegt ein Problem mit dem von Ihnen ausgewählten Port vor (57757). Versuchen Sie es mit einem anderen und sehen Sie, ob das besser funktioniert.
(Wenn dies nicht der Fall ist und Sie mit diesen Anweisungen fortfahren, ändern Sie sie entweder zurück oder ersetzen Sie "57757" unten durch die neue Nummer.)
Starten Sie den OpenSSH-Server neu. Dies kann hilfreich sein, wenn ein Netzwerkproblem vorliegt. Wenn dies nicht hilft, starten Sie auch den Router und das Kabel- / DSL- / ISDN-Modem neu.
Wenn Sie aus irgendeinem Grund nicht alle drei Geräte neu starten können, empfehle ich, alles neu zu starten, was Sie können. Wenn Sie den OpenSSH-Dienst nicht neu starten können, können Sie zumindest den Dienst neu starten und (mit größerer Wahrscheinlichkeit das Problem beheben) die Schnittstelle herunterfahren und erneut aufrufen.
So starten Sie den OpenSSH-Server neu:
sudo restart ssh
Um die Netzwerkschnittstelle herunterzufahren, müssen Sie zunächst herausfinden, auf welcher Schnittstelle sie sich befindet:
ifconfig
Bei einem Computer mit einer einzelnen Ethernet-Karte und / oder einer einzelnen drahtlosen Karte ist das Ethernet normalerweise eth0
und das drahtlose ist wlan0
.
Wenn Sie die kabelgebundene Ethernet-Verbindung abbauen und neu starten möchten, führen Sie Folgendes aus:
sudo ifdown eth0
Dann renne:
sudo ifup eth0
Alternativ können Sie Folgendes ausführen:
sudo ifconfig eth0 down
Gefolgt von:
sudo ifconfig eth0 up
Wenn der Computer NetworkManager zum Verwalten der Schnittstelle verwendet, auf der der OpenSSH-Server ausgeführt wird, empfehle ich weiterhin, die oben genannten Methoden auszuprobieren. Sie können jedoch auch versuchen, die Verbindung in NetworkManager zu trennen und erneut herzustellen.
Versuchen Sie bei einer Ethernet-Verbindung auch, das Kabel abzuziehen und wieder anzuschließen. Bei einer drahtlosen Verbindung versuchen Sie, es mit dem Hardware-Schalter (falls vorhanden) auszuschalten und wieder einzuschalten.
Hier passiert etwas Seltsames, und nichts davon dauert sehr lange - es lohnt sich, gründlich zu sein, bevor Sie weitere sorgfältige Schritte zur Fehlerbehebung unternehmen.
Wie versuchen Sie, von der WAN-Seite darauf zuzugreifen? Wenn Sie dazu einen Computer im LAN verwenden (nur eine Verbindung vom LAN zur WAN-IP Ihres Routers herstellen), wird dies nur für einige Router unterstützt. Schließlich besteht die Aufgabe eines Routers darin, den Verkehr zwischen der WAN- und der LAN-Seite und nicht den Verkehr von einer Seite zu sich selbst zu leiten. Die Unterstützung für die Verbindung zu weitergeleiteten Ports auf der WAN-IP aus dem LAN heraus ist eher die Ausnahme als die Regel, obwohl viele Heim- / Büro-Router über diese Funktion verfügen.
Wenn Sie den Port also nicht von einem Host auf der WAN-Seite weiterleiten, sollten Sie dies tun. Ihre Optionen hierfür sind:
Verbinden Sie sich von der WAN-Seite. Dies funktioniert, wenn Sie dort Zugriff auf einen Computer haben, z. B. SSH-Zugriff auf einen Remote-Computer in der Schule, bei der Arbeit, im Haus eines Freundes oder ähnlichem.
Verbinden Sie den Testcomputer zwischen dem Router und dem Internetanbieter. Wenn Sie ein Kabel- / DSL- / ISDN-Modem mit einem Ethernet-Anschluss haben und Ihr Router daran angeschlossen ist, können Sie einen Switch an das Modem anschließen und den Router an den Switch anschließen. Schließen Sie einen Computer an den Switch an. Überprüfen Sie zunächst, ob dieser Computer nur über einen Internetzugang verfügt. Heutzutage bieten viele ISPs zwei oder mehr separate IP-Adressen an. Wenn dies nicht der Fall ist , rufen Sie die Setup-Seite Ihres Routers auf und überprüfen Sie die WAN-IP- und WAN-Subnetzmaske. Weisen Sie dann dem mit dem Switch verbundenen Computer, der sich im selben Subnetz befindet, statisch eine IP-Adresse zu.
Diese Methode hat einige Nachteile. Es ist nervig! Außerdem kann ein ISP sein Netzwerk theoretisch falsch konfigurieren, damit der mit dem Switch verbundene Testcomputer auf das Internet zugreifen kann. (Es sei denn, Ihr ISP beabsichtigt, Sie mit mehr als einer WAN-IP und zu verbindenSie haben zufällig eine WAN-IP für den Testcomputer ausgewählt, den Ihr ISP Ihnen zugewiesen hat. Der Datenverkehr zwischen diesem Computer und einem echten WAN-Host sollte vom ISP blockiert / gelöscht werden. Aber einige ISPs haben seltsame Praktiken, also wer weiß?) Wenn dies passiert, wird es wahrscheinlich niemandem ernsthafte Probleme bereiten (und selbst wenn dies der Fall ist, haben Sie es nur für ein paar Minuten angeschlossen). Dies kann jedoch möglicherweise als Versuch angesehen werden, zusätzlichen Zugriff über die Grenzen Ihres Abonnements hinaus zu erhalten, und - was noch wichtiger ist - wenn ein anderer Benutzer dieselbe IP-Adresse hat, kann dies die Verbindung beeinträchtigen. Daher, wenn Sie diese Methode ausprobieren möchtenVersuchen Sie nicht, vom Testgerät aus auf das Internet zuzugreifen. Halten Sie sofort an, wenn Sie feststellen, dass das Testgerät auf das Internet zugreifen kann, und versuchen Sie dies überhaupt nicht, wenn dies von Ihrem Internetdienstanbieter verboten oder empfohlen wird. (Und verwenden Sie dies nicht, wenn die WAN-Seite Ihres Routers ein Office-LAN ist, ohne vorher Ihren Netzwerkadministrator zu konsultieren. Dies ist kein ISP und es wird nicht davon ausgegangen, dass Ressourcen bereitgestellt werden, um unerwünschten Zugriff zu verhindern.)
Es gibt eine Variation dieser Technik, die manchmal angemessener ist. Ihr Router erhält wahrscheinlich seine Verbindungsinformationen - IP-Adresse, Subnetzmaske, IP-Adresse des Gateways (Routers) im WAN, das er verwendet, wenn er nicht weiß, wohin er etwas senden soll, und Informationen zu DNS-Servern - von Ihrem Router ISP über DHCP über das Kabel- / DSL- / ISDN-Modem. Aus diesem Grund muss der Router an das Modem angeschlossen sein, damit er die erforderliche Konfiguration erhält, damit die Ergebnisse der WAN-seitigen Tests aussagekräftig sind. Der Router speichert diese Informationen jedoch normalerweise, solange sie tatsächlich mit einem Netzwerk auf der WAN-Seite verbunden sind. So können Sie den Router, das Modem und den Testcomputer anschließen, aber dann schnell undTrennen Sie das Modem, bevor Sie mit dem Testgerät etwas anderes tun, als sicherzustellen, dass der Switch es als verbunden ansieht.
Verwenden Sie einen kostenlosen Dienst im Internet, um Ihre Ports zu testen. Da das Einfügen eines Testcomputers zwischen der WAN-Schnittstelle Ihres Routers und dem Internet (oben) sehr aufwändig ist - und ein Port als zugänglich angezeigt wird, auch wenn er nicht erreichbar ist, weil er von Ihrem Internetdienstanbieter blockiert wurde (was auch für die Verbindung mit dem Internetdienstanbieter gilt) WAN-IP des Routers von der LAN-Seite) - In der Regel ist es besser, einen webbasierten Port-Scan-Dienst zu verwenden.
Es gibt viele Port-Scan-Dienste. (Einige verwenden den Ausdruck "Überprüfen Sie Ihre Firewall" mit der Idee, dass die meisten Leute versuchen, den Zugriff zu blockieren, anstatt ihn zu erleichtern .) Dies ist einer. Wenn Sie sich entscheiden , dass man verwenden, klicken Sie auf Gehen , 57757 in das Textfeld ein, und klicken Sie auf Verwenden angegebene benutzerdefinierte Port - Probe . Für die Zwecke des Erhaltens eines Server ausgeführt werden , Sie wollen es als „offen“ . "Geschlossen" bedeutet, dass auf den Port zugegriffen werden kann, der Server jedoch nicht ausgeführt wird (und daher der Verbindungsversuch abgelehnt wurde). "Stealth" bedeutet, dass auf den Port nicht zugegriffen werden konnte - es ist, als ob sich dort kein Computer befindet (oder als ob der Port weitergeleitet würde, wo kein Computer vorhanden ist).
OK, Sie haben also festgestellt, dass das Internet wirklich nicht zugänglich ist. Möglicherweise können Sie es scannen (idealerweise von der WAN-Seite), um Details zu erhalten, obwohl dies häufig keine hilfreichen Informationen liefert.
Wenn Sie dies tun möchten, können Sie auf der WAN-Seite Folgendes ausführen:
sudo nmap -sS -sV -p57757 -vv WAN-IP
Wenn der Port als gefiltert angezeigt wird, bestätigt dies, dass dort gesendete Pakete wahrscheinlich nirgendwo hingehen (oder auf dem Weg blockiert / verworfen werden).
Es lohnt sich zu überprüfen, ob das Problem darauf zurückzuführen ist, dass sich der dem WAN zugängliche Port von dem Port unterscheidet, den der Server tatsächlich überwacht. Wenn Sie Port 55757 im WAN an Port 22 auf dem LAN-Computer weiterleiten, sollte dies einwandfrei funktionieren, aber möglicherweise wird irgendwo (auf dem Server, dem Client) davon ausgegangen, dass die Portnummer aus Sicht des Servers und des Clients identisch ist.
Vermutlich können Sie Port 22 nicht über den Router weiterleiten. Vielleicht blockiert Ihr ISP diesen Port. Aber wenn du das kannst, mach das!
Andernfalls können Sie den OpenSSH-Server dazu bringen, Port 57757 tatsächlich abzuhören.
Sichern Sie dazu die Serverkonfigurationsdatei:
cd /etc/ssh
sudo cp sshd_config sshd_config.old
Dann bearbeiten Sie es:
gksu gedit sshd_config
Oder verwenden Sie einen Konsolentexteditor, wenn der Computer keine grafische Benutzeroberfläche hat:
sudo nano -w sshd_config
Am oberen Rand der Datei wird dieser Textblock angezeigt:
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
Ändern Sie einfach die Port 22
Zeile oben, um Port 57757
stattdessen zu sagen .
Sie können einen Port hinzufügen, anstatt ihn zu ändern. Ich empfehle jedoch, mit der einfachsten effektiven Konfiguration zu testen.
Sehen Sie man sshd_config
für weitere Informationen über den OpenSSH - Server zu konfigurieren.
Speichern Sie die Datei, beenden Sie den Texteditor und starten Sie den SSH-Server neu mit:
sudo restart ssh
Ändern Sie nun den Port Forward am Router, sodass Port 57757 an Port 57757 (nicht 22) auf dem OpenSSH-Server weitergeleitet wird, und prüfen Sie, ob über das Internet auf ihn zugegriffen werden kann.
Wenn es immer noch nicht funktioniert, prüfen Sie, ob die Ubuntu-Firewall möglicherweise tatsächlich Datenverkehr blockiert, der von außerhalb des LAN stammt.
(Dies ist unwahrscheinlich, wenn Sie es nicht selbst auf diese Weise konfiguriert haben. Wenn jedoch alle Einstellungen korrekt sind und keiner der oben genannten Schritte etwas über das Problem aussagt, sollten Sie dies überprüfen.)
Lauf:
sudo iptables -L
In Ubuntu sieht die Ausgabe standardmäßig folgendermaßen aus:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Dies ist eine einfache zulässige Richtlinie, die im Wesentlichen dem Ausführen einer Firewall entspricht. (Wenn das Netfilter-Firewall-Modul nicht in Ihren Kernel kompiliert worden wäre, würde sich Ihr System genauso verhalten wie bei den obigen Einstellungen, obwohl der iptables
Befehl, der die netfilter
Einstellungen abfragt , natürlich nicht funktionieren würde.)
Wenn Ihre Konfiguration nicht so aussieht, lesen Sie, man iptables
um herauszufinden, was sie tun, und / oder bearbeiten Sie Ihre Frage (oder, wenn Sie eine andere Person mit einem ähnlichen Problem sind, lesen Sie eine neue Frage), um sie einzuschließen Sie. Bitte beachten Sie, dass Ihre iptables
Regeln möglicherweise vertrauliche Informationen zu Ihrer Konfiguration enthalten können. In der Praxis ist dies normalerweise nicht der Fall - mit der möglichen Ausnahme von Regeln für bestimmte blockierte Hosts oder wenn Ihre Konfiguration sehr schlecht / unsicher ist - normalerweise die Nützlichkeit dieser Informationen für einen Angreifer, insbesondere für einen eingeschalteten Computer Ein Heim- / Büro-LAN hinter einem NAT-Router ist minimal.