iptables:将对 localhost:8080 的请求路由到 google.com

iptables:将对 localhost:8080 的请求路由到 google.com

我正在尝试一个简单的路由规则,将对 localhost:8080 的请求转发到某个外部地址(例如 google)。

我添加了以下规则:

sudo iptables -t nat -A PREROUTING -p tcp -d localhost --dport 8080 -j DNAT --to 173.194.67.139:80

该规则在链中首先出现:

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination      
DNAT       tcp  --  anywhere             localhost            tcp dpt:http-alt to:173.194.67.139:80

但请求没有被重定向。

答案1

Netfilter 模块 (iptables) 无法运行应用层。如果您可以将 HTTP 数据包重定向到 Google IP 地址,它们将不会有正确的Host:标头。对于您想要完成的任务,最好配置代理服务器。适用于 Unix 系统的 Web 代理服务器示例包括 Apache(带有mod_proxy)、Nginx 和 Squid。

相关内容