Windows 10 - NAT - Port forwarding e mascheramento IP


13

Sto cercando un modo per ottenere la funzionalità iptables in Windows 10. Ho abilitato il routing IP e ho bisogno di inoltrare i dati tcp a un altro host (porta 8080) e quindi inoltrare la sua risposta durante il mascheramento dell'IP. In linux sono stato in grado di farlo usando il seguente (dove $ 1 = <IP interno>, $ 2 = 80, $ 3 = 8080, $ 4 = tcp)

iptables -t nat -A PREROUTING -p $4 --match multiport --dports $2 -j DNAT --to-destination $1:$3 
iptables -A FORWARD -p $4 --match multiport --dports $2 -d $1 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE

C'è un modo per ottenere funzionalità simili in Windows 10?


Probabilmente troppo breve per una risposta e non so se questo è ancora valido per Windows 10. Per il port forwarding controlla questa risposta . Il travestimento in Windows si chiama Condivisione connessione Internet (ICS) , controlla questa risposta .
rda,

Ciao, grazie per il tuo contributo. Ho provato a usare netsh ma non sembra funzionare (forse perché ho bisogno che il address di ascolto sia jolly *). Per ICS non sono esattamente sicuro di come funzionerà (avrò bisogno di un secondo adattatore? Se li collego non posso usare ICS)
Orestis P.

Forse potresti usare netcat sul tuo PC. Ascolterà su una porta e invierà su un'altra porta. L'IP sarà l'IP della tua macchina nel mezzo.
TJJ,

2
@OrestisP. controlla netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080proverò a tradurre i tuoi iptables in netsh se ho tempo. sostituisci il 127.0.0.1 con l'indirizzo che
preferisci

Risposte:


16

Windows netshpuò configurare un proxy per consentire agli amministratori di eseguire il proxy del traffico ipv6 su ipv4. Netsh ha anche un'opzione per configurare un proxy da ipv4 a ipv4.

Per la tua configurazione usa la netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080sostituzione 127.0.0.1con l'indirizzo a cui vuoi fare il proxy.

ecco un piccolo breakdown sul comando.

netsh interface portproxyseleziona l'interfaccia che gestisce i tunnel. add v4tov4per creare un tunnel da ipv4 a ipv4. listenport=80per la porta a cui si desidera che i client si connettano. connectaddress=127.0.0.1è l'indirizzo remoto a cui verrà inviato il proxy ai client. connectport=8080è la porta remota.

puoi anche utilizzare listenaddress=se desideri che il proxy sia disponibile su un'unica interfaccia.

Per maggiori informazioni https://technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx


1
NOTA che purtroppo funziona solo per TCP, quindi se vuoi inoltrare un po 'di traffico UDP, sei sfortunato.
user276648

1
Funziona per me usando Windows 10 per il port forwarding di ssh (porta server 22) su una macchina che esegue una VPN. Un computer (senza connessione VPN) sulla mia rete domestica è in grado di connettersi a un altro computer all'interno della VPN utilizzando il protocollo di ascolto.
Frank M,

1

Almeno a scopo di test sono stato in grado di utilizzare la seguente utility per inoltrare sia TCP che UDP

https://sourceforge.net/projects/pjs-passport/

È per XP, ma funziona anche su Win10.


Windows 10 mi dice:Cannot start service from the command line or a debugger. A Windows Service must first be installed (using installutil.exe) and then started with the ServerExplorer, Windows Services Administrative tool or the NET START command.
Peter Turner l'

1
@PeterTurner: controlla il readmefile. Vedo PassPort.exe -Installper installare il servizio.
user276648
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.