IPTABLES 將子網路中的所有流量透明地預先路由到代理,除了

IPTABLES 將子網路中的所有流量透明地預先路由到代理,除了

我在 192.168.255.0 和 172.16.255.0 之間有防火牆。兩者/24。 192.168.255.0 被 DNAT 到代理伺服器 @ 172.16.255.5:8080。我希望這種情況繼續下去,但我有一個 Web 伺服器 172.16.255.50,我想直接連接到它進行測試。我已經嘗試過這個語句,但是 iptables 在嘗試添加它時不斷出錯

iptables -I PREROUTING -i eth1 -d \! 172.16.255.50 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.5:8080

謝謝!

答案1

這裡有2個問題

  1. 您離開了-t nat,因此它試圖添加到表PREROUTINGfilter不存在的鏈中。
  2. 「not」( !) 必須位於 之前-d

工作解決方案:

iptables -t nat -I PREROUTING -i eth1 \! -d 172.16.255.50 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.5:8080


或者,執行此類操作的另一種方法是在與異常流量相符的規則之前放置一條規則,但不對其執行任何操作。一旦遇到第一個匹配規則,Iptables 就會停止,因此它永遠不會到達後面的規則。

iptables -t nat -A PREROUTING -i eth1 -d 172.16.255.50 -p tcp --dport 80
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 172.16.255.5:8080

相關內容