前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iptables交叉编译记事

iptables交叉编译记事

作者头像
嘘、小点声
发布2020-02-13 00:15:35
2.2K0
发布2020-02-13 00:15:35
举报
文章被收录于专栏:嘘、小点声

内核支持

需要内核支持,需要重新编译内核。

为了确认生出的.config文件合适,使用diff命令,不做更改保存.config,确定.config文件是否一致。

以上主要是确定make menuconfig命令所保存的文件属于arm架构的文件。(有些时候,默认使用是的x86架构,所以虽然前面步骤不会出错,但是在make过程中,会有一些问题,导致认为是代码本身的缺陷)

因此需要使用以下:

(sinlinx提供了build.sh文件)

代码语言:javascript
复制
make menuconfig ARCH=arm
做完覆盖.config到arch/arm/configs/sinlinx...之类
./build.sh

在meunconfig中,为了避免问题,提供所有的network options之类的选项,使用*,编译到内核中。尤其注意filter表和nat表之类的相关支持。

交叉编译

不管是什么了,编译代码用下面这句:主要是为了减少一些不必要的麻烦

代码语言:javascript
复制
./configure CC=arm-linux-gnueabihf-gcc \
    --prefix=$(pwd)/__install \
    --host=arm-linux-gnueabihf \
    CFLAGS=-I/usr/local/include \
    LDFLAGS=-L/usr/local/lib \
    --disable-nftables \
    --enable-static \
    --disable-shared \
    --disable-ipv6 \
    --disable-largefile

推荐使用交叉编译的iptables版本为:1.8.4吧。问题少一点。

传送门:https://www.netfilter.org/projects/iptables/downloads.html

iptables编译,早期使用的1.4或者1.6版本,或者其它之类,需要注意的问题在于:

so文件问题:部分文件找不到

有时候需要做一些覆盖问题,如某些文件找不到,而又在某路径下,则对应到/lib等目录下!

特殊的问题如,文件名过短等错误,则删除该过短文件,将其重新命名为对应的长文件。

另外关于--port等命令选项不识别的问题,尝试在做交叉编译过程中使用如上的编译代码。出现该问题当然是一些在lib下的xtables中的so文件没有正确的加入到交叉编译的iptables中。

不过放遍了所有的路径,还是做了以上代码处理。这样,在/lib/xtables中就没有文件了,也许,在里面呢??

另外一些问题是关于xtables本身的。在生出的xtables中:有时候需要将/sbin/multxxx之类的文件,重新命名为iptables,以便运行(删除原来的iptables)。

测试用例

附上测试用例:

代码语言:javascript
复制
iptables -t nat -A PREROUTING -p tcp -d 10.8.0.6 --dport 102 -j DNAT --to 192.168.1.105:102
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内核支持
  • 交叉编译
  • 测试用例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档