关于 Linux 中 iptables 升级的一些笔记

文章讲述了在学习Kubernetes(k8s)过程中遇到kube-proxy组件使用iptables模式时显示异常的问题,怀疑是由于iptables版本过旧。尽管nftables已发布,但因兼容性问题未选择升级。作者决定升级iptables,详细记录了从下载1.8.7版本,到编译安装,最终成功替换旧版本的过程。升级后需注意,可能需要重启或重新加载配置才能使新版本生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面


  • 学习 K8s 中 kube-proxy 组件调用相关,iptables 模式 发现调用链有些特殊
  • 怀疑是 iptables 版本太旧的问题,所以升级一下试试
  • 关于升级是否有必要,nftables 都出来好久了,这里不做考虑哈
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


这里需要一提的是 ,k8s 集群使用 Calico 在旧版本的 iptables 中有些链的规则不能正常显示,但是并不影响规则。

低版本不能正常显示

-A KUBE-SEP-OLNIRCQFCXAN5USW -p tcp -m comment --comment "velero/minio:console" -m tcp -j DNAT --to-destination :0 --persistent --to-destination :0 --persistent --to-destination 0.0.0.0:0

高版本可以正常显示

-A KUBE-SEP-OLNIRCQFCXAN5USW -p tcp -m comment --comment "velero/minio:console" -m tcp -j DNAT --to-destination 10.244.169.89:9090

当前系统环境版本

┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$hostnamectl
   Static hostname: vms100.liruilongs.github.io
         Icon name: computer-vm
           Chassis: vm
        Machine ID: e93ae3f6cb354f3ba509eeb73568087e
           Boot ID: 3276184063244f00bc6efff60ef31879
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 5.4.230-1.el7.elrepo.x86_64
      Architecture: x86-64
┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$

下载二进制包位置

https://www.netfilter.org/projects/iptables

┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$wget --no-check-certificate  https://www.netfilter.org/projects/iptables/files/iptables-1.8.7.tar.bz2

安装解压工具

┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$yum -y install bzip2

解压二进制安装包

┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$bunzip2 iptables-1.8.7.tar.bz2
┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$tar -xvf iptables-1.8.7.tar

nftables 一起升级有些其他的包不支持,好像需要同步升级,所以这里我直接把 nftables 排除调

┌──[root@vms100.liruilongs.github.io]-[~/ansible/iptables-1.8.7]
└─$./configure --disable-nftables
┌──[root@vms100.liruilongs.github.io]-[~/ansible/iptables-1.8.7]
└─$ls
aclocal.m4  build-aux     config.h     config.log     configure     COPYING  extensions  INCOMPATIBILITIES  iptables          libipq   libtool     m4        Makefile.am  stamp-h1  xlate-test.py
autogen.sh  COMMIT_NOTES  config.h.in  config.status  configure.ac  etc      include     INSTALL            iptables-test.py  libiptc  libxtables  Makefile  Makefile.in  utils
┌──[root@vms100.liruilongs.github.io]-[~/ansible/iptables-1.8.7]
└─$make
┌──[root@vms100.liruilongs.github.io]-[~/ansible/iptables-1.8.7]
└─$make install

这里发现升级完并没有,生效,还是原来的版本

┌──[root@vms100.liruilongs.github.io]-[~/ansible/iptables-1.8.7]
└─$iptables -V
iptables v1.4.21

重启机器后发现变成了升级后的版本,这里应该不需要重启,可以考虑重新登录或者 source 一下

┌──[root@vms100.liruilongs.github.io]-[~/ansible]
└─$iptables -V
iptables v1.8.7 (legacy)

博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知


https://www.netfilter.org/projects/iptables


© 2018-2023 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山河已无恙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值