Linux

在 iptable 鏈之間傳輸流量

  • August 12, 2015

我的理解是,通常任何給定的數據包都只會與一個 iptables 鏈互動,無論是 INPUT FORWARD 還是 OUTPUT。但是,我希望埠 80 上的所有流量都沒有源或目標,因為目前機器(在 FORWARD 鏈上開始)重定向目前機器的埠 3219(在 INPUT 鏈上結束)。這樣做的目的是我正在執行一個透明代理,而這台機器是網路的路由器。

iptables 命令和解釋將是理想的,但如果您必須選擇,我肯定更喜歡解釋。

我的理解是,通常任何給定的數據包都只會與一個 iptables 鏈互動,無論是 INPUT FORWARD 還是 OUTPUT。

你的理解是錯誤的,或者充其量是簡單化的。一個數據包通常會在至少 3 個單獨的表和這些表上的各種鏈上進行處理。當您只查看過濾表時,一個數據包通常只適合 IMPUT/OUTPUT/FORWARD。但在其他牌桌上,您會在不同階段擊中多個連鎖店。例如,從一個介面路由到另一個介面的數據包將命中 nat 表上的 PREROUTING 和 POSTROUTING 鏈。

您可以找到 iptables的各種流程圖。但是它們都不會真正讓您對正在發生的事情有一個完美的了解,但請仔細查看其中的一些內容。通常,當您一起查看它們時,您應該能夠理解。

引用自:https://serverfault.com/questions/713595