红联Linux门户
Linux帮助

升级内核后iptables不能用mark

发布时间:2008-03-28 20:59:13来源:红联作者:compat
运行iptables出现下面的错误提示:

# iptables -I PREROUTING -t mangle -p tcp -s 192.168.1.0/24 -j MARK --set-mark 1

getsockopt failed strangely: No such file or directory

google了一下说是内核少模块

cd /usr/src/linux-2.6.24
make oldconfig
make menuconfig

选择关于MARK的选项

然后把这些模块单独编译出来

make modules_prepare
make M=net/netfilter

这里的net/netfilter是模块的相对路径,可以在内核源码目录下根据对于的.c文件来查询。

这时就生成xt_MARK.ko文件了

cp -f /usr/src/linux-2.6.24/net/netfilter/*.ko /lib/modules/2.6.24/kernel/net/netfilter/

两个地方的路径要吻合。

depmod -a

然后再执行iptables -I PREROUTING -t mangle -p tcp -s 192.168.1.0/24 -j MARK --set-mark 1

的时候会自动挂载xt_MARK.ko这个模块

[root@localhost netfilter]# lsmod | grep xt
xt_MARK 2560 1
xt_tcpudp 3712 0
x_tables 14852 3 xt_MARK,ip_tables,xt_tcpudp
ext3 123912 2
jbd 47124 1 ext3
文章评论

共有 2 条评论

  1. asdasdf 于 2008-03-28 22:02:09发表:

    操人家blog还不留原址。。连作者也不留。。是多么无耻的事啊。。等着吃官司吧

  2. coolerfeng 于 2008-03-28 22:00:47发表:

    转贴也要说明出处吧。居然连作者都给我改了,人不能无耻到这个地步吧