Di solito questo significa che hai inoltrato la porta all'indirizzo IP errato sulla LAN.
Per impostazione predefinita, Ubuntu non filtra i tentativi di connessione in entrata con un firewall. Quindi, a meno che tu non abbia modificato le impostazioni del firewall in Ubuntu, un tentativo di aprire una connessione a qualsiasi porta TCP, da 1 a 65535:
Ciò causa esattamente la situazione che hai descritto. Quindi molto probabilmente puoi risolvere questo problema assicurandoti che la porta venga inoltrata all'indirizzo IP corretto sulla LAN.
... allora dovrai fare un po 'di risoluzione dei problemi.
La porta specificata per il lato LAN è corretta? Cioè, supponendo che non sia stata modificata la configurazione del server SSH, la porta 57757 sul lato WAN è impostata per inoltrare alla porta 22 sul server OpenSSH? (Potresti voler ricontrollare questo.)
Forse c'è qualche problema con la porta specifica che hai scelto (57757). Provane uno diverso e vedi se funziona meglio.
(In caso contrario, e si procede con queste istruzioni, cambiarlo nuovamente o sostituire "57757" di seguito con il nuovo numero.)
Prova a riavviare il server OpenSSH. Ciò può essere utile in caso di problemi di rete. Se ciò non aiuta, prova a riavviare anche il router e il modem via cavo / DSL / ISDN.
Se per qualche motivo non riesci a riavviare tutti e tre i dispositivi, ti consiglio di riavviare il più possibile. Se non è possibile riavviare il servizio OpenSSH, almeno è possibile riavviare il servizio e (più probabilmente per risolvere questo problema) disattivare l'interfaccia e ripristinarla.
Per riavviare il server OpenSSH:
sudo restart ssh
Per disattivare l'interfaccia di rete, innanzitutto capire quale interfaccia è attiva:
ifconfig
In genere, per una macchina con una singola scheda Ethernet e / o una singola scheda wireless, Ethernet è eth0
e wireless è wlan0
.
Se la connessione Ethernet cablata è ciò che si desidera rimuovere e riavviare, eseguire:
sudo ifdown eth0
Quindi eseguire:
sudo ifup eth0
In alternativa, puoi eseguire:
sudo ifconfig eth0 down
Seguito da:
sudo ifconfig eth0 up
Se la macchina utilizza NetworkManager per gestire l'interfaccia su cui è in esecuzione il server OpenSSH, consiglio comunque di provare i modi sopra indicati, ma puoi anche provare a disconnetterti e riconnetterti in NetworkManager.
Per una connessione Ethernet, provare anche a scollegare il cavo e ricollegarlo. Per una connessione wireless, provare a spegnerlo con l'interruttore hardware (se presente) e riaccenderlo.
Qualcosa di strano sta succedendo qui e niente di tutto ciò richiede molto tempo - vale la pena essere accurati prima di intraprendere ulteriori scrupolosi passaggi per la risoluzione dei problemi.
Come stai tentando di accedervi dal lato WAN? Se stai utilizzando una macchina sulla LAN per farlo ( ti stai semplicemente connettendo dalla LAN all'IP WAN del tuo router), questo è supportato solo per alcuni router. Dopotutto, il compito di un router è instradare il traffico tra i lati WAN e LAN, non indirizzare il traffico da un lato a se stesso. Il supporto per la connessione a porte inoltrate sull'IP WAN dall'interno della LAN è in realtà l'eccezione piuttosto che la regola, sebbene molti router domestici / d'ufficio abbiano questa funzionalità.
Quindi, se non stai testando il port forwarding da un host sul lato WAN, dovresti farlo. Le tue opzioni per questo sono:
Connettiti dal lato WAN. Funziona se hai accesso a una macchina lì, ad esempio l'accesso SSH a una macchina remota a scuola, al lavoro, a casa di un amico o simile.
Connetti la macchina di prova tra il router e qualunque cosa fornisca la sua connessione Internet. Se si dispone di un modem via cavo / DSL / ISDN con una porta Ethernet e il router è collegato, è possibile collegare uno switch al modem e collegare il router allo switch. Collegare un computer allo switch. Per prima cosa vedi se quella macchina ottiene l'accesso a Internet: oggigiorno molti ISP forniscono due o più indirizzi IP separati. In caso contrario , vai alla pagina di configurazione del router e controlla la sua subnet IP e WAN , quindi assegna staticamente un indirizzo IP alla macchina connessa allo switch che si trova nella stessa sottorete.
Questo metodo presenta alcuni svantaggi. È un dolore! Inoltre, è teoricamente possibile per un ISP configurare la propria rete in modo errato in modo che la macchina di prova connessa allo switch possa accedere a Internet. (A meno che non sia intenzione del tuo ISP consentirti di connetterti con più di un IP WAN eti è capitato di aver scelto un IP WAN per la macchina di prova che il tuo ISP ti ha assegnato, il traffico tra esso e un vero host WAN dovrebbe essere bloccato / eliminato dall'ISP. Ma alcuni ISP hanno pratiche strane, quindi chi lo sa?) Se ciò accade, probabilmente non causerà a nessuno seri problemi (e anche se lo facesse, lo hai collegato solo per alcuni minuti). Tuttavia, potrebbe potenzialmente essere visto come un tentativo di ottenere un accesso aggiuntivo oltre i limiti dell'abbonamento e, cosa ancora più importante, se un altro utente ha lo stesso IP, potrebbe interferire con la propria connessione. Pertanto, se si desidera provare questo metodo, non provare ad accedere a Internet dalla macchina di prova, fermati immediatamente se trovi che la macchina di prova può accedere a Internet e non tentare affatto se è proibito o sconsigliato dal tuo ISP. (E non utilizzarlo se il lato WAN del router è una LAN per ufficio, senza prima consultare l'amministratore di rete. Non si tratta di un ISP e non si presume che vengano fornite risorse per impedire l'accesso indesiderato.)
C'è una variazione su questa tecnica che a volte è più appropriata. Il router probabilmente ottiene le informazioni di connessione - indirizzo IP, la subnet mask, l'indirizzo IP del gateway (router) sulla WAN che si utilizza quando non sa dove mandare qualcosa, e informazioni sui server DNS - dal ISP, tramite DHCP, tramite modem via cavo / DSL / ISDN. Questo è il motivo per cui è necessario che il router sia collegato al modem per fornire la configurazione necessaria per rendere significativi i risultati del test lato WAN. Ma il router in genere ricorderà queste informazioni, a condizione che siano effettivamente connesse a una rete sul lato WAN. Quindi puoi connettere il router, il modem e la macchina di prova, ma poi, rapidamente eprima di fare qualsiasi cosa con la macchina di prova oltre a verificare che l'interruttore lo veda come collegato , scollegare il modem.
Utilizza un servizio gratuito su Internet per testare le tue porte. Poiché l'inserimento di una macchina di prova tra l'interfaccia WAN del router e Internet (sopra) è fortemente coinvolto, e poiché mostrerà una porta come accessibile anche se inaccessibile a causa del blocco dell'ISP (che è anche vero per la connessione al IP WAN del router dal lato LAN) - di solito è meglio utilizzare un servizio di scansione delle porte basato sul Web.
Esistono molti servizi di scansione delle porte. (Alcuni mostrano la frase "controlla il tuo firewall" con l'idea che la maggior parte delle persone sta cercando di bloccare piuttosto che facilitare l' accesso.) Questa è una. Se si sceglie di utilizzarlo, fare clic su Procedi , digitare 57757 nella casella di testo e fare clic su Usa sonda porta personalizzata specificata . Ai fini dell'esecuzione di un server, si desidera che sia "aperto". "Chiuso" significa che la porta è accessibile ma il server non è in esecuzione (e quindi il tentativo di connessione è stato rifiutato). "Stealth" significa che la porta era inaccessibile - è come se nessuna macchina fosse localizzata lì (o come se la porta fosse inoltrata dove non c'è nessuna macchina).
OK, quindi hai determinato che non è davvero accessibile da Internet. Potenzialmente puoi scansionarlo (idealmente dal lato WAN) per ottenere dettagli, sebbene spesso questo non fornisca informazioni utili.
Se vuoi farlo, quindi sul lato WAN, puoi eseguire:
sudo nmap -sS -sV -p57757 -vv WAN-IP
Se la porta viene mostrata come filtrata, ciò conferma che i pacchetti inviati lì probabilmente non vanno da nessuna parte (o vengono bloccati / rilasciati lungo la strada).
Vale la pena verificare se il problema sorge dal fatto che la porta esposta alla WAN è diversa dalla porta su cui il server è effettivamente in ascolto. L'inoltro della porta 55757 sulla WAN alla porta 22 sulla macchina LAN dovrebbe far funzionare bene le cose, ma forse da qualche parte (il server, il client) qualcosa sta assumendo che il numero di porta sia lo stesso dal punto di vista del server e del client.
Presumibilmente non è possibile inoltrare la porta 22 attraverso il router. Forse il tuo ISP blocca quella porta. Ma se riesci a farlo, fallo!
Altrimenti, è possibile rendere il server OpenSSH effettivamente in ascolto sulla porta 57757.
Per fare ciò, eseguire il backup del file di configurazione del server:
cd /etc/ssh
sudo cp sshd_config sshd_config.old
Quindi modificalo:
gksu gedit sshd_config
Oppure utilizza un editor di testo della console se la macchina non ha una GUI:
sudo nano -w sshd_config
Nella parte superiore del file viene visualizzato questo blocco di testo:
# 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
Basta cambiare la Port 22
linea in alto, per dire Port 57757
invece.
È possibile aggiungere una porta anziché modificarla. Consiglio comunque di provare con la configurazione efficace più semplice.
Vedere man sshd_config
per maggiori dettagli sulla configurazione del server OpenSSH.
Salvare il file, chiudere l'editor di testo e riavviare il server SSH con:
sudo restart ssh
Ora cambia la porta in avanti sul router in modo che la porta 57757 inoltri alla porta 57757 (non 22) sul server OpenSSH e vedi se è accessibile da Internet.
Se il problema persiste, verifica se il firewall di Ubuntu sta effettivamente bloccando il traffico proveniente dall'esterno della LAN.
(Questo è improbabile se non lo hai configurato tu stesso, ma se tutte le tue impostazioni sono corrette e nessuno dei passaggi precedenti ha rivelato qualcosa sul problema, vale la pena controllarlo.)
Correre:
sudo iptables -L
Di default, in Ubuntu, l'output è simile a:
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
Questa è una semplice politica permissiva, essenzialmente equivalente alla non esecuzione di un firewall. (In effetti, se il modulo firewall netfilter non fosse compilato nel kernel, il sistema si comporterebbe allo stesso modo delle impostazioni precedenti, sebbene il iptables
comando, che richiede netfilter
le impostazioni delle query , non funzionerebbe ovviamente.)
Se la tua configurazione non ha questo aspetto, leggi man iptables
per capire cosa stanno facendo e / o modifica la tua domanda (o, se sei una persona diversa con un problema simile a leggere questo, pubblica una nuova domanda) per includere loro. Tieni presente che, potenzialmente, le tue iptables
regole potrebbero rivelare informazioni riservate sulla tua configurazione. In pratica, questo non è generalmente il caso - con la possibile eccezione delle regole su host specifici che sono bloccati, o se la configurazione è molto scadente / insicura - in genere l'utilità di queste informazioni per un attaccante, specialmente per un computer acceso una LAN di casa / ufficio dietro un router NAT è minima.