博客 / 詳情

返回

麒麟操作系統 (kylinos) 從入門到精通 -高級教程 - 第84篇 網絡設置與防火牆管理

0.基礎環境

類別:筆記本
型號:中國長城 NF14C
硬件平台:飛騰處理器D2000(ArmV8 指令集)
系統:銀河麒麟操作系統 V10 SP1(2303)
關鍵詞:linux,網絡,主機名,防火牆,ufw,firewall-cmd

1.主機名設置

Hostname,即主機名,是計算機網絡中的基礎標識符,其理論核心在於為機器提供一個人類可讀且網絡可解析的名稱,從而替代複雜難記的 IP 地址。在應用層面,主機名是實現網絡服務和系統管理的關鍵:它作為 DNS 解析的基礎,使得應用程序和用户能夠通過名稱找到對應的網絡資源;同時,它深入集成到系統安全和配置中,例如在 Kerberos 認證、SSL 證書驗證和郵件服務器的反向 DNS 查找中發揮作用。在日常運維中,主機名清晰地出現在 Shell 提示符和系統日誌中,是管理員快速識別和診斷分佈式環境中設備狀態的必要工具,確保了集羣協作和系統可靠性。

1.1 圖形化修改

一、點擊開始菜單,打開設置,切換到關於頁面

image.png

二、點擊計算機名的修改圖標

image.png

輸入更改的名稱,確定即可。

image.png

1.2 命令行圖形化修改

打開命令行,輸入nmtui

image.png

移動方向鍵,至設置系統主機名。

image.png

1.3 命令行修改

顯示主機名

hostname

image.png

hostnamectl

image.png

hostnamectl 是一個用於查詢和控制系統主機名的命令行工具。它是 systemd 軟件包的一部分,在幾乎所有現代 Linux 發行版(如 Ubuntu, Fedora, CentOS/RHEL, Debian 等)中都是標準配置。

永久修改主機名

這是最常用的操作。它會永久更改 /etc/hostname 文件,並立即在內核中生效。

sudo hostnamectl set-hostname new-name

1.4 直接修改配置文件

sudo vim /etc/hostname

image.png
配套修改/etc/hosts映射

sudo vim /etc/hosts

image.png

2.網絡設置

2.1 基礎理論

什麼是網絡

解釋網絡就是把兩台或更多的設備(電腦、手機等)連接起來,以便共享信息共享資源

  • 網絡模型: 簡單介紹一下 OSI 或 TCP/IP 模型,重點強調分層的思想,就好比郵政系統,每層只負責一個特定的任務。
概念 簡單類比 技術解釋 重點強調
IP 地址 就像你的家庭地址 互聯網上唯一標識一台設備的數字標籤,用於數據的尋址和發送。 唯一性尋址
子網掩碼 區分你家地址屬於哪個小區 用於確定一個 IP 地址的網絡部分和主機部分。 決定了一個網絡的大小。
網關 (Gateway) 小區的大門保安 一個網絡的出口入口。當你需要訪問外部網絡(比如互聯網)時,你的數據包必須先交給網關處理。 連接內部與外部網絡的關鍵設備。
  • 數據包 (Packet): 告訴學生,計算機發送數據不是一次性送出,而是切分成小塊,每一塊就是一個數據包,就像快遞包裹
  • 最大傳輸單元 (MTU): 每一個網絡鏈路(例如以太網)都有它能傳輸的“最大包裹尺寸”限制,這就是 MTU。
  • IP 分段 (Fragmentation):

    • 當一個數據包太大,超過了下一跳鏈路的 MTU 時,發送方或路由器會把這個大包裹再切分成更小的包裹,這個過程就是 IP 分段。
    • 類比:你要寄一個大箱子(大包),但快遞公司(鏈路)規定單個包裹不能超過 $5 \text{kg}$,所以你必須把它分成幾個小箱子(分段)。
    • 重點: 分段會增加網絡的開銷(因為要多加幾個頭部信息),所以通常是儘量避免的。

路由器

  • 角色: 路由器是連接不同網絡的設備,它是互聯網的核心。
  • 功能: 它的主要職責是根據數據包的目標 IP 地址,選擇最佳路徑將其轉發到目的地。
  • 路由表 (Routing Table): 路由器內部有一個“地圖”,記錄着去往不同網絡的路徑信息。它就是依靠這個表來做決策的。
  • 與交換機 (Switch) 的區別: 簡單提一下,交換機只在一個局域網內工作(小區內部通信),而路由器是連接不同網絡的(跨小區/跨城市通信)。

🌐 5. 網絡的“電話簿”:名系統 (DNS)

  • 為什麼要用 DNS?

    • 人們記住 www.google.com 比記住 142.250.67.164 容易得多。
    • 類比:我們給朋友打電話記住名字,而不是記住一串電話號碼
  • 工作原理:

    • DNS 就是一個巨大的分佈式電話簿
    • 當你輸入一個網址時,你的計算機就會去詢問 DNS 服務器:這個“名字”對應的“IP 地址”是什麼?
    • DNS 服務器給出 IP 地址後,你的計算機才能真正開始與目標網站建立連接。
  • 重點: DNS 實現了“域名”到“IP 地址”轉換/解析

網關

概念 類比 解釋
網關 (Gateway) 小區的大門 它是一個特殊的設備(通常就是路由器),作為你所在本地網絡(小區)的唯一出口
本地網絡 你家的小區/校園 你的電腦、手機、打印機等設備所在的局域網(LAN)。
外部網絡 整個城市/互聯網 本地網絡以外的所有網絡。
網關的作用 總結一句話
決策 判斷數據包是留在本地還是送往外部
轉發 將發往外部網絡的數據包接收轉發給下一個路由器。
橋樑 連接局域網廣域網的橋樑。

網關、交換機、路由器

特性 交換機 (Switch) 路由器 (Router) 網關 (Gateway)
主要功能 連接、隔離。在同一網絡內轉發數據,隔離碰撞域。 連接、路由。連接不同網絡,選擇最佳路徑轉發數據包。 邊界、協議轉換。本地網絡通往外部網絡的唯一出口。
工作範圍 局域網 (LAN) 內部。 連接 LANWAN,實現跨網絡通信。 網絡的邊界(通常是本地網絡和互聯網之間)。
工作層級 數據鏈路層(第二層,L2) 網絡層(第三層,L3) 邏輯概念,可工作在任何層,通常是 L3 或更高(如應用層)。
尋址依據 MAC 地址(物理地址)。 IP 地址(邏輯地址)。 IP 地址(用於決策轉發),有時也涉及協議轉換。
數據單位 (Frame) 數據包 (Packet) 數據包 (Packet)
是否必須 局域網內設備互通必須 訪問外部網絡必須 訪問外部網絡必須
設備示例 8 口交換機、核心交換機。 寬帶路由器、邊界路由器。 路由器、防火牆、代理服務器(Proxy Server)。
總結 內部通信:讓小區內的鄰居互相訪問。 跨區通信:連接不同的城市或小區。 出入口:小區通往外界的唯一大門。

DHCP與手動設置

特性 DHCP (動態) 手動設置 (靜態 IP)
配置方式 自動獲取 手動輸入所有參數
IP 地址變動 可能變動(有租期) 固定不變
IP 衝突風險 (由服務器管理) (依賴人工記錄)
管理工作量 極低
適用場景 大多數終端設備(電腦、手機) 服務器、網絡打印機、遠程訪問設備

IPV4地址分段

地址類別 第一個字節範圍 (十進制) 默認子網掩碼 (Slash 記法) 網絡 ID 位數 / 主機 ID 位數 可用網絡數量 (理論值) 每網絡可用主機數量 (理論值) 示例 IP 地址
A 類 $1 \text{ 到 } 126$ $255.0.0.0$ (/8) $8 \text{ 位 } / 24 \text{ 位}$ $2^{7} - 2 = 126$ $2^{24} - 2 \approx 1670 \text{ 萬}$ 10.1.2.3
B 類 $128 \text{ 到 } 191$ $255.255.0.0$ (/16) $16 \text{ 位 } / 16 \text{ 位}$ $2^{14} \approx 16000$ $2^{16} - 2 = 65534$ 172.16.1.100
C 類 $192 \text{ 到 } 223$ $255.255.255.0$ (/24) $24 \text{ 位 } / 8 \text{ 位}$ $2^{21} \approx 200 \text{ 萬}$ $2^{8} - 2 = 254$ 192.168.1.5

IPV4與IPV6

特性 IPv4 (Internet Protocol Version 4) IPv6 (Internet Protocol Version 6) 差異總結 (為什麼升級)
地址長度 32 位 128 位 IPv6 地址空間極大,是核心升級點。
地址格式 四組十進制數字,用點分隔。 八組十六進制數字,用冒號分隔。 格式更長,但十六進制表示更簡潔。
地址示例 192.168.1.1 2001:0db8:85a3:0000:0000:8a2e:0370:7334 (可簡化) 視覺上差異巨大。
地址數量 $2^{32}$ (約 43 億個) $2^{128}$ (天文數字,幾乎用不完,可以給地球上每粒沙子分配多個) IPv4 地址已耗盡,這是 IPv6 誕生的主要原因。
報頭長度 可變 (20 到 60 字節) 固定 (40 字節),但可使用擴展報頭。 固定報頭簡化了路由器處理,提升了轉發效率
分段處理 路由器可分段。 發送端主機處理分段,路由器不分段。 減輕了路由器的負擔。
地址配置 主要依賴 DHCP 服務器。 內置支持 SLAAC (無狀態自動配置),可不依賴 DHCP。 簡化了網絡管理和設備配置
網絡地址轉換 (NAT) 必須依賴 NAT 來緩解地址短缺問題。 不再需要 NAT 實現了真正的端到端連接,提升性能。
安全性 (IPSec) 可選,非強制要求。 內置要求,為 IP 層提供了加密和身份驗證。 安全性更高
通信類型 單播 (Unicast)、組播 (Multicast)、廣播 (Broadcast) 單播、組播、任播 (Anycast) IPv6 取消了廣播,改用更高效的組播和任播。

2.2 設置準備:

如果是自動(DHCP)不需要管,如果是手動設置,需要先分配好IP地址,知道網關地址,子網掩碼,DNS服務地址等。

參考下面的信息

   inet 192.168.10.133  netmask 255.255.255.0  broadcast 192.168.10.255

2.3 圖形化設置

方式一:依次點擊開始|設置|網絡

image.png
點擊有線網絡(或者無線網絡)

方式二:也可以在任務欄托盤區點擊網絡,進到下面的頁面,點網絡設置

image.png
在網絡設置頁面,點擊1

image.png
image.png
點擊2出現下面的齒輪

image.png
調整至下面的頁面

image.png

2.3 命令行GUI設置

打開命令行,輸入

nmtui

看到如下界面,使用鍵盤方向鍵移動定位,使用回車鍵調整。

image.png
選擇編輯連接,並回車

image.png
其他設置同圖片界面

image.png

2.4 直接修改配置文件

2.4.1 銀河麒麟/Ubuntu系列中網卡設置
1. 配置文件位置

Netplan 的配置文件位於 /etc/netplan/ 目錄下,通常是一個名為 01-netcfg.yaml 或與您的安裝相關的 .yaml 文件。

您需要使用管理員權限(sudo)編輯這個文件。

sudo vim /etc/netplan/01-network-manager-all.yaml #可以先用ls確認是否是這個文件名

(注意:請根據您系統中實際的 .yaml 文件名進行修改。)

2. 修改配置文件 (YAML 格式)

Netplan 使用 YAML 格式。YAML 對縮進(空格)非常敏感,請務必使用空格縮進,不要使用 Tab 鍵。

假設您的網卡接口名稱是 eth0enpXsX(可以通過 ip a 命令查看),以下是配置靜態 IP 的模板:

network:
  version: 2
  renderer: networkd # 或者 network-manager
  ethernets:
    # 替換為您的實際網卡名稱,例如 eth0 或 enpXsX,通過ifconfig可以看到
    ens33:
      # 禁用 DHCP 自動獲取
      dhcp4: no
      # 配置手動靜態 IP 地址和子網掩碼(CIDR 格式,例如 /24)
      addresses: [192.168.1.100/24]
      # 配置網關地址
      gateway4: 192.168.1.1
      # 配置 DNS 服務器
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]
3. 應用配置

保存並關閉文件後,運行以下命令來應用您的 Netplan 配置:

# 檢查配置文件是否有語法錯誤
sudo netplan try

# 如果沒有錯誤,正式應用配置
sudo netplan apply

執行 sudo netplan apply 後,新的靜態 IP、網關和 DNS 設置就會立即生效。

2.4.2 Centos7中網卡設置

打開命令行,輸入

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33 #先進到此目錄,確認他的名稱是否是這個,不是這個要調整一下這裏的值

1.先確保vmware nat的網段是我們所在的網段,如題目 要求是192.168.10.50

那vmware中的網段是192.168.10.0,默認情況下其網關是192.168.10.2。

2.此時,我們在配置網卡信息時,需要將網關配置為192.168.10.2

DNS1=114.114.114.114

DNS2=8.8.8.8

3.配置完畢後

systemctl restart network #重啓網絡服務

4./etc/sysconfig/network-scripts/ifcfg-ens33網卡內容如下

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO="dhcp"
BOOTPROTO=static
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=ens33
UUID=161d7c28-b554-4e38-b929-7ecd57ba7e23
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.10.20 #與vmware nat設定的網段一致
GATEWAY=192.168.10.2 #與vmware nat設定的網關一致
PREFIX=24
DNS1=114.114.114.114
DNS2=8.8.8.8

2.5 nmcli命令

3.防火牆設置

3.1 GUI設置

依次點擊開始菜單|設置|安全中心

image.png
在網絡保護中,點擊查看詳情

image.png
點擊訪問規則

image.png
右擊需要管理的條目

image.png
可以進行禁用,修改,刪除對網絡端口或服務進行控制。

3.2 ufw命令的用法

firewall-cmd 的簡版(Ubuntu/銀河麒麟專用)

UFW (Uncomplicated Firewall) 是 Ubuntu 系統上管理 iptables 規則的默認、最簡單、最友好的命令行工具。它是系統管理員和普通用户配置防火牆的首選。

以下是 UFW 的詳細用法和常用命令:

1. 狀態管理

這些命令用於查看和控制 UFW 的整體運行狀態。

命令 作用 示例輸出
sudo ufw status 查看當前狀態:是否啓用,以及已定義的規則列表。 Status: inactiveStatus: active
sudo ufw status verbose 查看詳細狀態,包括默認策略和編號規則(用於刪除)。 (顯示規則編號和詳細信息)
sudo ufw enable 啓用防火牆並使其在系統啓動時自動運行。 Firewall started and enabled on system startup
sudo ufw disable 禁用防火牆 Firewall stopped and disabled on system startup
sudo ufw reset 重置所有規則到默認設置,請謹慎使用!(這將禁用防火牆並刪除所有自定義規則)。 (要求確認)

2. 默認策略

默認策略定義了當沒有匹配規則時,UFW 如何處理數據包。通常設置為拒絕入站,允許出站。

命令 作用 示例
sudo ufw default deny incoming 設置默認拒絕所有入站連接。這是最安全的默認設置。 Default incoming policy changed to 'deny'
sudo ufw default allow outgoing 設置默認允許所有出站連接。允許系統連接互聯網。 Default outgoing policy changed to 'allow'

3. 添加規則 (允許/拒絕)

添加規則是 UFW 最核心的操作。您可以基於端口號、服務名稱、協議或 IP 地址來定義規則。

A. 基於服務名或端口號 (最常用)
命令 示例 作用
sudo ufw allow ssh sudo ufw allow 22 允許所有 IP 訪問標準的 SSH 端口 (22/tcp)
sudo ufw allow http sudo ufw allow 80/tcp 允許所有 IP 訪問標準的 HTTP 端口 (80/tcp)
sudo ufw allow 443/tcp sudo ufw allow https 允許 HTTPS 端口。
sudo ufw deny 21/tcp - 拒絕所有 IP 訪問標準的 FTP 端口 (21/tcp)
sudo ufw allow 12345/udp - 允許所有 IP 訪問 UDP 端口 12345
B. 基於 IP 地址或子網
命令 示例 作用
sudo ufw allow from 192.168.1.5 - 僅允許 IP 地址 192.168.1.5 的所有連接。
sudo ufw allow from 192.168.1.0/24 to any port 80 - 僅允許 192.168.1.0/24 子網訪問本機的 80 端口
sudo ufw deny from 203.0.113.4 - 拒絕特定 IP 地址的所有連接。
C. 限制連接速率 (防止暴力破解)

限制規則允許在 30 秒內最多 6 次連接嘗試。

命令 示例 作用
sudo ufw limit ssh sudo ufw limit 22/tcp 限制所有 IP 訪問 SSH 端口,防止短時間內大量連接。

4. 刪除規則

刪除規則有兩種方法:按規則內容刪除(推薦)或按規則編號刪除。

A. 按規則內容刪除 (推薦)

直接在 allowdeny 命令前加上 delete

# 示例:刪除允許 SSH 的規則
sudo ufw delete allow ssh
B. 按編號刪除
  1. 列出帶編號的規則:

    sudo ufw status numbered
  2. 刪除指定編號的規則:

    # 假設要刪除編號為 3 的規則
    sudo ufw delete 3

5. 高級用法:接口限制

您可以將規則限制在特定的網絡接口上(例如只允許 eth0 上的連接)。

命令 示例 作用
sudo ufw allow in on eth0 to any port 80 - 僅允許來自 eth0 接口的 80 端口入站連接。

6. 配置持久性

所有通過 sudo ufw ... 添加的規則都會被 UFW 服務永久保存

3.3 firewall-cmd

firewall-cmdFirewalld 防火牆服務的命令行客户端。

Firewalld 是紅帽系(如 CentOS、RHEL、Fedora)Linux 發行版中默認且推薦的防火牆管理工具。雖然 Ubuntu 默認使用 UFW,但 Firewalld 也可以安裝在 Ubuntu 上,它提供了一套與 UFW 不同的管理邏輯:防火牆區域 (Zones)

核心概念:區域 (Zones)

Firewalld 的核心思想是將網絡接口分配到不同的區域 (Zone),每個區域有自己預先定義好的安全級別和規則。

區域名稱 適用場景 默認策略(安全性)
public 外部網絡,你不信任其他計算機。 默認拒絕:只接受明確允許的連接。
home 家庭環境,你基本信任網絡中的其他計算機。 默認接受入站 SSH/DHCP/MDNS 等常見服務。
internal 內部辦公網絡,高度信任網絡中的計算機。 home 更開放。
trusted 所有的網絡連接都被接受。 全部允許:不設防。
drop 丟棄所有入站連接,不發送錯誤響應 最高安全(隱身模式)。

常用 firewall-cmd 命令

firewall-cmd 的命令需要注意一個關鍵點:默認情況下,所有更改都是臨時的 (Runtime),系統重啓後會丟失。如果要永久生效,必須加上 --permanent 參數。

任務 運行時 (Runtime) 命令 (立即生效) 永久性 (Permanent) 命令 (重啓生效)
查看狀態 sudo firewall-cmd --state sudo firewall-cmd --list-all --zone=public
查看所有區域 sudo firewall-cmd --get-zones -
查看當前默認區域 sudo firewall-cmd --get-default-zone -
開放端口 sudo firewall-cmd --zone=public --add-port=80/tcp sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
開放服務 sudo firewall-cmd --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=http
移除端口 sudo firewall-cmd --zone=public --remove-port=80/tcp sudo firewall-cmd --permanent --zone=public --remove-port=80/tcp
添加富規則 (Rich Rule) sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept' (同上,加 --permanent)
加載永久配置 - sudo firewall-cmd --reload

⚡ 啓用/應用配置流程

使用 firewall-cmd 的標準流程如下:

  1. 進行永久性修改: 使用 --permanent 參數添加規則。

    # 示例:永久允許 HTTPS 端口
    sudo firewall-cmd --permanent --add-service=https
  2. 加載永久配置: 在修改完永久配置後,必須運行 reload 命令使這些規則立即生效,而無需重啓系統。

    sudo firewall-cmd --reload
  3. 驗證規則:

    # 檢查 public 區域的所有永久規則是否已加載
    sudo firewall-cmd --list-all

🆚 firewall-cmd vs. ufw 總結

特性 firewall-cmd (Firewalld) ufw (Uncomplicated Firewall)
核心管理 基於區域 (Zones),以區域為單位管理安全策略。 基於規則列表,自上而下匹配規則。
配置生效 臨時 (runtime)永久 (permanent) 必須分開操作。 默認永久生效,無需額外參數。
複雜性 功能強大,但概念(區域、富規則)相對更復雜。 簡單易懂,易於上手。
發行版 CentOS, RHEL, Fedora 等紅帽系發行版默認。 Ubuntu, Debian 等發行版默認。

寫在最後

本篇主要目標是解決防火牆與網絡設置

麒麟操作系統,從入門到精通
麒麟操作系統專欄:https://segmentfault.com/blog/kylinos
麒麟操作系統x64專欄:https://segmentfault.com/blog/kylinos-x64
B站視頻地址:https://www.bilibili.com/list/243784204
個人主頁:
https://segmentfault.com/u/code4world/articles
https://twitter.com/xiaohelong
https://github.com/xiaohelong
聯繫郵箱:1179611323@qq.com
羣:662512340
發行日志:
20251124 首發

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.