Windows 7 con reindirizzamento delle porte interne, è possibile?


9

Ho ricevuto da uno dei nostri sviluppatori una richiesta di risoluzione dei problemi.

Qui in ufficio usano desktop Linux e posso inoltrare localhost: 80 tramite iptables nat a localhost: 8080. Quello che vogliono è la stessa cosa a casa in Windows 7.

Ho quello che penso siano due modi per farlo. Uno per riconfigurare il webserver jboss e tutti gli URL di webapps (disordinati). L'altro è trovare un modo per reindirizzare / nat dalla porta 8080 di localhost alla porta 80. Anche se in Windows 7 non sono sicuro di come farlo.

Qualcuno ha qualche idea su come fare il secondo?

Risposte:


6

AFAIK, Win7 non ha equivalenti iptables. Scrivere un server che fa quello che vuoi (ascolta su una porta, copia tutto su / da un altro) dovrebbe essere abbastanza facile. Puoi trovarne uno a questo URL: http://www.quantumg.net/portforward.php (non testato). L'uso di un proxy inverso (Google è il tuo amico) può adattarsi al conto per il traffico simile a http. Controlla anche questo post: /programming/3721000/port-forwarding-on-windows-7


Doh, mi sento un manichino ora, dimenticando il termine proxy inverso. Non appena posso votare, lo farò per te.
bdavenport,

12

Sì, Windows ha un equivalente iptables, è tramite lo strumento netsh e l'interfaccia portproxy .

Il comando per fare quello che vuoi sarebbe

netsh interface portproxy add v4tov4 listenaddress=YOUR_IP_HERE listenport=8080 connectaddress=YOUR_IP_HERE connectport=80 

Nota che questo farà solo connessioni IPv4, se vuoi anche inoltrare connessioni IPv6 dovresti anche farlo

netsh interface portproxy add v6tov6 listenaddress=YOUR_IP_HERE listenport=8080 connectaddress=YOUR_IP_HERE connectport=80

Questo sarà persistente tra i riavvii? Anche i comandi non sono validi, poiché viene visualizzato un errore: "uno o più parametri essenziali non sono stati definiti"
sorin

@sorin persiste, lo uso in un sistema in cui reindirizzo RDP dalla porta standard a una porta non standard e ho solo bisogno di eseguire questo comando una volta durante l'impostazione di una nuova macchina virtuale. Per quanto riguarda l'errore, hai ragione, ho dimenticato un parametro per l'indirizzo (che ti vedo corretto, grazie!)
Scott Chamberlain,

Ho invece utilizzato add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080Supponendo che si desideri ascoltare sulla porta 80 e reindirizzare a un server non elevato in esecuzione su 8080, è necessario cambiare le porte di ascolto e connessione. Se si desidera rispondere alle richieste sia dell'IP di rete sia dell'host locale, eliminare l'indirizzo di ascolto. E puoi reindirizzare a 127.0.0.1 per evitare l'hardcoding del tuo indirizzo IP.
Carl Walsh,

Altri comandi utili sono descritti nei documenti Microsoft: docs.microsoft.com/en-us/windows-server/networking/technologies/… ad esempio, per elencare i portproxy correnti ( netsh interface portproxy show v4tov4) o per eliminare un postproxy ( netsh interface portproxy delete v4tov4 listenaddress=localhost listenport=80)
neXus

0

Penso che Windows non abbia equivalenti iptables. Comando

netsh interface portproxy ...

eseguire il port proxy ma non il forwarding dei pacchetti. La differenza principale è

Avevamo usato questa tecnica per il port forwarding ma dopo questi risultati abbiamo dovuto usare regole extra sul firewall di rete per evitare l'uso di netsh.

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.