Kann intern SSH verwenden, aber nicht extern

Kann intern SSH verwenden, aber nicht extern

Ich habe einen Netgear C6300 (Firmware-Version 2.01.14) Router/Modem und versuche mit aller Kraft, mich extern per SSH mit meinem Raspberry Pi zu verbinden. Hier ist mein Port-Forwarding-Setup: Bildbeschreibung hier eingeben

Ich kann intern SSH verwenden ssh 192.168.0.84, aber extern auf canyouseeme.com erhalte ich die Meldung „Fehler: Ihr Dienst konnte auf Port (22) nicht angezeigt werden. Meine sshd_config enthält die Zeile Port 22und die ListenAddressZeilen sind auskommentiert. Mit anderen Worten, ich habe diese Datei nicht berührt. Was ist hier los?

Antwort1

Mir fallen mehrere Dinge ein.

TCPDie Weiterleitung in Ihrem Screenshot sieht in Ordnung aus. Sie könnten versuchen, sie auf statt einzustellen TCP/UDP, da SSH ein TCP-Protokoll ist.

dyndns

Sind Sie sicher, dass Sie den richtigen dynamisch aktualisierten Hostnamen oder Ihre richtige öffentliche IP-Adresse verwenden? Um Ihre öffentliche IP-Adresse herauszufinden, öffnen Sie eine Konsole auf dem Raspberry oder greifen Sie per SSH (intern) darauf zu und verwenden Sie curl icanhazip.com.

sshd_config

Stellen Sie in sicher /etc/ssh/sshd_config, dass sshd auf die richtige Schnittstelle hört, falls Sie mehrere haben. Kommentieren Sie die Zeile ListenAddress a.b.c.dmit einem aus #und starten Sie den Dienst neu ( /etc/init.d/sshd restartoder systemctl restart sshd, abhängig von Ihrer Distribution). Edit: Entschuldigung, das haben Sie bereits gesagt.

Bearbeiten:

Routenplanung

Wenn Sie von keine Ausgabe erhalten curl icanhazip.com, liegt dies wahrscheinlich daran, dass Ihr Raspberry nicht weiß, wie er ins Internet kommt. Er kann also nicht auf Ihren Verbindungsversuch von außen antworten. Fügen Sie eine Route hinzu, z. B. mit ip route add default via <your modem's IP address>und versuchen Sie es erneut.

iptables

Stellen Sie sicher, dass Ihre Raspberry-interne Firewall SSH von externen Adressen zulässt. iptables -Sgibt Ihnen eine Liste mit Regeln. Suchen Sie nach Zeilen wie

-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
# SSH only allowed from the internal network, if iptables policy INPUT is DROP

Lassen Sie in diesem Fall den gesamten eingehenden Datenverkehr mit oder iptables -P INPUT ACCEPTzu iptables -I INPUT -p tcp --dport 22 -j ACCEPT.

DS-Lite (Dual-Stack Lite)

Intern, in Ihrem Heimnetzwerk, verwenden Sie IPv4-Adressen. In Ihrem Beispiel 192.168.0.x. Ihr ISP verwendet in seinem Netzwerk jedoch möglicherweise IPv6. Der Router übersetzt Ihre IPv4-Adressen in IPv6. Dies führt normalerweise dazu, dass Sie von einem Remote-Zugriff auf Ihr Heimnetzwerk keine Verbindung herstellen können.

Wenn curl icanhazip.comSie beispielsweise eine IPv6-Adresse erhalten haben, 2001:a61::35:2könnte dies ein Hinweis sein. Außerdem zeigt Ihr C6300 möglicherweise Informationen dazu an. (Ich verwende eine AVM Fritz!Box 7360 und sie gibt explizit aus: „Fritz!Box verwendet einen DS-Lite-Tunnel“).

Um 100 % sicher zu sein, rufen Sie Ihren ISP an.

Bearbeiten:

Falls Sie sich hinter einem DS-Lite-Tunnel befinden, bieten sich folgende Möglichkeiten an, um dennoch von der Ferne eine Verbindung nach Hause herzustellen:

  • Bitten Sie Ihren Provider/ISP, Ihre Leitung auf eine Nicht-DS-Lite-Leitung umzustellen
  • Verwenden Sie es autossh, um Ihren Heimcomputer mit einem anderen Host zu verbinden, z. B. bei der Arbeit (fragen Sie vorher Ihren Arbeitgeber), Ihrem Webserver, Ihrem VPS. Konfigurieren Sie es autosshso, dass ein Reverse-Tunnel erstellt wird, z. B. . Dann können Sie per SSH auf yourvps.com zugreifen und von dort per SSH nach Hause gehen .ssh -R 10000:localhost:22 [email protected]ssh -p 10000 user@localhost

Bearbeiten:

Netgear C6300 speziell

In den Firmwares bis zur Firmware-Version 2.01.14 scheint ein Fehler vorzuliegen, der geöffnete Ports nur dann sichtbar macht, wenn die Option „Auf Ping am Internet-WAN-Port antworten“ unter „Erweiterte Konfiguration“ > „WAN-Setup“ aktiviert ist.

Netgear C6300 WAN-Einrichtung

verwandte Informationen