0.基礎環境
類別:筆記本
型號:中國長城 NF14C
硬件平台:飛騰處理器D2000(ArmV8 指令集)
系統:銀河麒麟操作系統 V10 SP1(2303)
關鍵詞:linux,網絡,主機名,防火牆,ufw,firewall-cmd
1.主機名設置
Hostname,即主機名,是計算機網絡中的基礎標識符,其理論核心在於為機器提供一個人類可讀且網絡可解析的名稱,從而替代複雜難記的 IP 地址。在應用層面,主機名是實現網絡服務和系統管理的關鍵:它作為 DNS 解析的基礎,使得應用程序和用户能夠通過名稱找到對應的網絡資源;同時,它深入集成到系統安全和配置中,例如在 Kerberos 認證、SSL 證書驗證和郵件服務器的反向 DNS 查找中發揮作用。在日常運維中,主機名清晰地出現在 Shell 提示符和系統日誌中,是管理員快速識別和診斷分佈式環境中設備狀態的必要工具,確保了集羣協作和系統可靠性。
1.1 圖形化修改
一、點擊開始菜單,打開設置,切換到關於頁面
二、點擊計算機名的修改圖標
輸入更改的名稱,確定即可。
1.2 命令行圖形化修改
打開命令行,輸入nmtui
移動方向鍵,至設置系統主機名。
1.3 命令行修改
顯示主機名
hostname
hostnamectl
hostnamectl 是一個用於查詢和控制系統主機名的命令行工具。它是 systemd 軟件包的一部分,在幾乎所有現代 Linux 發行版(如 Ubuntu, Fedora, CentOS/RHEL, Debian 等)中都是標準配置。
永久修改主機名
這是最常用的操作。它會永久更改 /etc/hostname 文件,並立即在內核中生效。
sudo hostnamectl set-hostname new-name
1.4 直接修改配置文件
sudo vim /etc/hostname
配套修改/etc/hosts映射
sudo vim /etc/hosts
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) 內部。 | 連接 LAN 與 WAN,實現跨網絡通信。 | 網絡的邊界(通常是本地網絡和互聯網之間)。 |
| 工作層級 | 數據鏈路層(第二層,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 圖形化設置
方式一:依次點擊開始|設置|網絡
點擊有線網絡(或者無線網絡)
方式二:也可以在任務欄托盤區點擊網絡,進到下面的頁面,點網絡設置
在網絡設置頁面,點擊1
點擊2出現下面的齒輪
調整至下面的頁面
2.3 命令行GUI設置
打開命令行,輸入
nmtui
看到如下界面,使用鍵盤方向鍵移動定位,使用回車鍵調整。
選擇編輯連接,並回車
其他設置同圖片界面
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 鍵。
假設您的網卡接口名稱是 eth0 或 enpXsX(可以通過 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設置
依次點擊開始菜單|設置|安全中心
在網絡保護中,點擊查看詳情
點擊訪問規則
右擊需要管理的條目
可以進行禁用,修改,刪除對網絡端口或服務進行控制。
3.2 ufw命令的用法
firewall-cmd 的簡版(Ubuntu/銀河麒麟專用)
UFW (Uncomplicated Firewall) 是 Ubuntu 系統上管理 iptables 規則的默認、最簡單、最友好的命令行工具。它是系統管理員和普通用户配置防火牆的首選。
以下是 UFW 的詳細用法和常用命令:
1. 狀態管理
這些命令用於查看和控制 UFW 的整體運行狀態。
| 命令 | 作用 | 示例輸出 |
|---|---|---|
sudo ufw status |
查看當前狀態:是否啓用,以及已定義的規則列表。 | Status: inactive 或 Status: 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. 按規則內容刪除 (推薦)
直接在 allow 或 deny 命令前加上 delete。
# 示例:刪除允許 SSH 的規則
sudo ufw delete allow ssh
B. 按編號刪除
-
列出帶編號的規則:
sudo ufw status numbered -
刪除指定編號的規則:
# 假設要刪除編號為 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-cmd 是 Firewalld 防火牆服務的命令行客户端。
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 的標準流程如下:
-
進行永久性修改: 使用
--permanent參數添加規則。# 示例:永久允許 HTTPS 端口 sudo firewall-cmd --permanent --add-service=https -
加載永久配置: 在修改完永久配置後,必須運行
reload命令使這些規則立即生效,而無需重啓系統。sudo firewall-cmd --reload -
驗證規則:
# 檢查 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 首發