O arquivo hosts pode ser usado apenas para associar um nome de domínio a um IP; não pode mapear IP para IP.
A alteração de IPs pode ser feita por um firewall . No Linux, o firewall padrão é controlado pelos comandos iptables . "man iptables" é a documentação. O Google "explica iptables" para explicações introdutórias.
Alguns links:
http://linux.die.net/man/8/iptables
http://www.linuxnix.com/2009/12/iptables-in-linux-explained.html
http://blog.adityapatawari.com/2011/12/ip-packet-filtering-iptables-explained.html
Especificamente, você deseja alterar as solicitações de SAÍDA do seu PC para um endereço IP ( <my_ip_address>
), para que elas passem para um endereço IP diferente, neste caso 127.0.0.1. Você deseja executar NAT ( Network Address Translation ), dado o "IP de destino" ( <my_ip_address>
; por exemplo, 123.45.67.89), alterando-o para um "IP de destino" diferente (127.0.0.1).
Tente isto (no lugar de 123.45.67.89 , coloque o endereço_IP que precisa ser alterado):
iptables -t nat -A OUTPUT -p all -d 123.45.67.89 -j DNAT --to-destination 127.0.0.1
Detalhes:
-t nat = tabela para traduzir um endereço para outro
-A OUTPUT = anexa à lista de regras para pacotes gerados localmente e enviados. AVISO DE SEGURANÇA: Verifique se a regra inclui esta diretiva OUTPUT. Caso contrário, a regra criaria uma possível falha de segurança, porque a correspondência de pacotes de entrada de locais remotos também seria direcionada para o host local.
-p all = aplica-se a todos os protocolos (tcp, udp e icmp).
-d 123.45.67.89 = o endereço IP original para o qual o pacote estava indo (seu destino).
-j DNAT = se a regra corresponder (nesse caso, se um pacote de saída tiver IP de destino 123.45.67.89), lide com DNAT, que altera o destino.
--to-destination 127.0.0.1 = diz ao DNAT o que fazer; substitua o destino original por "127.0.0.1".
(NOTA: Se você teve uma situação mais complexa, como interceptar solicitações de páginas da Web específicas, uma solução alternativa pode ser usar o software "proxy".)