记一次在suse上遇到的TPROXY的坑。

2018-11-05  本文已影响46人  zhjwang

记录一下,也是对自己解决问题的一个总结。

背景:

使用iptables + TPROXY做转发。在环境上除了一些问题。
内核提示:

image.png

但是当我查看内核的编译选项的时候,发现是编译进去的。


image.png

这就很奇怪了。why。

问题的答案:

1.首先是iptables版本太低了。插了官网后,发现iptables在1.4.21上更新了对TPROXY的支持。(ftp://rpmfind.net/linux/RPM/opensuse/updates/leap/42.3/oss/armv7hl/iptables-1.4.21-9.1.armv7hl.html
更新日志:

image.png
解决:
升级iptables.参考这篇博客:(https://blog.csdn.net/u011704394/article/details/54572453
注:在suse上关闭iptables:
/sbin/rcSuSEfirewall2 stop
/sbin/rcSuSEfirewall2 new

2.第二个问题就比较坑了
结论:TPROXY依赖于一个内核模块叫做xt_TPROXY.ko。


之前以为内核开了编译选项,这个内核模块就一定会存在。其实不是啊,都是这个vagrant的锅,他开了编译选项,但是没有加载这个内核模块。就这么一直被误导着 。

解决问题思路总结:

lsmod | grep proxy -i  //-i表示的是忽略大小写。
/lib/modules/4.4.73-5-default
在这个目录下,查看内核有没有这个ko:
find . -name *.ko | grep tproxy -i 

另外模块之间的依赖是放在/lib/modules/4.4.73-5-default这个目录下的modules.dep这个文件中。可以在这个目录下grep下,有没有你想要的内核模块的依赖关系:

cat modules.dep | grep -i tproxy
上一篇 下一篇

猜你喜欢

热点阅读