管理網絡
TCP/IP網絡模型,分四層:
- 應用層。這層常用的協議有SSH(遠程登錄)、HTTPS(安全web)、NFS或CIFS(文件共享),以及SMTP(電子郵件遞送)等。
- 傳輸層。傳輸協議有TCP(可靠連接導向型協議)和UDP(無連接數據報協議)。/etc/services文件中可以找到常用和已註冊的端口列表。
- 互聯網或網絡層數據從源主機傳送到目標主機。IPV4和IPV6協議是互聯網層協議。
- 鏈路層。 鏈路或介質存取層提供與物理介質的連接。常見的網絡類型是以太網(802.3)和無線局域網(802.11)。每一物理設備具有一個硬件地址(MAC),用於標識局域網絡段中數據包的目的地。
網絡接口的名稱,以接口類型開頭:
- 以太網以en開頭
- wlan接口以wl開頭
- wwan接口以ww開頭
在類型之後,接口名稱的其餘部分將基於服務器固件所提供的信息,或由PCI拓撲中設備的位置確定。
- oN表示這是一個板載設備,切服務器的固件提供設備的索引編號N。eno1代表板載以太網設備1。
- sN表示該設備位於PCI熱插拔槽N中。如ens3代表PCI熱插拔槽3中的以太網卡。
- pMsN表示這是一個位於插槽N中總線M上的PCI設備。如wlp4s0代表位於插槽0中PCI總線4上的WLAN卡。如果該卡是一個多功能設備,設備名稱中就可能會添加fn。enp0s1f0代表插槽1中總線0以上的以太網卡的功能0。
ipv4網絡
ipv4地址是一個32位數字,四個10 進制八位字節表示。地址分爲兩個部分:網絡部分和主機部分。子網掩碼指明有多少位的IPv4地址屬於子網。CIDR表示法,指定一個網絡前綴/24,表示24位用於網絡部分。24並不是固定數字。A 類網址(有8位表示網絡部分 ,且第一個字節的第一位必須是0,範圍0-127),B類網址(有16位網絡部分,第一個字節的第一位必須爲1,且第二位必須爲0。範圍128-191),C類網址(有24位網絡部分,網絡地址的第一個字節的前兩位必須爲1,而第三位必須爲0,範圍爲192-223)。
示例:
主機地址 | 192.168.1.107(c類地址) | 11000000.10101000.00000001.01101011 |
網絡前綴 | /24(255.255.255.0) | 11111111.11111111.11111111.00000000 |
網絡地址 | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
廣播地址 | 192.168.1.1255 | 11000000.10101000.00000001.11111111 |
主機地址 | 10.1.1.18(A類地址) | 00001010.00000001.00000001.00010010 |
網絡前綴 | /8(255.0.0.0) | 11111111.00000000.00000000.00000000 |
網絡地址 | 10.0.0.0 | 00001010.00000000.00000000.00000000 |
廣播地址 | 10.255.255.255 | 00001010.11111111.11111111.11111111 |
主機地址 | 172.168.181.23 | 10101100.10101000.10110101.00010111 |
網絡前綴 | /19(255.255.224.0) | 11111111.11111111.11100000.00000000 |
網絡地址 | 172.168.169.0 | 10101100.10101000.10100000.00000000 |
廣播地址 | 172.168.191.255 | 10101100.10101000.10111111.11111111 |
IPv6網絡
IPv6地址是以一個128爲數字,通常表示爲八組以分號分隔的四個十六進制的半字節。每個半字節均表示4位的IPV6地址。編寫IPv6地址,不需要編寫分號分隔的組中的前導0。但是,每個冒號分隔的組中必須至少寫入一個十六進制數字。一組或多組連續0可以通過正好一個::塊來合併。
編寫始終可讀的地址的一些提示:
- 抑制組中的前導零。
- 使用::來儘可能地縮短。
- 如果地址包含2個連續0組,切長度相等,最好將最左邊的零組縮短爲::,最右邊的組縮短爲:0: 。
- 一組0最好寫爲 :0:,將::留給連續的零組。
- 對十六進制數字使用小寫a到f。
- 如果在IPV6地址後面包括網絡端口,請始終將IPV6地址包括在方括號中。如[2001:db8:0:10::1]:80。
IPV6子網劃分
IPV6單播地址分爲2部分:網絡前綴和接口ID。網絡前綴標識子網。IPV6具有一個標準的子網掩碼/64,此情況下,地址的一半是網絡前綴,另一半是接口ID。每個單子網可以根據需要容納任意數量的主機。
常用IPv6地址和網絡
IPV6地址或網絡 | 用途 | 描述 |
::1/128 | 本地主機 | 等效於127.0.0.1/8的IPv6,在迴環接口上設置。 |
:: | 未指定地址 | 等效於0.0.0.0的IPv6。對於網絡服務,這可能表示其正在偵聽所有已配置的IP地址。 |
::/0 | 默認路由(IPv6) | 等效於0.0.0.0/0的IPv6。路由表中的默認路由與此網絡匹配;此網絡的路由器是在沒有更好路由的情況下發送所有流量的位置。 |
2000::/3 | 全局單播地址 | “普通”的IPv6地址目前由IANA從該空間進行分配。這等同於範圍從2000::/16到3fff::/16的所有網絡。 |
df00::/8 | 唯一本地地址(RFC4193) | 站點可以使用這些在組織中自主分配可路由的專用IP地址空間,但是這些網絡不能在全局internet上使用。 |
fe80::/10 | 本地鏈路地址 | 每個IPv6接口自動配置一個本地鏈路地址,該地址僅在fe80::/64網絡中的本地鏈路有效。 |
ff00::/8 |
多播 | 等效於224.0.0.0/4的IPv6。多播用於同時傳輸到多個主機,因爲IPv6沒有廣播地址。 |
IPv6的本地鏈路地址是一個無法路由的地址,僅用於於特定網絡鏈路上的主機進行通信。系統上的每個網絡接口都是通過fe80::/64網絡上的本地鏈路地址來自動配置。爲確保其唯一性,本地鏈路地址的接口ID是通過網絡接口的以太網硬件地址來構建的。將48位MAC地址轉換爲64位接口ID的一般方法是反轉7位的MAC地址,然後再其兩個字節之間插入ff:fe。
- 網絡前綴:fe80::/64
- MAC地址:00:11:22:aa:bb:cc。
- 本地鏈路地址:fe80::211:22ff:feaa:bbcc/64
IPv6 用ping6命令來操作。IPv6中沒有廣播地址,所以多播就很重要。ff02::1是一個很重要的多播地址,即全節點本地鏈路址。對此地址進行ping操作會將流量都發送到鏈路上的所有結點。與本地鏈路地址一樣,需要使用作用域標識符來指定鏈路作用域多播地址(從ff02::/8開始)。
IPv6中,以下接口ID是保留的,無法用於主機上的普通網絡地址:
- 由鏈路上所有路由器使用的全零標識符0000:0000:0000:0000。
- 標識符fdff:ffff:ffff:ff80到fdff:ffff:ffff:ffff。
DHCPv6可以對IPv6動態配置。主機將DHCPv6請求從其本地鏈路地址發送到ff02::1:2上的端口547/udp,即全dhcp服務器本地鏈路多播組。然後DHCPv6服務器通常向客戶端的本地鏈路地址上的端口546/UDP發送一個包含相應信息的回覆。‘
IPv6還支持另一個動態配置方法,即無狀態地址自動配置(SLAAC)。RedhatLinux8中的radvd軟件包允許基於RedhatLinux的IPv6路由器通過路由器播發提供SLAAC。
Linux有多種機制可以將主機名映射到IP地址,統稱爲名稱解析。一種方法時再各個系統上/etc/hosts文件中爲每個名稱設置一個靜態條目。需要手動更新每臺服務器的文件副本。
對於大多數主機,可以藉助DNS網絡服務,從主機名查找地址(或從地址查找主機名)。可以通過DHCP或名爲/etc/resolve.conf文件中的靜態設置來配置。
驗證網絡配置
識別網絡接口,ip link命令將列出系統上的所有網絡接口。
上面示例中,lo(這是連接到服務器本身的環回設備)。
ip命令來查看設備和地址信息。
- 活動接口爲UP。
- link/ether行指定設備的硬件(MAC)地址。
- inet行顯示IPv4地址、其網絡前綴長度和作業域。
- inet6行顯示IPv6地址、其網絡前綴長度和作用域。此地址屬於全局作用域,通常使用此地址。
- 該inet6行顯示接口具有鏈路作用域的ipv6地址,並且只能用於本地以太網鏈路上的通信。
路由故障排除
ip命令和route選項來顯示路由信息。
添加-6選項可顯示ipv6路由表:
追蹤流量採用的路由
追蹤網絡流量通過多個路由器到達遠程主機而採用的路徑,可使用traceroute或tracepath。這可以識別到您的某個路由器或中間路由器是否存在問題。
traceroute命令擁有可以跟蹤UDP(默認)、ICMP(-I)或TCP(-T)數據包路徑的選項。
tracepath6 和traceroute -6命令等效於IPv6版本的tracepath和traceroute。
端口和服務故障排除
/etc/services 文件中列出了標準端口的常用名稱。
ss命令可用於顯示套接字統計信息。ss命令旨在替換netstart這個工具。
從命令行配置網絡
networkmanager是監控和管理網絡設置的守護進程,配置文件保存再/etc/sysconfig/network-scripts目錄中。
nmcli實用程序可用於從命令行創建或編輯連接文件。
nmcli dev status 命令顯示所有網絡設備的狀態。
nmcli con show 命令可顯示所有連接的列表。要僅列出活動的連接,用 --active 選項。
nmcli con show name 列出name連接的當前設置。
nmcli con add 命令用於添加新的網絡連接。示例:
nmcli con add con-name eno2 type ethernet ifname eno2
此命令將爲接口eno2添加一個新連接eno2,使用dhcp獲取IPv4聯網信息並存在系統啓動後自動連接。通過偵聽本地鏈路上的路由器播發來獲取IPv6聯網設置。配置文件的名稱基於con-name選項的值 eno2,並保存配置文件。
nmcli con up name 命令將在其綁定到的網絡接口上激活name連接。採用的是連接名稱,而非網絡接口的名稱。
nmcli dev disconnect device 命令將斷開與網絡接口device的連接並將其關閉。此命令可縮寫爲nmcli dev dis device 。
nmcli con mod name 命令可用於更改連接的設置,這些更改還將保存在的連接的配置文件中。
nmcli con del name 命令可將從系統中刪除名爲name的連接,同時斷開它與設備的連接並刪除文件 /etc/sysconfig/network-scripts/ifcfg-name。
root用戶可以使用nmcli 對網絡配置進行必要的更改。
nmcli gen permissions 命令來查看自己的當前權限。
nmcli con reload 重新加載配置文件。
nmcli dev dis dev 在網絡接口dev上停用並斷開當前連接。
編輯網絡配置文件
ifcfg文件的IPv4配置選項
修改了配置文件後,允許nmcli con reload 使networkmanager讀取配置更改。接口還是需要重新啓動,以便更改生效。
更改系統主機名,hostname命令顯示或臨時修改系統的完全限定主機名。可以在 /etc/hostname文件中指定靜態主機名。
也可以hostnamecli 命令用於修改此文件。也可用於查看系統的完全限定主機名的狀態。示例:
配置名稱解析
通過getent hosts hostname 命令,利用/etc/hosts 文件測試主機名解析。
歸檔和傳輸文件
tar命令能夠列出存檔內容,或者將其文件提取到當前系統。
tar操作描述
選項 | 描述 |
-c、 --create | 創建一個新存檔。 |
-x、 --extract | 從現有存檔提取 |
-t、 --list | 列出存檔的目錄 |
所選的tar一般選項
選項 | 描述 |
-v 、 --verbose | 詳細信息。顯示存檔或提取的文件有哪些。 |
-f、 --file= | 文件名。此選項必須後接要使用或創建的存檔的文件名。 |
-p、 --preserver-permissions | 在提取存檔時保留文件和目錄的權限,而不去除umask。 |
tar壓縮選項概述
選項 | 描述 |
-z、 --gzip | 使用gzip壓縮方式(.tar.gz)。 |
-j、 --bzip2 | 使用bzip2壓縮方式(.tar .bz2)。bzip2的壓縮率比gzip高。 |
-J、 --xz | 使用xz壓縮方式(.tar .xz)。xz的壓縮率比bzip2更高。 |
tar命令的選項
- -c或--create 選項來創建存檔。
- -t 或 --list 選項來列出存檔的內容。
- -x或 --extract選項來提取存檔。
- -f 或 --file= 選項加上文件名,作爲要運行的存檔的參數。
- -v 或 --verbose選項以獲取詳細信息;用於查看添加到存檔或從中提取的文件有哪些。
創建新存檔時要使用的第一個選項爲c選項,後跟f選項,接着一個空格,然後是要創建的存檔的文件名,最後是應當添加到存檔中的文件和目錄列表。示例:
創建名爲archive.tar的存檔,其內容爲用戶主目錄中的file1、file2和file3。
tar -cf archive.tar file1 file2 file3
列出存檔的內容
t選項指示tar 列出存檔的內容。使用f選項,加上要查詢的存檔的名稱。例如:
tar -tf /root/etc.tar
創建壓縮存檔
tar 命令支持三種壓縮方式。
-z 或--gzip進行gzip壓縮。
-j或 --bzip2進行bzip2壓縮。
-J或 -xz進行 xz壓縮。
在系統之間安全地傳輸文件
scp命令是OpenSSH套件的一部分,可將文件從遠程系統複製到本地系統或從本地系統複製到遠程系統。
示例:
將hosts上的本地文件/etc/yum.conf和 /etc/hosts複製到remotehost遠程系統上remoteuser的主目錄:
scp /etc/yum.conf /etc/hosts remoteuser@remotehost:/home/remoteuser
從遠程系統複製到本地文件系統:
scp remoteuser@remotehost: /etc/hostname /home/user。
要以遞歸方式複製整個目錄樹,可以使用-r選項。示例:
remote host上的遠程目錄 /var/log以遞歸方式複製到host上的本地目錄 /tmp/。
scp -r root@remoteuser:/var/log /tmp
使用安全文件傳輸程序傳輸文件
以交互方式從SSH服務器上傳或下載文件,使用安全文件傳輸程序sftp。sftp命令的會話使用安全身份驗證機制,並將數據加密後再與SSH服務器來回傳輸。示例:
sftp remoteuser@remotehost
交互是sftp會接受各種命令,如ls、cd、rmdir和pwd。put命令將文件上載到遠程系統。get命令從遠程系統下載文件。exit命令可退出sftp會話。
在系統間安全地同步文件
使用rsync同步文件和目錄,與scp的區別在於,如果兩個服務器間的兩個文件或目錄相似,rsync將僅複製文件系統的差異部分,而scp仍復制所有內容。
rsync的一個優點是它能夠在本地系統和遠程系統之間安全而高效地複製文件。
rsync -n 用於執行空運行,顯示了命令正常運行時rsync所要進行的更改。
使用rsync進行同步時, -v或--verbose 選項提供更詳細的輸出。 -a或 --archive選項將啓用“存檔模式”。
通過rsync -a 啓用的選項(存檔模式)
選項 | 描述 |
-r | 以遞歸的方式同步整個目錄樹 |
-l | 同步符號鏈接 |
-p | 保留權限 |
-t | 保留時間戳 |
-g | 保留所有權 |
-o | 保留文件所有者 |
-D | 同步設備文件 |
存檔模式不會保留硬鏈接,如果想保留,請添加-H選項。爲resync命令鍵入源目錄時,目錄名稱中是否存在尾斜槓至關重要。它將角鬥同步到目標中的時目錄還是僅目錄中的內容。
l