Linux
在 iptables 中使用域 PREROUTING
我有一個
www.example.com
ipX.X.Y.Y
我想將流量從埠 80 轉發到域(www.example.com),我使用了以下 iptable:iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination X.X.Y.Y:80
但我沒有得到好的結果,因為
X.X.Y.Y
內容不等於域(www.example.com)例如:如果您
198.252.206.16
使用瀏覽器訪問(serverfault 的 ip),您將看到地址的結果和內容(ip 地址) 不相等www.serverfault.com
。我想在上述 iptables 規則中使用域,例如:(
--to-destination www.example.com
它只是一個範例,我知道它不起作用),我該怎麼做?有沒有其他方法可以在不使用 iptables 的情況下做到這一點?
謝謝
我認為您需要的是一個 HTTP 代理來重寫請求標頭。IPTables 不解析 HTTP 標頭並替換其中的域。
你應該看看像 Nginx 或 Squid 這樣的東西,它只是理解 HTTP 請求頭並將其重寫到你想要的域中的東西。
IPTables 不知道任何比 TCP 或 UDP 更高的協議。
iptables
即使您使用該選項也無法執行此操作,-d
因為域名是在 iptables 啟動期間載入的。做你想做的事情的正確方法是使用像 Squid 這樣的代理伺服器。