Preciso simular a conexão/desconexão de um aplicativo a um ip:porta.
Não posso alterar as regras de firewall, pois elas são gerenciadas somente pela TI. Devo ter cuidado para não matar a interface de rede, pois é uma máquina remota (Citrix VDI).
Quero usar netsh portproxy. Minha teoria é que ele redirecionaria o ip remoto:port para 127.0.0.1:port.. e se eu mudar a porta local para algo aleatório, o aplicativo deve perder a conexão.
então eu tentei:
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=11111 connectaddress=somehostname.com connectport=11111
onde 11111 é a porta real - o aplicativo permaneceu conectado. quando eu o excluí e executei:
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=22222 connectaddress=somehostname.com connectport=11111
Eu esperava que o aplicativo perdesse a conexão, mas nada mudou. Pensei que talvez tivesse entendido mal o que redireciona para o quê, então tentei
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=11111 connectaddress=somehostname.com connectport=22222
novamente - nenhuma mudança..
Qual é a maneira correta de fazer isso usando netsh portproxy?
Não, funciona ao contrário.
Portproxy não intercepta nenhuma conexão, na verdade – em vez disso, ele funciona muito como um 'proxy reverso' HTTP ou um 'túnel local' SSH, onde ele começa a escutar conexões no
listen
endereço:porta (usando um ouvinte TCP padrão) e se conecta ao endereçoconnect
:porta em nome do cliente proxy. Daí os nomes dos parâmetros.Então o proxy só funciona quando os programas se conectam explicitamente ao
listen
endereço:porta (127.0.0.1:porta neste caso). Se eles estiverem se conectando a qualquer outra coisa, eles estão ignorando o proxy.Não há como fazer isso usando netsh portproxy.