【轉】CentOS 8的新特性、部署、配置
【轉自】https://www.cnblogs.com/linuxcx/articles/CentOS8.html
目錄一、CentOS8的新特性
CentOS 官網文件手冊
CentOS8 相關資料連結←01
CentOS8 相關資料連結←02
CentOS8 與CentOS7的區別
CentOS8最終於2019年9月24日釋出
- 該版本還包含全新的
CentOS Streams
,Centos Stream是一個滾動釋出的Linux發行版,它介於Fedora Linux的上游開發和RHEL的下游開發之間而存在。你可以把CentOS Streams當成是用來體驗最新紅帽系Linux特性的一個版本,而無需等太久。 - CentOS 8主要改動和 RedHat Enterprise Linux 8 是一致的,
基於Fedora 28和核心版本 4.18
,為使用者提供一個穩定的、安全的、一致的基礎,跨越混合雲部署,支援傳統和新興的工作負載所需的工具 - CentOS系統在開發人員和系統管理員中廣泛使用,因為它提供了對其高度可定製的開源軟體包的完全控制。它是穩定的,背後有一個龐大而活躍的支援社群。由於其可靠性,它已經成為伺服器作業系統的主流選擇。
1. 兩種模式:
CentOS stream:滾動釋出的 Linux 發行版,適用於需要頻繁更新的開發者
CentOS-1905:類似 RHEL 8 的穩定作業系統,系統管理員可以用其部署或配置服務和應用
2. 大致概述:
- 擴充套件裝置支援:
GNOME現在集成了Thunderbolt 3連線支援。每當Thunderbolt 3建立連線並激活時,您將得到通知。該功能允許您密切監視所有連線,並檢測任何安全漏洞或資料洩漏或盜竊企圖。 - 新的盒子特性:
GNOME的應用程式中包含了一些用於管理遠端和虛擬機器的新特性。更新後的版本通過自動下載作業系統簡化了建立虛擬環境的過程。此外,它的拖放功能可以讓您輕鬆地在機器之間傳輸檔案。 - 新的螢幕鍵盤:
GNOME團隊重新編寫了最新版本的螢幕鍵盤,試圖解決緊迫的UI問題。現在,該功能支援多種佈局以支援不同的地區、自動鍵盤啟用和檢視切換,因此使用者在書寫時可以清楚地看到文字。 - 更新的UI介面:
新的桌面環境還增加了幾個額外的特性來改進UI和UX。這包括多顯示器處理,直接視窗處理,改進的縮放,等等。 - 網路功能,有兩個主要的更新:
CentOS現在提供了TCP網路堆疊版本4.16。 - 使用的預設包過濾框架是nftables。
最重要的是,這些更改確保了更好的穩定性、可伸縮性和效能。 - nftables替代iptables、iptablesip6table、arptables和ebtables,作為IPv4和IPv6協議的單一框架。此外,firewalld deamon還將使用與預設後端相同的用於過濾網路事務的子系統。
3. Cockpit Web控制檯
-
開放的基於web的控制檯介面,Cockpit,現在作為新的CentOS釋出的一部分。使用此平臺可以通過web控制檯介面輕鬆地管理伺服器。通過web瀏覽器執行系統任務、建立和管理虛擬機器、配置網路、啟動容器和檢查日誌。
-
Cockpit高度整合。它不僅有一個嵌入式終端,可以讓你隨時從終端切換到瀏覽器,而且還可以在移動裝置上工作。
-
因此,當你安裝CentOS 8時,它會自動設定Cockpit web控制檯,並開啟所需的防火牆埠。但是,不必擔心它會加重系統的負擔。該軟體非常有效,因為它只在活動時使用記憶體和CPU。
4. 軟體倉庫更新
-
內容分佈在兩個主要的軟體倉庫:
BaseoS
repository
Appstream
Repository -
雖然BaseOS包含所有底層OS包,但AppStream包含與應用程式相關的包、開發工具、資料庫和其他包。
-
BaseOS儲存庫擁有組成作業系統核心的傳統RPM包。一旦更新了系統,它會自動下載並安裝這些包的任何新版本。
-
有時可能不想批量升級軟體,因為它可能會在你希望保持穩定的環境中導致相容性問題(例如,在測試程式碼時)。這就是為什麼新的CentOS 8附帶了附加的AppStream儲存庫,提供了更多的特性、功能和定製。
-
這個軟體倉庫有一個不同的管理軟體的方法,將它分為幾個子類:
Packages:作為常規包處理。
Modules:相關或共享依賴項的包組。
Module streams:軟體模組的不同版本。
Module profiles:構建模組的包的不同配置。
5. 軟體管理更新
- CentOS 8附帶
yum包管理器v4.0.4版本
,該版本現在使用DNF (Dandified YUM)技術作為後端
。DNF是新一代的YUM,新的作業系統版本允許您同時使用這兩種工具來管理包。 - 與DNF技術整合,最新版本有一個大大改進的軟體管理系統。並
支援模組化內容
、增強了效能
、並且提供了設計良好的API
用於與其他工具整合。雲應用程式流、容器工作負載和CI/CD。
6. 虛擬化更新
- CentOS版本8帶有KVM (qemu-kvm 2.12),支援:
- 5級分頁功能,擴充套件了虛擬地址的大小,增加了可定址的虛擬記憶體。
- 使用者模式指令預防(UMIP),一種將對使用者空間應用程式的訪問限制為系統級設定的安全特性。減少了特權升級攻擊的潛在載體,從而使KVM虛擬機器管理程式及其來賓計算機更加安全。
虛擬化支援Ceph儲存
,在所有的RHEL CPU架構上提供塊儲存功能。- 所有虛擬機器都預先設定的Q35機器型別(機器型別包括本機PCIe熱插拔、IOMMU、安全啟動和許多其他新整合的功能)。
- NVIDIA vGPU和VNC控制檯之間的相容性。
- QEMU模擬器引入的沙箱特性,以確保安全的程式碼測試。
7. 安全更新
-
CentOS團隊已經改進了安全特性,以確保資料保護和防止入侵。最新版本的OpenSSL 1.1.1預設包含TLS 1.3。這將確保您的所有資料以及客戶端資料都受到密碼保護。
-
OS附帶了一個全系統的加密策略,這意味著你不必修改各個應用程式的安全配置。
8. CentOS Stream
-
CentOS Stream是一個結合了Fedora專案和RHEL的專案。CentOS團隊建立了Stream版本作為滾動發行版,試圖消除重大更新後的延遲和相容性問題。
-
本專案的基本思路是:
通過一次更改幾個包來獲得開發更新Stream。
獲取使用者反饋並解決CentOS社群提出的任何問題。
允許在CentOS Stream上構建分層專案(如Ansible、oVirt和RDO)。
9. 命令列工具
-
nobody使用者更換nfsnobody
,這兩個都已合併到nobody使用者和組對中,使用65534 ID。新安裝不再建立該nfsnobody對。此項更改減少了對nobodyNFS 擁有但與NFS無關的檔案的困惑。 -
提供了版本控制系統
Git 2.18:
它是具有分散架構的分散式修訂控制系統。Mercurial 4.8:
一種輕量級的分散式版本控制系統,旨在有效處理大型專案。Subversion 1.10:
一個集中的版本控制系統。
10. 程式語言 Web和資料庫伺服器
-
Python 3.6:
預設情況下可能未安裝該軟體包。要安裝Python 3.6,使用yum install python3命令 -
Python 2.7:
繼續支援,但是生命週期較短,其目的是促進使用者向Python3的平穩過渡 -
Node.js
是最新包含的,其他動態語言更新包括:PHP 7.2:
預設情況下使用FastCGI流程管理器,可以安全地與執行緒一起使用httpd
不再在使用httpd配置檔案,應該在池配置中設定它:/etc/php-fpm.d/*.conf
PHP指令碼錯誤和警告記錄到/var/log/php-fpm/www-error.log檔案中,而不是/var/log/httpd/error.log
以下擴充套件已被刪除: aspell ;mysql;memcache- Ruby 2.5;Perl 5.26;SWIG 3.0
-
提供
Apache HTTP Server 2.4
; mod_http2提供了HTTP / 2支援。支援直接從PKCS#11模組中從硬體安全令牌載入TLS證書和私鑰;以及首次引入的nginx 1.14
-
提供的資料庫服務版本包括:
MySQL 8.0
;
現在,它包含一個事務性資料字典,用於儲存有關資料庫物件的資訊
預設字符集已從更改latin1為utf8mb4
InnoDB現在支援帶有鎖定讀取語句的NOWAIT和SKIP LOCKED選項
MariaDB 10.3
;
新增了這些功能常用表表達式;系統版本表;FOR 迴圈;隱形欄;順序;即時ADD COLUMN的InnoDB;與儲存引擎無關的列壓縮;並行複製;多源複製。
PostgreSQL 9.6
&PostgreSQL 10
;
順序操作的並行執行:scan,join,和aggregate。
同步複製的增強。
改進的全文搜尋,使使用者可以搜尋短語。
該postgres_fdw資料聯合驅動程式現在支援遠端join,sort,UPDATE,和DELETE操作。
大幅提升效能,尤其是在多CPU插槽伺服器上的可伸縮性方面。
Redis 5
; -
Squid 版本升級到4.4
,首次提供Varnish Cache 6.0
Squid(用於Web客戶端的高效能代理快取伺服器) ;varnish cache(一款高效能的開源HTTP加速器)
11. 桌面環境
- GNOME Shell 升級到3.28.
- GNOME會話和顯示管理使用 Wayland 作為預設的顯示伺服器,而RHEL 7預設的 X.Org server依然提供
12. 檔案系統和儲存
XFS
檔案系統最大大小已從500 TiB增加為1024 TiB
- LUKS版本2(LUKS2)格式替代了舊版LUKS(LUKS1)格式;使用LUKS2作為加密卷的預設格式。LUKS2在部分元資料損壞事件的情況下為加密卷提供元資料冗餘和自動恢復
13. 安全方面
- 預設的系統級的 加密策略,用於配置核心加密子系統,覆蓋TLS, IPsec, SSH, DNSSEC,和Kerberos協議。增加全新命令update-crypto-policies,管理員可以輕鬆切換不同模式:default, legacy, future,和fips.
- 支援智慧卡和硬體安全模組 (HSM)的 PKCS #11
14. 網路方面
nftables 框架替代 iptables
作為預設的網路包過濾工具- firewalld 守護程序使用 nftables 作為預設後端
- 支援 IPVLAN 虛擬網路驅動程式,可以為多個容器提供網路連線
15. 編譯器和開發工具
Gcc 編譯器更新到8.2版本
,支援更多C++標準,更好的優化以及程式碼增強技術、提升警告和硬體特性支援- 不同的程式碼生成、操作和除錯工具現在可以處理 DWARF5 除錯資訊格式(體驗階段)
- 核心支援 eBPF 除錯的工具包括BCC, PCP,和 SystemTap.
- `glibc 庫升級到2.28,支援 Unicode 11,更新的Linux系統呼叫,關鍵提升主要在DNS stub resolver、額外的安全加強和效能提升
提供OpenJDK 11, OpenJDK 8, IcedTea-Web,以及不同 Java 工具
,如 Ant, Maven,或 Scala.
二、安裝Centos 8
1. 環境準備
CentOS8-1905映象下載地址
CentOS8-Stream的映象下載地址
兩個映象的差異:
2. 安裝步驟
VMware虛擬機器:
CentOS-8(1905)須要最少 2 GB 記憶體。官方推薦採用至少 4 GB 記憶體。
選擇NAT模式
進入虛擬機器BIOS設定,將虛擬磁碟設定為第一啟動項,F10儲存
修改網絡卡名 tab鍵後輸入 net.ifnames=0 biosdevname=0 然後回車
建議選擇英文,我這裡選擇的中文
CentOS 8 分配了 40 GB 的硬碟空間。有兩種分割槽方案可供選擇:如果由安裝嚮導進行自動分割槽,可以從“ 儲存配置(Storage Configuration)”中選擇“ 自動(Automatic)”選項;如果想要自己手動進行分割槽,可以選擇“ 自定義(Custom)”選項。
在這裡我們選擇“ 自定義(Custom)”選項,並按照以下的方式建立基於 LVM 的分割槽:
可選擇最小化或者帶GUI的圖形介面
最小化安裝要選擇的
建立ROOT密碼
為虛擬機器建立快照。
3. 可Cockpit Web控制檯介面管理CentOS8
CentOS8的一大改變就是通過Web直觀的管理伺服器的系統,這項新服務的名稱為Cockpit,可以幫助不熟悉命令列的使用者管理伺服器系統。不僅僅CenOS8 可以使用。ubuntu 和CentOS7 也是可以使用的。
- 支援web終端,在web中關閉防火牆,selinux。
- 支援虛擬機器管理,需要安裝cockpit-machines
- 支援k8s dashboard管理,需要安裝 cockpit-kubernetes
- 支援web介面配置網絡卡
systemctl start cockpit.socket
systemctl enable cockpit.socket
訪問 http://IP:9090
使用者名稱密碼和Linux的是一樣的 開啟Web介面後就可以實現對系統的監控和配置功能,Web介面的左側便是其各種功能的選單
三、CentOS8的新操作
[root@CentOS8 ~]# ssh -V
OpenSSH_7.8p1, OpenSSL 1.1.1 FIPS 11 Sep 2018
[root@CentOS8 ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
[root@CentOS8 ~]# uname -a
Linux CentOS8 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
3.1 網路配置—NetworkManager
在CentOS7上,同時支援network.service和NetworkManager.service。預設情況下,這2個服務都有開啟,但許多人都會將NetworkManager禁用掉。
在CentOS8上,預設沒有安裝network.service,依然支援network。因此只能通過NetworkManager進行網路配置,包括動態ip和靜態ip。換言之,在CentOS8上,必須開啟NM,否則無法使用網路。
NetworkManager介紹:
-
能管理各種網路
▷ 有線網絡卡、無線網絡卡
▷ 動態ip、靜態ip
▷ 乙太網、非乙太網
▷ 物理網絡卡、虛擬網絡卡 -
使用方法齊全
▷ nmcli:命令列。這是最常用的工具,本文將詳細講解該工具使用。
▷ nmtui:在shell終端開啟文字圖形介面。
▷ Freedesktop applet:如GNOME上自帶的網路管理工具
▷ cockpit:redhat自帶的基於web圖形介面的"駕駛艙"工具,具有dashborad和基礎管理功能。 -
為什麼要用NetworkManager
▷ 工具齊全:命令列、文字介面、圖形介面、web
▷ 廣納天地:納管各種網路,有線、無線、物理、虛擬
▷ 引數豐富:多達200多項配置引數
▷ 一統江湖:RedHat、CentOS、Suse、Debian/Ubuntu,均支援
▷ 大勢所趨:下一個大版本只能通過NM管理網路
3.2 設定網絡卡的新方法—nmcli
在NetworkManager裡,有2個維度:連線(connection)和裝置(device),這是多對一的關係。想給某個網絡卡配ip,首先NetworkManager要能納管這個網絡卡。裝置裡存在的網絡卡(即nmcli d可以看到的),就是NM納管的。接著,可以為一個裝置配置多個連線(即nmcli c可以看到的),每個連線可以理解為一個ifcfg配置檔案。同一時刻,一個裝置只能有一個連線活躍。可以通過nmcli c up切換連線。
檢視網絡卡連線資訊
connection有2種狀態:
▷ 活躍(帶顏色字型):表示當前該connection生效
▷ 非活躍(正常字型):表示當前該connection不生效
[root@CentOS8 ~]# nmcli connection
NAME UUID TYPE DEVICE
eth0 07b4217d-3fc4-48f7-ac70-1495cb856f98 ethernet eth0
virbr0 4750c5db-fdd4-4423-812d-ab31120c88fd bridge virbr0
#檢視connection列表和詳細列表
nmcli c show
nmcli c show eth0
#語法:
nmcli connection modify <interface_name> ipv4.address <ip/prefix>
譯作連線,可理解為配置檔案,相當於ifcfg-eth0 可以簡寫為 nmcli c
獲取網絡卡裝置列表
device有4種常見狀態:
▷ connected:已被NM納管,並且當前有活躍的connection
▷ disconnected:已被NM納管,但是當前沒有活躍的connection
▷ unmanaged:未被NM納管
▷ unavailable:不可用,NM無法納管,通常出現於網絡卡link為down的時候
[root@CentOS8 ~]# nmcli device
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
lo loopback unmanaged --
#檢視所有device詳細資訊
nmcli d show
#檢視指定device詳細資訊
nmcli d show eth0
譯作裝置,可理解為實際存在的網絡卡(包括物理網絡卡和虛擬網絡卡) 可以簡寫為 nmcli d
檢視ip地址和NetworkManager狀態
類似於ifconfig、ip addr
[root@CentOS8 ~]# nmcli
eth0: connected to eth0
"Intel 82545EM"
ethernet (e1000), 00:0C:29:B2:BE:2D, hw, mtu 1500
ip4 default
inet4 10.0.0.58/24
route4 0.0.0.0/0
route4 10.0.0.0/24
inet6 fe80::b05:e02d:a476:ce8e/64
route6 fe80::/64
route6 ff00::/8
lo: unmanaged
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
DNS configuration:
servers: 10.0.0.1
interface: eth0
Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.
Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage details.
啟用和停止網絡卡連線
#相當於ifup ifdown
啟用 nmcli c up eth0
停止 nmcli c down eth0
立即生效connection,有3種方法
nmcli c up eth0
nmcli d reapply eth0
nmcli d connect eth0
刪除網絡卡連線
nmcli c delete eth0
過載所有、指定 ifcfg或route到connection
(不會立即生效)
nmcli c reload
nmcli c load /etc/sysconfig/network-scripts/ifcfg-eth0
建立網路連線並配置靜態IP地址
(等同於配置ifcfg,其中BOOTPROTO=none,並ifup啟動)
nmcli c add type ethernet con-name eth0 ifname eth0 ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual
建立網路連線並配置動態IP地址
(等同於配置ifcfg,其中BOOTPROTO=dhcp,並ifup啟動)
nmcli c add type ethernet con-name eth0 ifname eth0 ipv4.method auto
修改IP地址
(非互動式)
nmcli c modify eth0 ipv4.addr '192.168.0.200/24'
nmcli c up eth0
修改IP地址
(互動式)
nmcli c edit eth0
nmcli> goto ipv4.addresses
nmcli ipv4.addresses> change
Edit 'addresses' value: 192.168.1.200/24
Do you also want to set 'ipv4.method' to 'manual'? [yes]: yes
nmcli ipv4> save
nmcli ipv4> activate
nmcli ipv4> quit
關閉無線網路
nmcli r all off
檢視NetworkManager狀態
nmcli n
#開啟NetworkManager
nmcli n on
#關閉NetworkManager
nmcli n off
監聽事件
nmcli m
檢測NetworkMarger是否線上可用
nm-online
例子:建立一個連線(connection)
nmcli c add type ethernet con-name eth0-test ifname eth0-test ipv4.addresses '192.168.1.100/24,192.168.1.101/32' ipv4.routes '10.0.0.0/8 192.168.1.10,192.168.0.0/16 192.168.1.11' ipv4.gateway 192.168.1.254 ipv4.dns '8.8.8.8,4.4.4.4' ipv4.method manual
▪ type ethernet:建立連線時候必須指定型別,型別有很多,可以通過nmcli c add type -h看到,這裡指定為ethernet。
▪ con-name ethX ifname ethX:第一個ethX表示連線(connection)的名字,這個名字可以任意定義,無需和網絡卡名相同;第二個ethX表示網絡卡名,這個ethX必須是在nmcli d裡能看到的。
▪ ipv4.addresses '192.168.1.100/24,192.168.1.101/32':配置2個ip地址,分別為192.168.1.100/24和192.168.1.101/32
▪ ipv4.gateway 192.168.1.254:閘道器為192.168.1.254
▪ ipv4.dns '8.8.8.8,4.4.4.4':dns為8.8.8.8和4.4.4.4
▪ ipv4.method manual:配置靜態IP
對應生成的網絡卡配置檔案就是
[root@CentOS8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0-test
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.1.100
PREFIX=24
IPADDR1=192.168.1.101
PREFIX1=32
GATEWAY=192.168.1.254
DNS1=8.8.8.8
DNS2=4.4.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0-test
UUID=ced95bb1-d856-4ace-8f2e-79a3f2d572c6
DEVICE=eth0-test
ONBOOT=yes
#通過該nmcli c 可以看到增加了一條連線
[root@CentOS8 ~]# nmcli c
NAME UUID TYPE DEVICE
eth0 6eebabfa-8f58-40af-b298-a385094b2f04 ethernet eth0
eth0-test ced95bb1-d856-4ace-8f2e-79a3f2d572c6 ethernet --
3.3 使用nmtui命令管理網絡卡
nmtui
nmtui edit eth0
3.4 配置yum/dnf 源
CentOS 8 預設是會讀取centos.org的mirrorlist的,所以一般來說是不需要配置映象的。
cd /etc/yum.repos.d
#備份
cp CentOS-Base.repo CentOS-Base.repo.bak
cp CentOS-AppStream.repo CentOS-AppStream.repo.bak
cp CentOS-Extras.repo CentOS-Extras.repo.bak
---
vim /etc/yum.repos.d/CentOS-Base.repo
[BaseOS]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
---
vim /etc/yum.repos.d/CentOS-APPStream.repo
[AppStream]
name=CentOS-$releasever - AppStream
baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficia
---
vim /etc/yum.repos.d/CentOS-Extras.repo
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
3.5 關閉selinux firewalld
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
3.6 安裝tab補全外掛
yum install bash-completion
source /etc/profile
3.7 最小化系統安裝Cockpit Web控制檯
dnf install cockpit -y
systemctl start cockpit
netstat -lntup|grep 9090
瀏覽器訪問 https://ip:9090
3.8 常用軟體包安裝
對開發者的工具支援,可以用原生yum源安裝了,不再需要通過第三方yum源。
@注意:CentOS8 嚴格區分pip2 和pip3,python2-pip和python3-pip
dnf install python3 php perl java-1.8.0 java-11 maven docker mysql-server mlocate lrzsz tree vim nc nmap wget bash-completion htop iotop iftop lsof net-tools sysstat unzip bc psmisc telnet-server -y
3.9 nftables防火牆規則
- nftables 框架替換了 iptables 預設網路資料包過濾工具,可以通過
nft
命令可程式設計式的配置防火牆。- firewalld也是Linux的防火牆,同時支援iptables和nftables,最新版本預設使用nftables。
- 簡單的說firewalld是基於nftfilter防火牆的使用者介面工具。而iptables和nftables是命令列工具。
- firewalld引入區域的概念,可以動態配置,讓防火牆配置及使用變得簡便。
- 從使用者的角度來看,nftables添加了一個名為nft的新工具,它取代了iptables,arptables和ebtables中的所有其他工具。
- 從架構的角度來看,它還取代了處理包過濾規則集的執行時評估的核心部分。
查詢所有表名
[root@CentOS8 ~]# nft list tables
table ip filter
table ip6 filter
table bridge filter
table ip security
table ip raw
table ip mangle
table ip nat
table ip6 security
table ip6 raw
table ip6 mangle
table ip6 nat
table bridge nat
檢視某個表的規則
[root@CentOS8 ~]# nft list table filter
table ip filter {
chain INPUT {
type filter hook input priority 0; policy accept;
}
chain FORWARD {
type filter hook forward priority 0; policy accept;
}
chain OUTPUT {
type filter hook output priority 0; policy accept;
}
}
開啟互動配置模式
nft -i
3.10 nft基礎操作
1、增
增加表:nft add table fillter
增加鏈:nft add chain filter input { type filter hook input priority 0 \; } # 要和hook(鉤子)相關連
增加規則:nft add rule filter input tcp dport 22 accept
2、刪
只需要把上面的 add 改為 delete 即可
3、改
更改鏈名用rename
更改規則用replace
4、查
nft list ruleset # 列出所有規則
nft list tables # 列出所有表
nft list table filter # 列出filter表
nft chain filter input # 列出filter表input鏈
以上命令後面也可以加 -nn 用於不解析ip地址和埠
加 -a 用於顯示 handles