GNU/Linux >> Linux Esercitazione >  >> Linux

Connessione Ssh rifiutata dall'interno della LAN?

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.)


Linux
  1. Ssh:eseguire comandi remoti, staccando completamente dalla connessione Ssh?

  2. Correzione ::Connessione errore SSH Linux rifiutata

  3. Connessione SSH rifiutata da TCP Wrapper

  4. Connessione rifiutata a MongoDB errno 111

  5. Accedendo al server web certificato DNAT dall'interno della LAN

Come correggere l'errore rifiutato dalla connessione SSH

Ssh Port Forward per accedere alla macchina domestica da qualsiasi luogo?

Come modificare la porta SSH in CentOS

connettersi all'host localhost porta 22:connessione rifiutata

Devo cambiare la porta SSH predefinita sui server Linux?

IPTables - Porta a un altro ip e porta (dall'interno)