如题,openwrt 14.07及之前的trunk版不支持layer 7过滤器很久了。经过我不断爬文,终于发现原因是linux 3.10.X内核去掉了Experimental选项,导致L7过滤器无法编译。
因而,解决问题的关键在于修改内核的patch文件,去掉experimental依赖。
实际上,在openwrt官网已经有网友给出修改后的patch,地址是:
https://dev.openwrt.org/ticket/14076
具体而言,解决方法如下:
先下载
633-netfilter_layer7_3.10.x_procfs_fix.2.patch
604-netfilter_layer7_experimental_fix.patch
放入
targe/linux/generic/patches-3.10文件夹内
然后打开终端模拟器
用 make kernel_menuconfig 配置内核选项
因为L7过滤器需要依赖一些内核过滤器,所以需要先选择其他的必须组建。方法是按下" / "键,输入“ Layer7 ”,然后根据提示先选中必须组件,然后会出现Layer 7选项,再选中它。然后保存退出。
接着用 make menuconfig配置openwrt功能,
选中layer7的两个选项。
最后make编译即可。
经测试,OpenWrt Barrier Breaker r42167 /LuCI Trunk (svn-r10520) 中,Layer7可以正常使用。
以上内容摘自 https://blog.csdn.net/xaaaaaaaaaaaaaa/article/details/38637693