转载自:http://blog.chinaunix.net/uid-27863080-id-3442374.html
1. 如果数据包的目的地址是本机,则系统将数据包送往Input链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。
2. 如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往Forward链。如果通过规则检查,则该包被发给相应的本地进程处理; 如果没有通过规则检查,系统就会将这个包丢掉。
3. 如果数据包是由本地系统进程产生的,则系统将其送往Output链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。
input– 用于处理“进入”路由器的数据包,即数据包目标IP地址是到达路由器一个接口的IP地址,“经过”路由器的数据包不会在input-chains处理(这里要注意理解的是“进入”和“经过”的不同意味)
forward– 用于处理“通过”路由器的数据包
output– 用于处理源于路由器并从其中一个接口出去的数据包。
input只对要访问本机的包有效,forward只对不是访问本机,但是要通过这台机器转发的包有效
制定规则的时候有个原则就是 放行的要先放在前面, 禁止的要放在最后.