encaminhamento de porta no windows


262

Eu tenho duas placas de rede no meu pc:

O principal tem o ip local -> 192.168.1.111 O secundário tem o ip local -> 192.168.0.200

O principal possui conexão à Internet e o segundo está conectado a um dispositivo com IP 192.168.0.33, e possui um servidor http na porta 80.

Eu tenho um servidor apache na conexão principal (porta 4422) e posso acessar de qualquer lugar, o que eu quero agora é quando eu detectar uma conexão do 4422 e quero redirecionar essa conexão para 192.168.2.33:80

Como posso fazer isso com o windows?


Mais informações podem ser encontradas aqui. technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx
Shankar Damodaran

Respostas:


507

Eu resolvi, isso pode ser feito executando:

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

Para remover o encaminhamento:

netsh interface portproxy delete v4tov4 listenport=4422 listenaddress=192.168.1.111

Documentos oficiais


21
Apenas certifique-se de ter o IPv6 instalado. De acordo com este artigo do MS KB , o netsh precisa de algumas bibliotecas IPv6 para configurar o recurso de proxy de porta.
Renan Mozone 30/03

10
Além disso, você pode fazer a limpeza usando netsh interface portproxy resetou netsh interface portproxy delete
patrikbeno

7
Tentei usar essa técnica e, enquanto funcionava, era extremamente lenta. Em vez de. Encontrei um utilitário chamado PassPort ( sourceforge.net/projects/pjs-passport ) que faz o mesmo tipo de encaminhamento de porta vinculado a uma NIC específica, mas não apresenta problemas de desempenho netsh. Ele instala e roda bem no Win2008SvrR2.
James L.

14
O comando acima não funcionou para mim no Windows7 nem no Windows Server 2003. Também tive que especificar o parâmetro 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 15/09/16

3
Observe que isso só funciona no TCP ; portanto, não há sorte se você deseja encaminhar o tráfego UDP.
User276648

14

O nginx é útil para encaminhar HTTP em muitas plataformas, incluindo Windows. É fácil de configurar e estender com configurações mais avançadas. Uma configuração básica pode ser algo como isto:

events {}

http {
     server {

        listen 192.168.1.111:4422;

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

14
Esta é uma boa solução para encaminhamento HTTP, mas apenas para encaminhamento HTTP (com todas as suas ressalvas, por exemplo, websockets precisam de configuração adicional). Para encaminhamento HTTPS ou outros protocolos arbitrários (por exemplo, RDP), é praticamente inútil.
Uli Köhler

2
Dito isto, é uma solução incrivelmente boa para encaminhamento de HTTP, então estou feliz que esteja aqui.
Casey

Por que é que? Você pode transmitir o que quiser, incluindo https
user1156544

@uli quais configurações você tolking sobre ... Será útil para compartilhar
user3787216

1
@ UliKöhler Nginx é uma ferramenta para desacoplar conexões TCP. Você pode usá-lo para HTTP, HTTPS, AMQP, WebSockets, qualquer que seja. É usado internamente por ferramentas de todo o mundo para redirecionar e gerenciar a conectividade TCP geral. Portanto, esta é a solução correta. Veja também netfxharmonics.com/2016/03/nginx
David Betz

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.