xiaoxiao 发表于 2014-12-29 22:51:50

解决Linode vps iptables遇到iptables: Protocol wrong type for socket的错误

想在linode vps centos 6.4上iptables加入限制ip连接数不能超过100的规则:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT

出现错误:
iptables: Protocol wrong type for socket.

问过Linode客服,说是内核与connlimit模块不兼容,iptables版本太旧了,需要升级。
查看iptables版本:
# iptables -V
iptables v1.4.7

查看iptables安装包:
# rpm -qa | grep iptables
iptables-1.4.7-9.el6.x86_64
iptables-ipv6-1.4.7-9.el6.x86_64

按以下方法解决问题,但注意iptables再也不能使用yum来管理:

yum update -y
rpm -e --nodeps iptables-1.4.7-9.el6.x86_64
rpm -e --nodeps iptables-ipv6-1.4.7-9.el6.x86_64
yum groupinstall 'Development Tools' -y
wget https://netfilter.org/projects/iptables/files/iptables-1.4.21.tar.bz2
tar jxf iptables-1.4.21.tar.bz2
cd iptables-1.4.21
LDFLAGS="-L$PWD/libiptc/.libs" ./configure --prefix=/usr --exec-prefix= --bindir=/usr/bin --with-xtlibdir=/lib/xtables --with-pkgconfigdir=/usr/lib/pkgconfig --enable-libipq --enable-devel
make
make install

查看iptables版本:
# iptables -V
iptables v1.4.21


页: [1]
查看完整版本: 解决Linode vps iptables遇到iptables: Protocol wrong type for socket的错误