首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

docker的nftables规则

nftables 是 Linux 内核中的一个框架,用于包过滤和网络地址转换(NAT)。它是 iptables 的继任者,提供了更灵活和高效的规则管理方式。Docker 使用 iptables 来管理网络规则,但你可以使用 nftables 来替代 iptables,以便更好地控制和管理 Docker 容器的网络流量。

以下是如何使用 nftables 来管理 Docker 网络规则的指南:

安装和配置 nftables

  1. 安装 nftables
    • 在 Debian/Ubuntu 系统上:sudo apt-get update sudo apt-get install nftables
    • 在 CentOS/RHEL 系统上:sudo yum install nftables
  2. 启用并启动 nftables 服务: sudo systemctl enable nftables sudo systemctl start nftables
  3. 禁用 iptables(可选,但建议): sudo systemctl stop iptables sudo systemctl disable iptables

配置 Docker 使用 nftables

Docker 默认使用 iptables,要让 Docker 使用 nftables,你需要进行一些配置。

  1. 创建 Docker 配置文件: 在 /etc/docker/daemon.json 中添加以下内容: { "iptables": false }
  2. 重启 Docker 服务: sudo systemctl restart docker

使用 nftables 管理 Docker 网络规则

  1. 查看现有的 nftables 规则: sudo nft list ruleset
  2. 添加基本的 nftables 规则: 创建一个新的 nftables 配置文件,例如 /etc/nftables.conf,并添加以下内容: table inet filter { chain input { type filter hook input priority 0; policy accept; iif "lo" accept ct state established,related accept tcp dport { 22, 80, 443 } accept ip protocol icmp accept counter drop } chain forward { type filter hook forward priority 0; policy accept; iif "docker0" accept oif "docker0" accept ct state established,related accept counter drop } chain output { type filter hook output priority 0; policy accept; } }
  3. 加载新的 nftables 规则: sudo nft -f /etc/nftables.conf

示例:允许 Docker 容器访问外部网络

假设你有一个 Docker 容器,并希望允许它访问外部网络,你可以添加以下规则:

  1. 编辑 nftables 配置文件: 在 /etc/nftables.conf 中添加以下内容: table inet filter { chain forward { type filter hook forward priority 0; policy accept; iif "docker0" accept oif "docker0" accept ct state established,related accept ip saddr 172.17.0.0/16 accept counter drop } }
  2. 加载新的 nftables 规则: sudo nft -f /etc/nftables.conf

示例:限制特定容器的网络访问

假设你有一个特定的容器,其 IP 地址为 172.17.0.2,并希望限制其网络访问,你可以添加以下规则:

  1. 编辑 nftables 配置文件: 在 /etc/nftables.conf 中添加以下内容: table inet filter { chain forward { type filter hook forward priority 0; policy accept; iif "docker0" ip saddr 172.17.0.2 counter drop oif "docker0" ip daddr 172.17.0.2 counter drop ct state established,related accept counter drop } }
  2. 加载新的 nftables 规则: sudo nft -f /etc/nftables.conf
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • nftables 与 OpenVPN 结合实践

    本文对比了 linux 环境各类防火墙工具,还展示了 iptables 规则如何保存到文件并翻译成 nftables 规则,并给出了 nftables 与 openvpn 配合对混合云内网用户访问权限精准控制方案...实践应用考虑 旧管理只有 iptables,生产上没用过 ipset,现在决定直接用 nftables 替代 iptables; 旧 iptables 规则有三部分,按照从用户到目标服务器顺序为:...,粒度可以精细到【哪个用户>>目的 ip-协议-端口】 因此业务场景下我们要先准备好基础规则: 4. nftables 替换 iptables 规则步骤及测试 维护 iptables 基本规则,未来将此...nft 规则 # -i参数进入交互模式 nft -i # 执行从iptables基础规则转换来nftables规则 add table ip filter add chain ip filter INPUT...单个 iptables 规则翻译成 nftables 规则 VPN 用户 权限主要依赖于防火墙 masquerade,因此用 iptables 时候,用程序生成最多就是地址伪装规则,例如: iptables

    2.8K30

    Docker 系列】docker 学习十,Compose 编写规则及wp 实战

    Compose 编写规则及wp 实战 yaml 规则 docker-compose.yaml 是 Compose 核心,咱们一定要学会 yaml 编写规则 当然,咱们还是查看官方文档,compose...进入 dockerhub 网页,https://docs.docker.com/compose/compose-file/compose-file-v3/ 官网上这些都是可以使用版本,如官网给出例子...,我们一下子肯定也是记不住,需要我们慢慢去熟悉,用多了,写多了,看得多了,知识慢慢也根深蒂固了 咱们学习方法有: 多看官方文档,看官网例子 看开源项目,看看别人 docker-compose.yaml...是如何编写 实战-搭建 wp 博客 咱们来使用 docker-compose.yaml 方式来搭建我们个人博客,感受一下一键部署魅力 创建工作目录 mkdir my_wordpress cd...#docker-compose up 我们也可以在让服务在后台启动 #docker-compose up -d 启动之后我们可以看到程序先去创建网络,创建对应挂载卷 开始创建并启动对应容器

    42730

    CentOS 8 都发布了,你还不会用 nftables

    nftables VS iptables nftables 和 iptables 一样,由表(table)、链(chain)和规则(rule)组成,其中表包含链,链包含规则规则是真正 action。...与 iptables 相比,nftables 主要有以下几个变化: iptables 规则布局是基于连续大块内存,即数组式布局;而 nftables 规则采用链式布局。...字典 字典是 nftables 一个高级特性,它可以使用不同类型数据并将匹配条件映射到某一个规则上面,并且由于是哈希映射方式,可以完美的避免链式规则跳转性能开销。...备份与恢复 以上所有示例中规则都是临时,要想永久生效,我们可以将规则备份,重启后自动加载恢复,其实 nftables systemd 服务就是这么工作。...规则被存储在 /etc/nftables.conf 中,其中 include 一些其他示例规则,一般位于 /etc/sysconfig/nftables.conf 文件中,但默认会被注释掉。

    1.7K00

    linux网络配置工具使用

    本文介绍了RHEL8网络服务和网络配置工具,以及网络防火墙和规则管理工具。...IPsec工作在网络层(2) SSL工作在应用层(7) MACsec工作在数据链路层(2) RHEL8中使用nftables作为firewall后端取代了原来iptables,nftables提供了包过滤分类功能并集成了多种工具...,并进行了许多改进,比如同时支持IPv4/IPv6,自动处理规则,支持debug等等。...与iptables类似,nftables使用表来保存网络链。网络链(chains)包含对每个行为规则。nft工具取代了之前网络包过滤框架中所有组件。...nftables规则模块影响可以通过nft命令列出规则列表。由于nftables规则设置中增加了表,链和规则划分,在操作时需要注意影响。 以上就是本文全部内容,希望对大家学习有所帮助。

    1.1K30

    GNULinux 系统下 nftables 防火墙本地 IPS 能力部署实例

    我们可以清楚看到,nftables 防火墙默认配置和规则文件一般都放置在系统 /etc/nftables.conf 目录中,不过该默认配置文件中只包含一个名为 inet filter 简单 IPv4...2、创建链 表包含链,链目的是保存规则。 与 iptables 中链不同,nftables 也没有内置链。...之后用户可以使用命令 nft list ruleset > /etc/nftables.conf 将这些规则保存在 nftables 默认配置文件中,并使用 systemctl enable nftables.service...打开该服务默认启动模式,之后系统将在开机时自动启动 nftables 防火墙并应用相应规则。...用户也可以通过命令 vi /etc/nftables.conf 来直接按照相应规则编辑该文件来修改防火墙配置,以确保自己系统处于本机防火墙 IPS 能力保护之下。

    1.1K10

    Docker Compose学习之docker-compose.yml编写规则 及 实战案例

    这是我参与「掘金日新计划 · 10 月更文挑战」第27天,点击查看活动详情 编写规则 官方文档:docs.docker.com/compose/com… 主要分为三层 # 第一层 版本,与docker...,如我192.168.227.3:8000 Docker Compose配置springboot微服务项目 新建Springboot项目 controller类 每访问一次,更新redis中数据,并在前端展示出来...increment("count"); return "Hello ber, thanks. views: " + count; } } application.yml redisip...Compose # 前台运行 docker-compose up # 后台运行 docker-compose up -d # 再次运行可尝试使用 –build:在启动容器前构建服务镜像 docker-compose...我这里直接通过curl指令访问了,浏览器通过ip:8001端口访问也是可以

    1.2K10

    nftables 日志解决方案实践

    nftables 重要规则进行日志记录,并配置日志切割、nftables 规则固定到文件,保证重启不丢失。...简单测试-权限粒度从 ip 到目的 ip.端口 首先测试确定用户虚拟 IP 到确定服务器控制转发规则: ## 添加单条规则如下: nft add rule ip nat POSTROUTING oifname...日志设置 简单配置并重启rsyslog服务,则 nftables 规则中写了 log 标志及符合正则事件流将会出现在日志文件中。...rotate 5 保留五个备份;dateext每次切割结果后面加上日期 考虑到nftables流量会很大的话,可以只存三个月、或者改成每周切割一次 3. nft 规则备份恢复 若要临时备份规则,请如下操作.../etc/sysconfig/nftables.conf 这样重启后无需做任何操作(wireguard、openvpn、nftables 都自动恢复); 缺点:需要每次服务器重启前尽量将最新规则覆盖更新到此文件中

    2.4K20

    Linux 连接跟踪(conntrack)

    Nftables 规则添加到 forward 链中 第一条 Nftables 规则:匹配在 eth0 接口上收到进行 IPv4 转发一条新连接跟踪(ct state new)第一个报文,比如,TCP...第二条 Nftables 规则:匹配在 eth0 接口上收到进行 IPv4 转发已建立连接跟踪(ct state established)报文,该规则将接收该报文。...1.5 nf_conntrack 模块 当第一条带有连接跟踪表达式(CONNTRACK EXPRESSION) Nftables 规则添加到当前网络命名空间规则集(ruleset)中时,Nftables...如果您将 ct state invalid Nftables 规则放置在图 1.7 或 1.8 中示例链中,则该规则将会被匹配。...如果您将带有 ct state untracked 表达式 Nftables 规则放置在图 1.7 或 1.8 中示例链中,则该规则将会被匹配。

    35910

    让 Linux 防火墙新秀 nftables 为你 VPS 保驾护航

    前言 上篇文章 给大家介绍了 nftables 优点以及基本使用方法,它优点在于直接在用户态把网络规则编译成字节码,然后由内核虚拟机执行,尽管和 iptables 一样都是基于 netfilter...02 添加 INPUT 规则 和 iptables 一样,nftables filter 表包含三条链:INPUT、FORWARD 和 OUTPUT,一般配置防火墙只需要配置 INPUT 链就好了...为了使系统或 nftables 重启后能够继续生效,我们需要将这些规则持久化,直接将规则写入 /etc/nftables/inet-filter: $ echo "#!...搭建一个简单防火墙,并通过集合和字典将规则集模块化,后续可动态添加端口和 IP 等元素,而不用修改规则。...更复杂规则将会在后面的文章介绍,下篇文章将会教你如何使用 nftables 来防 DDoS 攻击,敬请期待。

    3.9K10

    Kubernetes 1.29 增强了 KMS V2 并提供对 nftables 支持

    最新版本引入了一些新特性,比如 Service 负载均衡器 IP 模式、Windows 容器可变 Pod 资源以及基于 nftables kube-proxy。...在新版本中,为 kube-proxy 引入了一个基于 nftables 作为新后端。添加该特性是因为一些 Linux 发行版正在废弃或移除 iptables。...来自发布团队 Nina Polshakova 评论了这个特殊特性: 在 nftables 模式下,kube-proxy 使用 nftables 代替 iptables 来配置数据包转发规则。...这种容器用于增强或扩展 Pod 中主容器功能,例如日志、监控、安全性或服务网格架构部分功能。 在 1.29 版本中,对 KMS v2 静态加密支持成为了一个稳定特性。...查看英文原文: Kubernetes 1.29 Released with KMS V2 Improvements and nftables Support (https://www.infoq.com

    17710
    领券