Al Windows pots utilitzar netsh per redirigir el trànsit d'un port a un altre amb l'opció portproxy i pots utilitzar-lo per redirigir el trànsit d'un servidor a un altre o d'una connexió a una altra. Ara bé, recorda que és recomanable utilitzar un servidor intermediari invers configurat amb IIS per a aplicacions web.
En un sistema Linux, pots utilitzar iptables per fer aquesta acció. Per exemple, l'article següent explica com redirigir el port 587 al 25 i, per a aplicacions web, també es recomana configurar un servidor intermediari invers amb un servidor web (Servidor intermediari invers amb Apache).
En aquest article s'explica com redirigir el trànsit d'un port a un altre en un escenari d'exemple en un servidor Windows, així com algunes ordres addicionals útils per a aquesta funció.
Informació
Actualment, la funció de servidor intermediari de ports de la interfície de netsh només admet el protocol TCP.
Escenari d'exemple
En l'escenari d'exemple, s'utilitzarà un IIS configurat al servidor i que escolta al port per defecte 80 TCP (HTTP):
C:\Users\administrator>netstat -a -b | findstr 0.0.0.0:80
TCP 0.0.0.0:80 windows:0 LISTENING
C:\Users\administrator>curl -I localhost
HTTP/1.1 404 Not Found
Content-Length: 315
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 09 Nov 2022 21:50:50 GMT
Connection: close
Creació d'un portproxy
Per crear un portproxy que redirigeixi tot el trànsit que entri per un port, en aquest cas el 81 TCP del servidor, cap al port 80 TCP on escolta l'IIS, utilitza l'ordre següent:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=81 connectaddress=0.0.0.0 connectport=80Un cop executada l'ordre, el servidor tindrà una connexió oberta al port 81 TCP:
C:\Users\administrator>netstat -a -b | findstr :81
TCP 0.0.0.0:81 windows:0 LISTENING
Com a resultat, les peticions a aquest port tindran tot el trànsit redirigit al port 80 TCP:
C:\Users\administrator>curl -I localhost:81
HTTP/1.1 404 Not Found
Content-Length: 315
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 09 Nov 2022 22:08:45 GMT
Connection: close
Ordres addicionals
Per llistar tots els servidors intermediaris de ports, pots executar el següent:
netsh interface portproxy show allPer llistar únicament els servidors intermediaris d'IPv4:
netsh interface portproxy show v4tov4I per eliminar un portproxy, introdueix la informació de listen amb l'opció delete:
netsh interface portproxy delete v4tov4 listenport=puerto listenaddress=direcciónEn l'exemple següent, s'eliminaria la connexió al port 81 TCP creada anteriorment:
netsh interface portproxy delete v4tov4 listenport=81 listenaddress=0.0.0.0Recorda que, si tens consultes sobre aquesta qüestió o qualsevol altra relacionada amb els teus servidors a Clouding, no dubtis a escriure a soporte@clouding.io Som al teu costat per al que necessitis, consulta'ns!