Sono su Fedora 19 e ho un problema con ssh
.
Ssh è attivo e funzionante e posso connettermi quando inserisco il mio IP lan. Ma quando provo il nome del mio server (blahblah.no-ip.org
) Mi viene rifiutata una connessione. No-ip è già in esecuzione come servizio e funziona correttamente (invio dell'ip corretto).
Ho già impostato il port forwarding sul mio router, ho anche cambiato la porta di ssh
sia sul servizio che sul port forwarding del router (nel caso il mio amato ISP decidesse di bloccare quelle porte). Ma ricevo ancora una connessione rifiutata e quando nmap
il nome host vedo che la porta ssh è chiusa.
Una cosa però:ho due PC con lo stesso ip esterno (ho impostato il port forwarding sull'ip interno corretto). Quando nmap blahblah.no-ip.org
Ottengo una porta 23 e 80 aperta. 80 sembra OK ma non ho mai avviato il servizio telnet sulla mia macchina.
Qualche idea su cos'altro provare? Il router è zte zxv10 e il port forwarding è impostato correttamente. Lo dico perché ho già impostato il port forwarding per il diluvio e funziona correttamente.
Risposta accettata:
Non è possibile connettersi a un indirizzo IP pubblico con port forwarding dall'interno della stessa LAN. Per spiegarlo, avrò bisogno di un esempio.
Supponiamo che l'IP privato del tuo router sia 192.168.1.1 con IP pubblico 10.1.1.1. Il tuo server si trova sulla porta 192.168.1.2 2222. Hai impostato il port forwarding da 10.1.1.1:1111 a 192.168.1.2:2222.
Se qualcuno su Internet (10.3.3.3) vuole parlare con te, genera un pacchetto:
Source: 10.3.3.3 port 33333
Dest: 10.1.1.1 port 1111
Il tuo router riceve il pacchetto su 10.1.1.1 e lo riscrive:
Source: 10.3.3.3 port 33333
Dest: 192.168.1.2 port 2222
Il tuo server riceve quel pacchetto e invia una risposta:
Source: 192.168.1.2 port 2222
Dest: 10.3.3.3 port 33333
Il tuo router riceve quel pacchetto su 192.168.1.1 e lo riscrive:
Source: 10.1.1.1 port 1111
Dest: 10.3.3.3 port 33333
E la connessione funziona e tutti sono felici.
Supponiamo ora di connetterti dall'interno della tua LAN (192.168.1.3). Generi un pacchetto:
Source: 192.168.1.3 port 33333
Dest: 10.1.1.1 port 1111
Il tuo router riceve il pacchetto su 10.1.1.1 e lo riscrive:
Source: 192.168.1.3 port 33333
Dest: 192.168.1.2 port 2222
Il tuo server riceve quel pacchetto e invia una risposta:
Source: 192.168.1.2 port 2222
Dest: 192.168.1.3 port 33333
Ecco dove abbiamo riscontrato un problema. Poiché l'IP di destinazione è sulla tua LAN, il tuo server non invia quel pacchetto al router per la riscrittura. Invece, lo invia direttamente a 192.168.1.3. Ma quella macchina non si aspetta una risposta dalla porta 2222 192.168.1.2. Ne aspetta una dalla porta 1111 10.1.1.1. Quindi si rifiuta di ascoltare questo pacchetto "falso" e le cose non funzionano.
Correlati:pausa prolungata SSH 7.4 su "pledge:network"?Il modo per aggirare questo problema è configurare il mio router (che fornisce anche DNS per la mia LAN) per restituire l'indirizzo IP privato del mio server quando cerco il mio nome host DDNS. In questo modo, quando sono sulla mia rete domestica, mi collego direttamente al server e salto il port forwarding. (Questa soluzione funziona solo quando il port forwarding non modifica il numero di porta, ma solo l'indirizzo IP. E puoi avere solo 1 server per nome host pubblico.)