Redirecionar a solicitação para um IP externo para localhost (emular um servidor)

8

Eu tenho um aplicativo (sem código-fonte) chamando um servidor (hard coded IP) e esperando uma resposta antes de iniciar (um tipo de login).

Porque o servidor está em baixo da metade do tempo, eu quero criar um servidor fictício que irá emular o comportamento do servidor oficial.

Meu problema:

Como posso redirecionar o tráfego para minha máquina local?

Eu quero que todo o pedido enviado para IP w.x.y.z seja reencaminhado para o localhost (onde meu servidor fictício está rodando)

Mais informações:

  • meu servidor fictício é um apache / php solução.
  • Eu tentei editar o IP codificado no aplicativo com um hex editor, mas alguma soma de verificação falha quando eu inicie a aplicação.
  • porque o IP é codificado no aplicativo, não consigo usar os hosts arquivo.
  • Estou executando o win xp.

relacionado: Como redirecionar o tráfego para um IP para um IP diferente no Windows Server 2008

    
por Loda 18.08.2010 / 16:06

3 respostas

6

Isso seria um hack total, mas você poderia tentar atribuir o IP do servidor em questão como um IP adicional em sua interface local, instruções aqui

    
por 19.08.2010 / 19:19
2

Bem, você pode tentar o seguinte:

Configure uma rota específica para esse endereço IP, que usará o servidor fictício como gateway, assim:

route add -host w.x.y.z/32 gw dummy-server-ip

Para isso, você precisará do acesso ao roteador principal para a sua rede ou terá que fazê-lo na máquina que está enviando as solicitações. Isso efetivamente envia os pacotes TCP com o endereço IP w.x.y.z para o endereço MAC do servidor simulado. Então, agora você precisa ter certeza de que o servidor fictício sabe o que fazer com eles.

Em seguida, adicione o endereço IP w.x.y.z como um endereço secundário ao servidor fictício.
Finalmente, atualize a configuração do apache no servidor fictício para garantir que ela também atenda no endereço w.x.y.z e verifique se o vhost no servidor fictício aceita solicitações de entrada para o endereço IP e o nome do domínio.

Por favor, note que isso só funcionará se não houver outros roteadores entre a máquina solicitante e o servidor simulado. E se houver algum firewall envolvido, eles também precisam ser atualizados.

    
por 18.08.2010 / 16:49
1

Você provavelmente poderia bater algo junto com o iptables. Aqui está uma coisa que eu usei uma vez, mas não estou mais fazendo para lhe dar um suporte:

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -d 172.16.25.202 -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to 172.16.27.59:8025
-A POSTROUTING -o eth0 -j MASQUERADE 
COMMIT

NB: Eu fiz isso há muito tempo, pode haver erros lá

A única coisa que vejo que pode ser um problema é que é específico da interface. Eu acho que o eth0 é apenas para a parte de entrada, então usando um ip na interface lo (127.0.0.1) como o alvo ainda pode funcionar ...

    
por 18.08.2010 / 16:56

Tags