我正在尝试一个简单的路由规则,将对 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。