linux 执行 iptables 命令出错 segmentation fault (core dumped) 的解决


linux 执行 iptables 命令出错: segmentation fault (core dumped)

systemctl status iptables.service  出错 code=dumped signal=SEGV


现象:


一台机器被强制手动关闭了,重新启动后,防火墙(iptables)不能启动,系统启动日志 /var/log/boot.log 中出现如下错误:
failed to start ipv4 firewall with iptables
failed to start ipv6 firewall with iptables
please use "systemctl status iptables.service" for detail

机器是做代理服务的,导致其他机器都不能上网了。


解决办法:

进入系统后,使用 systemctl status iptables.service 查看 iptables 状态,发现没有启动,信息如下:
Active: failed
code=dumped signal=SEGV

于是执行 iptables 命令:iptables -L

直接提示错误: segmentation fault (core dumped)

这种情况从来没有遇到过,iptables是系统软件,执行时怎么会出现段错误呢?猜测是系统强制关闭时破坏了相关文件。尝试重新安装 iptables 会不会解决问题。

首先查看本机的 iptables 的版本:rpm -qa iptables,发现是iptables-2.16-xxx.xx

于是下载了 iptables 的rpm包,即:iptables-2.16-xxx.xx.rpm

然后强制卸载 iptables 包: rpm -e --nodeps iptables-2.16-xxx.xx  这里需要加上 --nodeps 不考虑依赖,强制卸载。

卸载完毕,安装: rpm -ivh iptables-2.16-xxx.xx.rpm

安装成功后,执行 iptables 命令:iptables -L 。发现不再提示段错误了,正常了。

重启iptables,即执行命令: systemctl restart iptables.service,
查看iptables状态,即:systemctl status iptables.service。

终于正常了。



猜你喜欢

转载自blog.csdn.net/zklth/article/details/38613965