iptables预先路由和IP转发

我有一台Linux机器用作Win XP机器的网关。 两者都在虚拟机中进行testing。 现在我想欺骗的Win XP用户(我)转发的IP地址:我想改变目的IP地址。

例如,我想去1.1.1.1,但是linux网关把它改成了2.2.2.2所以如果我期待1.1.1.1的网页,我会得到改变的,2.2.2.2的例子想要去Facebook,我被迫去Google主页。

我该怎么做? 随着prerouting? 因为我做了很多尝试,但没有人工作:(

这不能单独使用iptables,因为HTTP请求沿着Host:头发送。 Google不太可能知道如何为Host:facebook.com提供一个页面。 安装一个适当的代理软件,如鱿鱼。

基本上,你必须做的是:

  1. 将Linux框configuration为路由器

  2. 将Windows的默认网关更改为指向Linux的IP

  3. 做一个DNAT,例如:

    iptables -t nat -A PREROUTING -i $INCOMING_INTERFACE -d $DEST_IP -j DNAT --to $NEW_DEST_IP 
  4. 也做一个SNAT,例如

     iptables -t nat -A POSTROUTING -o $OUTGOING_INTERFACE -j SNAT --to $OUTGOING_IP_ADDRESS_OF_ROUTER 
  5. 确保没有 iptables规则/策略丢弃你的stream量