le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Port Mapping, noto anche come Port Forwarding, è una tecnologia che reindirizza il flusso di dati da una porta di rete a un'altra porta di rete. Viene in genere utilizzato per i servizi eseguiti dietro un firewall o un router, consentendo ai dispositivi esterni di accedere a servizi specifici all'interno della rete interna. La mappatura delle porte può essere eseguita all'interno della rete locale o attraverso reti, utilizzando protocolli come SSH.
Inoltro porta locale:
8080
mappato sul server remoto80
porta in modo che possa essere passato localmentelocalhost:8080
Accedi al servizio web del server remoto.Inoltro porta remoto:
2222
Mappatura delle porte sul computer locale22
porta in modo che sia possibile accedere al servizio SSH del computer locale tramite il server remoto.Inoltro porta dinamico:
Accesso remoto ai servizi interni: Attraverso la mappatura delle porte è possibile accedere dalla rete esterna a servizi specifici all'interno della rete aziendale o domestica, come server web, server di database, ecc.
Penetrare il firewall: Attraverso la mappatura delle porte, è possibile aggirare le restrizioni del firewall e accedere ai servizi bloccati dal firewall.
Migliorare la sicurezza: La mappatura delle porte tramite tunnel SSH può crittografare la trasmissione dei dati e migliorare la sicurezza.
Bilanciamento del carico e proxy: i sistemi di bilanciamento del carico e i server proxy utilizzano spesso la tecnologia di mappatura delle porte per distribuire e inoltrare il traffico per migliorare l'affidabilità e le prestazioni del servizio.
Supponiamo che ci sia un servizio Web in esecuzione su un server remoto e che la porta su cui è in ascolto lo sia80
. Per accedere a questo servizio dal tuo computer locale, crea una mappatura della porta locale utilizzando il seguente comando SSH:
ssh -L 8080:localhost:80 user@remote-server
Questo comando modificherà i file del computer locale8080
Mappatura delle porte sul server remoto80
porta.Ora accedi al tuo browser localehttp://localhost:8080
, che equivale ad accedere al servizio Web del server remoto.
Esistono diversi motivi principali per eseguire la mappatura delle porte (o il port forwarding) durante lo sviluppo:
Accedi ai servizi protetti: alcuni servizi sulla macchina di sviluppo possono essere in ascolto solo su localhost (127.0.0.1
) e non è possibile accedervi direttamente dall'esterno. Attraverso la mappatura dei porti, questi servizi possono essere esposti e resi accessibili dall’esterno.
sicurezza : Il port forwarding tramite tunnel SSH consente l'accesso sicuro ai servizi interni senza esporre direttamente il servizio. Il tunnel SSH crittografa la trasmissione dei dati per una maggiore sicurezza.
Facile da eseguire il debug : durante il processo di sviluppo, gli sviluppatori potrebbero dover accedere a più servizi in esecuzione sul computer di sviluppo. Con la mappatura delle porte, è possibile accedere a questi servizi direttamente da locale senza dover accedere ogni volta alla macchina di sviluppo.
Bypassare il firewall o le restrizioni di rete : in alcuni ambienti di rete potrebbero essere presenti firewall o restrizioni di rete che impediscono l'accesso diretto ai servizi sul computer di sviluppo. Attraverso il tunneling SSH è possibile aggirare queste restrizioni e ottenere l'accesso ai servizi.
Accesso multiutente: se più sviluppatori devono accedere allo stesso servizio, la mappatura delle porte consente a ciascuno sviluppatore di accedere al servizio nel proprio ambiente locale senza accedere direttamente al computer di sviluppo.
Per esempio:
Supponiamo che tu abbia un server Jupyter Notebook in esecuzione sul tuo computer di sviluppo. È in ascolto sulla porta 7860 ma consente solo l'accesso locale. Attraverso il seguente comando SSH, puoi mappare la porta 7860 della macchina di sviluppo sulla tua porta 7860 locale:
ssh -p 37367 [email protected] -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
In questo modo, puoi accedervi nel tuo browser locale http://127.0.0.1:7860
per visualizzare e utilizzare il server Jupyter Notebook sul computer di sviluppo.
La macchina di sviluppo ha la suaporto espostoEIP pubblico, può essere utilizzato per la nostra connessione ssh locale
Ma nella macchina di sviluppo, cioè nel serverEseguire il programmaQuando, il suo programma è sul serversu un determinato portoIn corso
Quindi, se vogliamo vedere l'effetto di esecuzione del programma sul server localmente, dobbiamo creareMappatura dei porti, quando il browser apre la porta locale, lo inoltra alla porta del server per la visualizzazione.
ssh -p 37367 [email protected] -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyChecking=no
Per esempio:
ssh -p 37367 [email protected] -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
Questo comando viene utilizzato per creare un tunnel SSH. Di seguito è riportata una spiegazione dettagliata di ciascuna parte:
ssh
: comando utilizzato per avviare una connessione SSH.-p 37367
: specificare il numero di porta dell'host remoto a cui connettersi (porta 37367 in questo esempio).[email protected]
: Nome utente (root) e nome host (ssh.intern-ai.org.cn).-CNg
: Combinazione di opzioni: -C
: Abilita la compressione.-N
: Dice a SSH di non eseguire comandi remoti, solo il port forwarding.-g
: consente agli host remoti di connettersi alla porta inoltrata.-L 7860:127.0.0.1:7860
: eseguire il port forwarding locale e mappare la porta 7860 del computer locale sulla porta 7860 di 127.0.0.1 dell'host remoto.-o StrictHostKeyChecking=no
: disabilita il controllo della chiave host, che impedisce le richieste interattive quando ci si connette per la prima volta.In sintesi, questo comando creerà un tunnel SSH tra la macchina locale e l'host remoto, inoltrerà la porta locale 7860 alla porta 7860 dell'host remoto e non eseguirà comandi remoti né controllerà la chiave dell'host.
Come mostrato di seguito:
Dopo la mappatura delle porte, viene visualizzato il programma in esecuzione sulla porta 7860 del server.