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

什么是 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中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
NGINX與Apache:網絡託管和流量管理NGINX與Apache:網絡託管和流量管理Apr 12, 2025 am 12:04 AM

NGINX适合高并发和低资源消耗场景,Apache适用于需要复杂配置和功能扩展的场景。1.NGINX以高性能处理大量并发连接著称。2.Apache以稳定性和丰富模块支持见长。选择时需根据具体需求决定。

NGINX:現代Web應用程序的多功能工具NGINX:現代Web應用程序的多功能工具Apr 11, 2025 am 12:03 AM

NGINXisessentialformodernwebapplicationsduetoitsrolesasareverseproxy,loadbalancer,andwebserver,offeringhighperformanceandscalability.1)Itactsasareverseproxy,enhancingsecurityandperformancebycachingandloadbalancing.2)NGINXsupportsvariousloadbalancingm

NGINX SSL/TLS配置:使用HTTPS確保您的網站NGINX SSL/TLS配置:使用HTTPS確保您的網站Apr 10, 2025 am 09:38 AM

通過Nginx配置SSL/TLS來確保網站安全,需要以下步驟:1.創建基本配置,指定SSL證書和私鑰;2.優化配置,啟用HTTP/2和OCSPStapling;3.調試常見錯誤,如證書路徑和加密套件問題;4.應用性能優化建議,如使用Let'sEncrypt和會話復用。

NGINX面試問題:ACE您的DevOps/System Admin面試NGINX面試問題:ACE您的DevOps/System Admin面試Apr 09, 2025 am 12:14 AM

Nginx是高性能的HTTP和反向代理服務器,擅長處理高並發連接。 1)基本配置:監聽端口並提供靜態文件服務。 2)高級配置:實現反向代理和負載均衡。 3)調試技巧:檢查錯誤日誌和測試配置文件。 4)性能優化:啟用Gzip壓縮和調整緩存策略。

NGINX緩存技術:改善網站性能NGINX緩存技術:改善網站性能Apr 08, 2025 am 12:18 AM

Nginx缓存可以通过以下步骤显著提升网站性能:1)定义缓存区和设置缓存路径;2)配置缓存有效期;3)根据不同内容设置不同的缓存策略;4)优化缓存存储和负载均衡;5)监控和调试缓存效果。通过这些方法,Nginx缓存能减少后端服务器压力,提升响应速度和用户体验。

帶Docker的NGINX:部署和縮放容器化應用程序帶Docker的NGINX:部署和縮放容器化應用程序Apr 07, 2025 am 12:08 AM

使用DockerCompose可以簡化Nginx的部署和管理,通過DockerSwarm或Kubernetes進行擴展是常見的做法。 1)使用DockerCompose定義和運行Nginx容器,2)通過DockerSwarm或Kubernetes實現集群管理和自動擴展。

高級NGINX配置:掌握服務器塊和反向代理高級NGINX配置:掌握服務器塊和反向代理Apr 06, 2025 am 12:05 AM

Nginx的高級配置可以通過服務器塊和反向代理實現:1.服務器塊允許在一個實例中運行多個網站,每個塊獨立配置。 2.反向代理將請求轉發到後端服務器,實現負載均衡和緩存加速。

NGINX性能調整:針對速度和低潛伏期進行優化NGINX性能調整:針對速度和低潛伏期進行優化Apr 05, 2025 am 12:08 AM

Nginx性能調優可以通過調整worker進程數、連接池大小、啟用Gzip壓縮和HTTP/2協議、使用緩存和負載均衡來實現。 1.調整worker進程數和連接池大小:worker_processesauto;events{worker_connections1024;}。 2.啟用Gzip壓縮和HTTP/2協議:http{gzipon;server{listen443sslhttp2;}}。 3.使用緩存優化:http{proxy_cache_path/path/to/cachelevels=1:2k

See all articles

熱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.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。