1、
iptables通过使用由Netfilter提供的内核中框架来建立策略,所以要启动iptalbes,首先需要在内核中启动netfilter:
make menuconfig->Networking support->Networking option->Network packet filtering framework
首先要启动Network packet filtering framework,然后进一步配置具体功能即可。
iptables就像一个用户空间的接口,具体工作实际上还是由内核空间的netfilter完成的。
2、
接下来就是移植一个iptables了。
我选用的版本是最新的1.4.17,下载地址:
ftp://ftp.netfilter.org/pub/iptables/
交叉编译之:
../iptables-1.4.17/configure --prefix=/home/rebi/cross_tools/build_iptables-1.4.17/_install --host=arm-unknown-linux-gnueabi LDFLAGS=-L/home/rebi/cross_tools/build_iptables-1.4.17/libiptc/.libs
注意,之所以要加上LDFLAGS=-L/home/rebi/cross_tools/build_iptables-1.4.17/libiptc/.libs是发现make时有一个libip6tc库找不到,但通过搜索这个库就在/home/rebi/cross_tools/build_iptables-1.4.17/libiptc/.libs这个路径下,所以我手动加上去了。
这里之所以会出现这个问题我估计是因为我没有在源码目录下直接编而是在另一个目录build_iptables-1.4.17下configure并make造成的。很多软件都支持这种方法,因为它简单,且出错后可以直个目录全部删除重试又不影响源码所在目录,但也有个别软件不支持,如samba。
make && make install
成功。