前言php
使了一段時間的你archlinux,發現本身真的愈來愈喜歡這種操做系統,我深深地體會到了大道至簡是什麼含義。netfilter是什麼維基百科和百度百科都有,我就很少說廢話了。linux
正文工具
若是你使用pacman -S iptables安裝的iptable,恭喜你,最好是卸載掉使用源代碼安裝。我我的 在個人操做系統中找不到我要使用的頭文件,因此我果斷選擇了卸載,由源代碼安裝。測試
卸載iptables,使用命令:spa
pacman -Rn iptables操作系統
而後能夠下載iptables:http://www.net-security.org/software.php?id=4.net
個人在虛擬機中,我使用putty工具將源代碼傳到archlinux中。code
而後就是解壓,安裝:ip
./configureget
make
make install
安裝完畢以後
便可在 /usr/local/include/libiptc目錄下看到頭文件,/usr/local/include/lib目錄下看到庫文件
下面就能夠進行代碼的測試工做了。
#include "stdio.h" #include "errno.h" #include "libiptc/libiptc.h" #include "sys/types.h" int main() { const char* tables="filter"; struct iptc_handle *handle; char* chain=NULL; handle = iptc_init(tables); if(handle == NULL) { } for(chain=iptc_first_chain(handle);chain;chain=iptc_next_chain(handle)) { printf("%s\n",chain); } return 0; }
而後開始編譯:
gcc -o test -L/usr/local/lib -lip4tc iptables.c
編譯以後,可在當前目錄查看到可執行文件test
鏈接動態庫
export LD_LIBRARY_PATH=/usr/local/lib
接下來就能夠運行程序了
./test
運行程序便可打印出一下:
INPUT
FORWARD
OUTPUT