我有一台 Linux 机器,用作 Win XP 机器的网关。两者都在虚拟机中,用于测试目的。现在我想通过转发 IP 地址来欺骗 Win XP 用户(我):我想更改目标 IP 地址。
例如,我想访问 1.1.1.1,但 Linux 网关将其更改为 2.2.2.2,因此,如果我期望访问 1.1.1.1 的网页,我将获得更改后的网页,即 2.2.2.2 的网页。例如,我想访问 Facebook,但被迫访问 Google 主页。
我该怎么做?使用预路由吗?因为我试了很多次,但都没成功 :(
答案1
仅使用 iptables 无法可靠地工作,因为 HTTP 请求会发送 Host: 标头。而且 Google 不太可能知道如何为 Host:facebook.com 提供页面。安装适当的代理软件,例如 squid。
答案2
基本上,你必须做的是:
配置 Linux 机器作为路由器
将 Windows 系统的默认网关更改为指向 Linux 系统的 IP
进行 DNAT,例如:
iptables -t nat -A PREROUTING -i $INCOMING_INTERFACE -d $DEST_IP -j DNAT --to $NEW_DEST_IP
也可以进行 SNAT,例如
iptables -t nat -A POSTROUTING -o $OUTGOING_INTERFACE -j SNAT --to $OUTGOING_IP_ADDRESS_OF_ROUTER
确保不iptables 规则/策略丢弃你的流量