轉載自:http://blog.chinaunix.net/uid-27863080-id-3442374.html
1. 如果數據包的目的地址是本機,則系統將數據包送往Input鏈。如果通過規則檢查,則該包被發給相應的本地進程處理;如果沒有通過規則檢查,系統就會將這個包丟掉。
2. 如果數據包的目的地址不是本機,也就是說,這個包將被轉發,則系統將數據包送往Forward鏈。如果通過規則檢查,則該包被發給相應的本地進程處理; 如果沒有通過規則檢查,系統就會將這個包丟掉。
3. 如果數據包是由本地系統進程產生的,則系統將其送往Output鏈。如果通過規則檢查,則該包被發給相應的本地進程處理;如果沒有通過規則檢查,系統就會將這個包丟掉。
input– 用於處理“進入”路由器的數據包,即數據包目標IP地址是到達路由器一個接口的IP地址,“經過”路由器的數據包不會在input-chains處理(這里要注意理解的是“進入”和“經過”的不同意味)
forward– 用於處理“通過”路由器的數據包
output– 用於處理源於路由器並從其中一個接口出去的數據包。
input只對要訪問本機的包有效,forward只對不是訪問本機,但是要通過這台機器轉發的包有效
制定規則的時候有個原則就是 放行的要先放在前面, 禁止的要放在最后.