首頁 運維 Nginx 什麼是 nftables ? 它與 iptables 的差別是什麼?

什麼是 nftables ? 它與 iptables 的差別是什麼?

Jun 09, 2023 pm 09:34 PM
iptables nftables

什么是 nftables ? 它与 iptables 的区别是什么?

什麼是 nftables ? 它與 iptables 的差異是什麼?

幾乎每個 Linux 管理員都使用過 iptables,它是一個 Linux 系統的防火牆。但你可能還不太熟悉 nftables,這是一個新的防火牆,可為我們提供一些必的升級,還有可能會取代 iptables。

為什麼要使用 nftables 呢?

Nftables由Netfilter組織開發,該組織目前負責維護iptables。 Nftables的設計目的在於解決iptables存在的效能和可擴充性問題。

除了一些升級和更改的語法以外,nftables 的功能與 iptables 幾乎相同。之所以推出 nftables 的另一個原因,是因為 iptables 的框架變的有點複雜,iptables, ip6tables, arptables 以及 ebtables 都有不同但相似的功能。

例如,在 iptables 中建立 IPv4 規則和在 ip6tables 中建立 IPv6 規則並保持兩者同步是非常低效的。 Nftables 旨在取代所有這些,成為一個集中的解決方案。

儘管自 2014 年以來,nftables 就被包含在 Linux 核心中,但隨著採用範圍的擴大,它最近越來越受歡迎。 Linux 世界的變化很慢,過時的實用程式通常需要幾年或更長的時間才能逐步淘汰,取而代之的是升級後的實用程式。

今天我們就簡單介紹一下 nftables 和 iptables 之間的差異,並展示在新的 nftables 語法中配置防火牆規則的範例。

nftables 中的鏈(chains)和規則

在iptables 中,有三個預設的鏈:輸入、輸出和轉發。這三個“鏈”(以及其他鏈)包含“規則”,iptables 透過將網路流量與 鏈中的規則清單進行配對進行工作。當正在檢查的流量與所有規則都不符合時,鏈的預設策略(例如ACCEPT或DROP)將適用於此流量。

Nftables的工作原理與此類似,也有「鏈」和「規則」。然而,它一開始沒有任何基礎鏈,這使得配置更加靈活。

iptables 效率低下的一個面向是,即使流量與任何規則都不匹配,所有網路資料也必須遍歷上述鏈中的一個或多個。即使你沒有設定鏈路,iptables仍然會檢查你的網路資料並進行處理。

在Linux 中安裝nftables

#nftables 在所有主要的Linux 發行版中都可用,可以使用發行版的套件管理器安裝。

在Ubuntu 或基於Debian 的系統中可使用下列指令:

sudo apt install nftables
登入後複製

設定nftables在系統重新啟動的時候自動啟動,可執行如下操作:

sudo systemctl enable nftables.service
登入後複製

iptables 和nftables 之間的語法差異

與iptables 相比,nftables 的語法更簡單,不過對於iptables 中的語法,在nftables 中也能用。

大家可使用 iptables-translate 工具,該工具接受 iptables 指令並將其轉為等效的 nftables 指令,這是了解兩種語法差異的簡單方法。

使用以下指令在Ubuntu 和基於Debian 的發行版上安裝iptables-translate:

sudo apt install iptables-nftables-compat
登入後複製

安裝後,你可以將iptables 語法傳遞給iptables-translate 指令,它將傳回nftables 等效指令。

下面我們來看一些具體的語法範例。

阻止傳入連線

#下述指令將阻止來自IP位址192.168.2.1的傳入連線:

$ iptables-translate -A INPUT -s 192.168.2.1 -j DROPnft add rule ip filter INPUT ip saddr 192.168.2.1 counter drop
登入後複製

允許傳入SSH連線

#放開ssh 連線權限:##

$ iptables-translate -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT tcp dport 22 ct state new,established counter accept
登入後複製

允許來自特定IP 範圍的傳入SSH連線

#如果只想允許來自192.168.1.0/24的傳入SSH連線:

$ iptables-translate -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT ip saddr 192.168.1.0/24 tcp dport 22 ct state new,established counter accept
登入後複製

允许MySQL连接到eth0网络接口

$ iptables-translate -A INPUT -i eth0 -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT iifname eth0 tcp dport 3306ct state new,established counter accept
登入後複製

允许传入HTTP和HTTPS流量

为了允许特定类型的流量,以下是这两个命令的语法:

$ iptables-translate -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT ip protocol tcp tcp dport { 80,443} ct state new,established counter accept
登入後複製

从这些例子中可以看出,nftables 语法与 iptables 非常相似,但命令更直观一些。

nftables 日志

上述nft命令示例中的“counter”选项告诉nftables统计规则被触碰的次数,就像默认情况下使用的iptables一样。

在nftables中,需要指定:

nft add rule ip filter INPUT ip saddr 192.168.2.1 counter accept
登入後複製

nftables内置了用于导出配置的选项。它目前支持XML和JSON。

nft export xml
登入後複製

以上是什麼是 nftables ? 它與 iptables 的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在 Alpine Linux 上啟用或停用防火牆? 如何在 Alpine Linux 上啟用或停用防火牆? Feb 21, 2024 pm 12:45 PM

在AlpineLinux上,你可以使用iptables工具來設定和管理防火牆規則。以下是在AlpineLinux上啟用或停用防火牆的基本步驟:檢查防火牆狀態:sudoiptables-L如果輸出結果中顯示有規則(例如,有一些INPUT、OUTPUT或FORWARD規則),則表示防火牆已啟用。如果輸出結果為空,則表示防火牆目前處於停用狀態。啟用防火牆:sudoiptables-PINPUTACCEPTsudoiptables-POUTPUTACCEPTsudoiptables-PFORWARDAC

什麼是 nftables ? 它與 iptables 的差別是什麼? 什麼是 nftables ? 它與 iptables 的差別是什麼? Jun 09, 2023 pm 09:34 PM

什麼是nftables?它與iptables的差別是什麼?幾乎每個Linux管理員都使用過iptables,它是一個Linux系統的防火牆。但你可能還不太熟悉nftables,這是一個新的防火牆,可為我們提供一些必需的升級,還有可能會取代iptables。為什麼要使用nftables呢? nftables是由Netfilter開發的,該組織目前維護iptables。 nftables的創建是為了解決iptables的一些效能和擴展問題。除了新的語法和一些升級以外,nftables的功能與iptab

Debian下的iptables安裝與設定指南 Debian下的iptables安裝與設定指南 Feb 15, 2024 am 08:30 AM

在Linux系統中,iptables是用於配置和管理網路封包過濾規則的工具,它允許使用者根據預設的規則對進入和離開網路的封包進行過濾,從而實現網路存取控制、封包轉送等網絡功能,在Debian系統中,iptables是預設安裝的,但如果沒有安裝,則需要手動安裝,本文將介紹如何在Debian下安裝iptables,並配置相關的規則。安裝iptables1.開啟終端,以root使用者身分登入。 2.執行以下指令安裝iptables:```shellsudoapt-getupdatesudoapt-ge

不會用 Linux 防火牆軟體 IPtables!你算啥維人! 不會用 Linux 防火牆軟體 IPtables!你算啥維人! Aug 01, 2023 pm 05:36 PM

連線追蹤是許多網路應用的基礎。例如,Kubernetes Service、ServiceMesh sidecar、 軟體四層負載平衡器 LVS/IPVS、Docker network、OVS、iptables 主機防火牆等等,都依賴連線追蹤功能。

Linux系統iptables與Firewalld防火牆差別? Linux系統iptables與Firewalld防火牆差別? Feb 19, 2024 pm 05:18 PM

Linux系統中的iptables和Firewalld都是用來設定防火牆規則的工具,它們在功能和使用方式上有一些區別:iptables:iptables是Linux系統中最經典和傳統的防火牆工具,早期版本的Linux預設使用iptables作為防火牆配置工具。 iptables基於核心空間的netfilter框架,透過直接操作核心中的iptables規則表來過濾和處理網路封包。 iptables使用規則鏈(rulechains)和表格(tables)的概念來組織和管理防火牆規則,例如常見的filte

Linux 防火牆配置(iptables和firewalld)詳細教學。 Linux 防火牆配置(iptables和firewalld)詳細教學。 Feb 19, 2024 pm 12:36 PM

以下是一個簡要的Linux防火牆設定教學課程,涵蓋了iptables和firewalld兩種常用的防火牆工具。 iptables是Linux上最常用的防火牆工具之一,而firewalld是CentOS7及其衍生版本中預設使用的防火牆管理工具。 iptables防火牆設定:檢視目前防火牆規則:iptables-L-n清空目前的防火牆規則:iptables-F允許特定連接埠的入站連線:iptables-AINPUT-p--dport-jACCEPT例如,允許TCP協定的80埠

深度解析CentOS下的iptables使用方法 深度解析CentOS下的iptables使用方法 Jan 11, 2024 pm 05:27 PM

一:前言防火牆,其實說白了講,就是用來實現Linux下存取控制的功能的,它分為硬體的或軟體的防火牆兩種。無論是在哪個網路中,防火牆工作的地方一定是在網路的邊緣。而我們的任務就是需要去定義到底防火牆如何運作,這就是防火牆的策略,規則,以達到讓它對出入網路的IP、資料進行偵測。目前市面上比較常見的有3、4層的防火牆,叫網路層的防火牆,還有7層的防火牆,其實是代理層的網關。對於TCP/IP的七層模型來講,我們知道第三層是網路層,三層的防火牆會在這層對來源位址和目標位址進行偵測。但是對於七層的防火牆,不

Kubernetes叢集如何用Ipvs取代Iptables Kubernetes叢集如何用Ipvs取代Iptables Mar 02, 2024 am 11:58 AM

大家都了解在Kubernetes中,kube-proxy是一個網路代理,它的主要職責是為叢集中的服務提供負載平衡和服務發現功能。 kube-proxy有不同的運作模式,其中iptables模式和ipvs模式是兩種常見的模式。在iptables模式下,kube-proxy透過iptables規則來實現負載平衡和服務發現,而ipvs模式則利用Linux核心中的IPVS(IPVirtualServer)技術來實現更有效率的負載平衡。選擇適合的模式取決於叢集的需求和性能要求。 iptables模式適用於小型集

See all articles