iptables Segmentation fault
程序员文章站
2022-07-15 17:04:49
...
现象
执行iptables 命令出错
iptables -L
segmentation fault xxxxxx
原因
iptables 版本和内核不兼容,一般出现在新版的linux系统和Docker容器上,或者升级iptables问题。
新版版本包括:Ubuntu18和Debian10
说明
新版Debian和Ubuntu默认是 iptables-nft
# update-alternatives --set iptables /usr/sbin/iptables-nft
# update-alternatives --set ip6tables /usr/sbin/ip6tables-nft
# update-alternatives --set arptables /usr/sbin/arptables-nft
# update-alternatives --set ebtables /usr/sbin/ebtables-nft
解决
切换成 iptables-legacy
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
update-alternatives --set arptables /usr/sbin/arptables-legacy
update-alternatives --set ebtables /usr/sbin/ebtables-legacy
验证
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
封装脚本
iptables-wrapper
#!/bin/sh
set -e
num_legacy_lines=$( (iptables-legacy-save || true; ip6tables-legacy-save || true) 2>/dev/null | grep '^-' | wc -l)
if [ "${num_legacy_lines}" -ge 10 ]; then
mode=legacy
else
num_nft_lines=$( (timeout 5 sh -c "iptables-nft-save; ip6tables-nft-save" || true) 2>/dev/null | grep '^-' | wc -l)
if [ "${num_legacy_lines}" -ge "${num_nft_lines}" ]; then
mode=legacy
else
mode=nft
fi
fi
update-alternatives --set iptables "/usr/sbin/iptables-${mode}" > /dev/null
update-alternatives --set ip6tables "/usr/sbin/ip6tables-${mode}" > /dev/null
exec "$0" "[email protected]"
优先iptables-legacy
update-alternatives \
--install /usr/sbin/iptables iptables /usr/sbin/iptables-wrapper 100 \
--slave /usr/sbin/iptables-restore iptables-restore /usr/sbin/iptables-wrapper \
--slave /usr/sbin/iptables-save iptables-save /usr/sbin/iptables-wrapper
update-alternatives \
--install /usr/sbin/ip6tables ip6tables /usr/sbin/iptables-wrapper 100 \
--slave /usr/sbin/ip6tables-restore ip6tables-restore /usr/sbin/iptables-wrapper \
--slave /usr/sbin/ip6tables-save ip6tables-save /usr/sbin/iptables-wrapper
推荐阅读
-
RCNN详细介绍 Rich feature hierarchies for accurate object detection and semantic segmentation
-
对象上下文语义分割:OCR论文笔记(Object-Contextual Representations for Semantic Segmentation )
-
一句一句解说iptables的详细中文手册
-
Android下基于Iptables的一种app网络访问控制方案(一)
-
linux配置防火墙iptables实例分享
-
linux配置防火墙详细步骤(iptables命令使用方法)
-
VMware实现iptables NAT及端口映射
-
Android下基于Iptables的一种app网络访问控制方法(二)
-
Nginx+iptables屏蔽访问Web页面过于频繁的IP(防DDOS,恶意访问,采集器)
-
linux vps服务器常用服务iptables策略