注意:本文使用的Linux系統版本為Red Hat Enterprise Linux 9 (RHEL 9)。
在RHEL9上,使用NM(NetworkManager)進行網絡配置,ifcfg (也稱為 文件)將不再是網絡配置文件的主存儲。雖然 ifcfg 樣式仍然可用,但它不再是NetworkManager 存儲新網絡配置文件的默認位置。從 RHEL 9.0 開始,RHEL 以 key-file 格式在 /etc/NetworkManager/system-connections/ 中存儲新的網絡配 置。配置以舊格式存儲在 /etc/sysconfig/network-scripts/ 中的連接仍然可以正常工作。對現有配置集的修改會繼續更新舊的文件。
一、對IPv4進行知識回顧
首先,我們要對IPv4的原理進行回顧
IPv4(Internet Protocol version 4)是互聯網中廣泛使用的網絡層協議,負責將數據包從源地址路由到目標地址。以下我們簡單復習一下:
1. IPv4地址結構
-
地址長度:32位二進制,通常表示為點分十進制(如?
192.168.1.1
)。 -
地址組成:
-
網絡部分:標識設備所屬的網絡。
-
主機部分:標識網絡中的具體設備。
-
-
地址分類(傳統分類已逐漸被CIDR取代):
類別 范圍 默認子網掩碼 用途 A 1.0.0.0 - 126.255.255.255 255.0.0.0 大型網絡(政府、ISP) B 128.0.0.0 - 191.255.255.255 255.255.0.0 中型網絡(企業) C 192.0.0.0 - 223.255.255.255 255.255.255.0 小型網絡(家庭、辦公室) D 224.0.0.0 - 239.255.255.255 無 組播(Multicast) E 240.0.0.0 - 255.255.255.255 無 保留(實驗用途) -
CIDR(無類別域間路由):取代傳統分類,使用斜杠表示法(如?
192.168.1.0/24
)靈活劃分子網。
2. 子網掩碼的作用
子網掩碼是一個 32 位的二進制數,通常用點分十進制表示,如?255.255.255.0
。
如IP地址192.168.1.100/24
中的 /24 代表的是子網掩碼前24位為1,剩下的為0,即子網掩碼為255.255.255.0
。
它主要有以下兩個作用:
-
劃分網絡地址和主機地址:在 IP 地址中,一部分表示網絡地址,另一部分表示主機地址。子網掩碼通過與 IP 地址進行按位與運算,能夠確定 IP 地址中的網絡部分和主機部分。例如,對于 IP 地址?
192.168.1.100
?和子網掩碼?255.255.255.0
,進行按位與運算后得到網絡地址?192.168.1.0
。 -
子網掩碼為1的部分代表IP地址的網絡位,子網掩碼為0的部分代表IP地址的主機位。
-
劃分子網:通過調整子網掩碼,可以將一個大的網絡劃分為多個小的子網,提高 IP 地址的使用效率,同時也便于網絡管理和安全控制。
3.IP 通信判定
在進行 IP 通信時,需要判斷兩個 IP 地址是否在同一個子網內,這可以通過比較它們的網絡地址來實現。具體步驟如下:
-
將兩個 IP 地址分別與子網掩碼進行按位與運算,得到各自的網絡地址。
-
比較兩個網絡地址,如果相同,則說明兩個 IP 地址在同一個子網內,可以直接進行通信;如果不同,則說明它們不在同一個子網內,需要通過路由器進行通信。
示例:
假設有兩個 IP 地址?IP1 = 192.168.1.100
?和?IP2 = 192.168.1.200
,子網掩碼為?255.255.255.0
。
-
計算?
IP1
?的網絡地址:IP地址?192.168.1.100/24
的網絡地址為192.168.1.0
-
計算?
IP2
?的網絡地址:IP地址?192.168.1.200/24
的網絡地址為192.168.1.0
由于兩個網絡地址相同,所以?IP1
?和?IP2
?在同一個子網內,可以直接通信。
4.網絡命令設定
以下是 Linux 系統中?ping
、ifconfig
?和?ip addr
?命令的詳細解析與使用指南:
1.?ping
?命令:網絡連通性測試
功能
通過發送?ICMP 回顯請求?探測目標主機的可達性,測量往返時間(RTT)及丟包率。
常用選項與示例
命令格式 | 說明 |
---|---|
ping <目標IP或域名> | 持續發送請求,按?Ctrl+C ?停止(默認間隔1秒) |
ping -c <次數> <目標> | 指定發送請求次數(如?ping -c 4 google.com ?發送4次后自動停止) |
ping -w <超時秒數> <目標> | 設置總超時時間(如?ping -w 5 8.8.8.8 ?最多等待5秒) |
ping -i <間隔秒數> <目標> | 設置發送間隔(如?ping -i 2 192.168.1.1 ?每2秒發送一次) |
ping -c1 -w1 <目標> | 組合選項:發送1次請求,最多等待1秒(常用于腳本快速檢測) |
2.?ifconfig
?命令:傳統網絡接口管理
功能
查看或臨時配置網絡接口(已逐漸被?ip
?命令替代)。
常用操作
命令格式 | 說明 |
---|---|
ifconfig | 顯示所有活動接口的詳細信息(IP、MAC、收發數據量等) |
ifconfig <接口名> | 查看指定接口狀態(如?ifconfig eth0 ) |
ifconfig <接口名> <IP>/<掩碼位數> | 臨時設置接口 IP(如?ifconfig eth0 192.168.1.100/24 ) |
ifconfig <接口名> up/down | 啟用/禁用接口(如?ifconfig eth0 down ?關閉網卡) |
3.?ip addr
?命令:現代網絡接口管理
功能
替代?ifconfig
,提供更強大的地址管理(屬于?iproute2
?工具集)。
常用操作
命令格式 | 說明 |
---|---|
ip addr show | 顯示所有接口地址(等效?ifconfig ) |
ip addr add <IP>/<掩碼位數> dev <接口> | 添加 IP 地址(如?ip addr add 192.168.1.101/24 dev eth0 ) |
ip addr del <IP>/<掩碼位數> dev <接口> | 刪除 IP 地址(如?ip addr del 192.168.1.101/24 dev eth0 ) |
ip addr flush dev <接口> | 清除接口所有地址(如?ip addr flush eth0 ) |
二、從網站下載文件的命令? wegt和curl
1、wget
?命令基本格式:wget [選項] [URL]
-
選項:控制下載行為的參數(如限速、斷點續傳等)。
-
URL:要下載的資源地址(支持 HTTP/HTTPS/FTP 協議)。
wegt的常用參數速查表
參數 | 作用 | 典型場景 |
---|---|---|
-P | 指定下載目錄 | 整理下載文件 |
-t | 控制重試次數 | 不穩定網絡環境 |
-b | 后臺下載 | 長時間下載任務 |
-c | 斷點續傳 | 中斷后恢復下載 |
-p | 下載完整頁面資源 | 離線瀏覽頁面 |
-r | 遞歸下載鏈接內容 | 鏡像網站或批量下載 |
示例:wget -r? -P /root/桌面/testfile https://image.baidu.com/
2、curl
?命令基本格式:curl [選項] [URL]
-
選項:控制請求行為(如方法、頭信息、數據等)。
-
URL:目標資源地址(支持 HTTP/HTTPS/FTP/SFTP 等協議)。
curl 常用選項速查表
選項 | 作用 | 示例 |
---|---|---|
請求控制 | ||
-X <方法> | 指定請求方法(GET/POST等) | curl -X DELETE https://api.example.com |
-H "頭字段" | 添加請求頭 | curl -H "Content-Type: json" URL |
-L | 自動跟隨重定向 | curl -L http://example.com/redirect |
數據傳輸 | ||
-d "數據" | POST 表單數據 | curl -d "name=John" URL |
-F "字段=值" | 上傳文件/表單(multipart) | curl -F "file=@test.jpg" URL |
--data-binary | 發送二進制數據 | curl --data-binary @data.bin URL |
輸出保存 | ||
-o 文件名 | 輸出到文件 | curl -o page.html URL |
-O | 保存為遠程文件名 | curl -O http://example.com/file.txt |
-s | 靜默模式(不顯示進度) | curl -s URL > /dev/null |
-v | 顯示詳細日志(調試用) | curl -v URL |
認證安全 | ||
-u 用戶:密碼 | 基本認證 | curl -u admin:12345 URL |
-k | 跳過 SSL 證書驗證(不安全) | curl -k https://self-signed.site |
其他常用 | ||
-I | 僅獲取響應頭(HEAD請求) | curl -I URL |
-C - | 斷點續傳 | curl -C - -O URL |
--limit-rate | 限速(如?100K ) | curl --limit-rate 200K URL |
-x 代理地址 | 使用代理 | curl -x http://proxy:8080 URL |
示例:curl -o index.html www.baidu.com
三、使用圖形界面方式設定IP
首先進行網絡服務檢查,NetworkManager這個服務處于運行狀態我們才可以配置IP地址。
打開網絡連接圖形界面的命令:nm-connection-editor
nm-connection-editor?是 NetworkManager 提供的一款圖形化網絡連接配置工具,在 Linux 系統中,它能讓用戶以直觀的圖形界面來管理網絡連接,而無需記憶復雜的命令行參數。
下圖是新加的網絡連接的初始狀態,什么都沒設定,接下來我們要對它重新設定一下。
nmcli工具: nmcli 是 NetworkManager 的命令行接口,用于管理網絡連接。
下面我們將檢查新創建的ens160網絡連接是否在使用
1、nmcli connection show
-
功能:此命令用于顯示系統中所有網絡連接的詳細信息。這些信息涵蓋連接的名稱、UUID(通用唯一識別碼)、設備、類型以及連接狀態等。
2、nmcli connection down <連接名稱>
-
功能:該命令用于停用指定名稱的網絡連接。當執行此命令后,對應的網絡接口將停止工作,無法再進行網絡通信。
3、nmcli connection up <連接名稱>
-
功能:此命令用于啟用指定名稱的網絡連接。執行該命令后,對應的網絡接口會重新開始工作,嘗試建立網絡連接。
nmtui 是 NetworkManager 提供的一個基于文本的用戶界面工具,它允許用戶以一種交互式、可視化的方式來配置和管理網絡連接,無需記憶復雜的命令行參數,對于不太熟悉命令行操作的用戶來說非常友好。
nmtui的界面如下圖,很多操作與nm-connection-editor一致,就不細致的講解了。
四、使用命令方式來設定網絡IP
1、通過命令臨時設定IP地址(系統重啟或網絡重啟或接口單獨重啟 后臨時配置的IP會消失)
ip a a
?是?ip addr add
?的縮寫形式,同理?ip a d
是?ip addr del
?的縮寫形式。所以ip addr add?192.168.52.200/24 dev ens160的效果跟下面ip a a 192.168.52.200/24 dev ens160的示例是一樣的
命令格式:ip a a <ip地址/子網掩碼> dev <device>? ? ? ? #添加臨時IP地址
? ? ? ? ? ? ? ? ? ip a d?<ip地址/子網掩碼> dev <device>? ? ? ? #刪除IP地址,臨時性的,因為這個命令只是在當前運行狀態下從指定網絡設備上移除了相應的 IP 地址配置,它不會修改系統中保存的網絡配置文件。
示例:ip a a 192.168.52.200/24 dev ens160
命令格式:ifconfig <device> <IP地址> netmask <子網掩碼>
示例:ifconfig ens160 192.168.52.201 netmask 255.255.255.0
2、通過命令永久設定IP地址
首先,使用 nmcli networking 查看網絡是否開啟,如果沒有開啟是無法永久設定IP地址的。
nmcli的常用命令
命令:1、nmcli device status? ? ? ? # 查看設備狀態--開啟或者關閉
? ? ? ? ? ?2、nmcli device show <device>? ? ? ? # 查看設備的信息,若<device>不指定設備名稱,則會默認查看所有設備的信息
? ? ? ? ? ?3、nmcli device disconnect <device>? ? ? ? # 斷開設備連接,設備本身不關閉
示例:nmcli device disconnect ens160? ? ? ? # 斷開設備ens160的連接,設備并不會關閉
? ? ? ? ? ?4、nmcli device connect <device>? ? ? ? # 重新連接設備,設備本身不關閉
示例:nmcli device connect ens160? ? ? ? ? ? # 重新連接設備ens160,設備并不會關閉
# 要先將設備ens160的網絡配置好,否則如果沒有配置好ens160的網絡,那重新連接設備也是無效的。
? ? ? ? ? ?5、nmcli device down <device>? ? ? ? ? ? ?# 關閉設備,相當于給設備斷電
示例:nmcli device down ens160? ? ? ? ? ? ?# 將設備ens160關閉
? ? ? ? ? ?6、nmcli device up <device>?? ? ? ? ? ? ? ? ?# 開啟設備,相當于給設備供電
示例:nmcli device up ens160? ? ? ? ? ? ? ? ? # 開啟設備ens160
? ? ? ? ? ?7、nmcli connection delete <網絡連接名稱>? ? ? ? # 刪除網絡連接
示例:
? ? ? ? ? ?8、nmcli connection add type <網絡連接類型> con-name <網絡連接名稱> ifname
<接口名稱> ipv4.method <ipv4地址的設置類型> ipv4.addresses <IP地址/子網掩碼> ipv4.gateway <網關地址>? ......
# 重新添加一個新的網絡連接,若ipv4地址的設置類型為DHCP(自動),則后面不用手動添加IP地址,省略號代表還有很多其它選項可以使用,這里就不全部列舉出來了。
nmcli connection add表示添加網絡連接,后面的參數可以交換位置。
例如:nmcli connection add con-name test ipv4.method auto ifname ens160 type ethernet
示例:
注:若一個設備用于兩個或以上的網絡連接,那只有最先設置的網絡連接會生效
? ? ? ? ? ? 9、nmcli connection modify <網絡連接名稱>? ?......? ? ? # 修改網絡連接
# 省略號位置的參數可以參考上面第八點--- 即重新添加一個新的網絡連接那個位置
nmcli connection modify表示修改網絡連接,后面的參數可以交換位置。
示例:????????
3、通過設置配置文件來永久設置IP地址
首先,要檢查網卡配置目錄里面的文件權限不要出錯了,否則無法激活網絡連接。
然后,就是修改網卡配置目錄里面的文件,只要修改完這個test.nmconnection文件之后對文件進行保存,就是永久性的設置。
下圖為原設置。
下圖為修改之后的設置,只修改了id和ipv4地址。
若想要上圖中文件的修改立即生效,需要輸入nmcli connection reload、nmcli connection up test這兩條命令,讓網絡配置重新生效。
永久性修改:
通過修改網卡配置目錄里文件的配置和使用nmcli命令修改后的配置都是永久性的。
例如:上圖中的IP地址、dns服務器和網關都是永久性的,前提是文件要保存設置。
五、網關定義及配置方法
網關(Gateway)?是連接不同網絡的設備或節點,負責在不同網絡間轉發數據。在 TCP/IP 網絡中,默認網關是本地網絡與其他網絡(如互聯網)通信的出口路由器的 IP 地址。當設備需要訪問不在同一子網的目標 IP 時,數據包會被發送到默認網關進行路由。
下圖中配置的網關是臨時的,系統重啟、網絡重啟、接口單獨重啟會讓網關消失。
六、DNS解析和DNS的配置方法
一、DNS的定義
DNS(Domain Name System,域名系統)?是一個分布式數據庫系統,用于將人類可讀的域名(如?www.example.com
)轉換為計算機可識別的IP地址(如?192.0.2.1
)。它是互聯網的“電話簿”,通過分層和分布式的設計,實現了高效、可靠的域名解析。
二、DNS的核心作用
-
域名解析:將域名轉換為IP地址(正向解析)或IP地址轉換為域名(反向解析)。
-
負載均衡:通過輪詢分配同一域名的多個IP地址,分散服務器壓力。
-
郵件路由:通過MX記錄指定郵件服務器的地址。
-
服務發現:支持多種記錄類型(如SRV記錄)定位特定服務(如VoIP、數據庫)。
三、DNS配置方法
下圖配置的DNS服務器是臨時的。