port forwarding in windows


262

Ho due schede di rete nel mio pc:

Quello principale ha l'ip locale -> 192.168.1.111 Quello secondario ha l'ip locale -> 192.168.0.200

Il principale ha una connessione Internet e il secondo è collegato a un dispositivo con IP 192.168.0.33, ha un server http nella porta 80.

Ho un server apache nella connessione principale (porta 4422) e posso accedere da qualsiasi luogo, quello che voglio ora è quando rilevo una connessione da 4422 voglio reindirizzare questa connessione a 192.168.2.33:80

Come posso farlo con Windows?


Ulteriori informazioni possono essere trovate qui. technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx
Shankar Damodaran,

Risposte:


507

L'ho risolto, si può fare eseguendo:

netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33

Per rimuovere l'inoltro:

netsh interface portproxy delete v4tov4 listenport=4422 listenaddress=192.168.1.111

Documenti ufficiali


21
Assicurati solo di aver installato IPv6. Conformemente a questo articolo di MS KB , netsh necessita di alcune librerie IPv6 per configurare la funzione proxy porta.
Renan Mozone,

10
Inoltre, puoi eseguire la pulizia utilizzando netsh interface portproxy reseto netsh interface portproxy delete
patrikbeno,

7
Ho provato a usare questa tecnica e, mentre ha funzionato, è stato estremamente lento. Anziché. Ho trovato un'utilità chiamata PassPort ( sourceforge.net/projects/pjs-passport ) che esegue lo stesso tipo di port forwarding associato a una scheda NIC specifica, ma non presenta problemi di prestazioni di netsh. Si installa e funziona bene su Win2008SvrR2.
James L.

14
Il comando sopra non ha funzionato per me su Windows 7 né su Windows Server 2003. Ho dovuto specificare anche il parametro protocol = tcp . Comando completo:netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33 protocol=tcp
alwi,

3
NOTA che funziona solo su TCP , quindi niente fortuna se vuoi inoltrare il traffico UDP.
user276648

14

nginx è utile per inoltrare HTTP su molte piattaforme tra cui Windows. È facile da installare ed estendere con una configurazione più avanzata. Una configurazione di base potrebbe assomigliare a questa:

events {}

http {
     server {

        listen 192.168.1.111:4422;

        location / {
            proxy_pass http://192.168.2.33:80/;
        }
     }
}

14
Questa è una buona soluzione per l'inoltro HTTP, ma solo per l'inoltro HTTP (con tutti i suoi avvertimenti, ad esempio i websocket necessitano di una configurazione aggiuntiva). Per l'inoltro HTTPS o altri protocolli arbitrari (ad es. RDP) è per lo più inutile.
Uli Köhler,

2
Detto questo, è una soluzione incredibilmente buona per l'inoltro HTTP, quindi sono contento che sia qui.
Casey,

Perché? Puoi eseguire lo streaming in avanti come preferisci, incluso https
user1156544

@uli su quali impostazioni ti tolgo ... Sarà utile condividere
user3787216

1
@ UliKöhler Nginx è uno strumento per disaccoppiare le connessioni TCP. Puoi usarlo per HTTP, HTTPS, AMQP, WebSocket, qualunque cosa. È utilizzato internamente da strumenti ovunque per reindirizzare e gestire la connettività TCP generale. Quindi, questa è la soluzione corretta. Vedi anche netfxharmonics.com/2016/03/nginx
David Betz,

1

Ho usato questa piccola utility ogni volta che se ne presenta la necessità: http://www.analogx.com/contents/download/network/pmapper/freeware.htm

L'ultima volta che questa utility è stata aggiornata è stato nel 2009. Ho notato sulla mia macchina Win10, si blocca per alcuni secondi quando si aprono nuove finestre a volte. A parte quel problema tecnico dell'interfaccia utente, fa ancora bene il suo lavoro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.