1. 程式人生 > 其它 >Linux學習歷程(3)

Linux學習歷程(3)

1、自建yum倉庫,分別為網路源和本地源

  • 掛載光碟配置本地源
[root@centos8 ~]#rpm -q autofs || yum -y install autofs
[root@centos8 ~]#systemctl enable --now autofs

如圖,為本地掛載CDROM的yum源以及網路源


2、編譯安裝http2.4,實現可以正常訪問,並將編譯步驟和結果提交

  • 先關掉防火牆和SELinux
[root@centos8 ~]# systemctl disable --now firewalld 
[root@centos8 ~]# selinux  vim /etc/selinux/config SELINUX=disable
  • 提前安裝httpd需要的依賴包
[root@centos8 ~]# dnf install gcc make autoconf apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config
  • 下載httpd原始碼包
[root@centos8 ~]# wget https://dlcdn.apache.org//httpd/httpd-2.4.53.tar.bz2
  • 解壓httpd原始碼包到/usr/local/src
[root@centos8 ~]# tar xvf httpd-2.4.53.tar.bz2 -C /usr/local/src
  • 進入到解壓生成的資料夾內配置
[root@centos8 ~]# cd /usr/local/src/httpd-2.4.53/
[root@centos8 httpd-2.4.53]#./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl
  • 接著進行編譯並安裝
[root@centos8 httpd-2.4.53]# make -j 1 && make install #其中1為查詢當前cpu核數(lscpu檢視)
  • 配置環境
[root@centos8 ~]# echo 'PATH=/apps/httpd/bin/:$PATH' > /etc/profile.d/httpd.sh
[root@centos8 ~]# . /etc/profile.d/httpd.sh
  • 執行
[root@centos8 ~]# apachectl start
  • 可以進入網站

3、利用sed 取出ifconfig命令中本機的IPv4地址

[root@centos8 ~]#ifconfig #檢視網絡卡名稱
[root@centos8 ~]#ifconfig ens160|sed -n '2p'|tr -s ' '|cut -d ' ' -f3

4、刪除/etc/fstab檔案中所有以#開頭,後面至少跟一個空白字元的行的行首的#和空白字元

[root@centos8 ~]#cat /etc/fstab |  sed 's/^# *//'
[root@centos8 ~]#cat /etc/fstab |  sed 's/^#[[:space:]]*//'

5、處理/etc/fstab路徑,使用sed命令取出其目錄名和基名

#目錄名
[root@centos8 ~]#echo /etc/fstab | sed -nr 's/(^\/.*)(\/.*)/\1/p'
#基名
[root@centos8 ~]#echo /etc/fstab | sed -nr 's/(^\/.*)(\/.*)/\2/p'

6、列出ubuntu軟體管理工具apt的一些用法(自由總結)

apt install      #安裝軟體包
apt remove       #刪除軟體包
apt purge        #刪除軟體包和配置檔案
apt update       #重新整理儲存庫索引
apt upgrade      #升級所有可升級的軟體包
apt autoremove   #自動刪除不需要的包
apt full-upgrade #在升級軟體包時自動處理依賴關係
apt search       #搜尋應用程式
apt show         #顯示安裝細節
apt list         #列出已經安裝的包
apt edit-sources #修改更新源地址
apt depends      #檢視軟體依賴哪些包
apt redepends    #檢視軟體被哪些包依賴

7、簡述osi七層模型和TCP/IP五層模型
七層模型:
應用層 ----> 為應用程式提供服務
表示層 ----> 資料格式轉化、資料加密
會話層 ----> 建立、管理和維護會話
傳輸層 ----> 建立、管理和維護端到端的連線
網路層 ----> IP選址及路由選擇
資料鏈路層 ---->提供介質訪問和鏈路管理
物理層 ----> 物理層

五層模型:
應用層 --\
表示層 ----> 應用層
會話層 --/
傳輸層 ----> 傳輸層
網路層 ----> 網路層
資料鏈路層 ---->資料鏈路層
物理層 ----> 物理層


8、總結描述TCP三次握手四次揮手

  • 第一次握手:
    客戶向伺服器傳送連線請求段:SYN 報文段:(SYN=1,seq=n)
    SYN=1:建立連線請求控制段。
    seq=n:表示傳輸的報文段的第 1 個數據位元組的序列號是 n,並以此序列號代表
    整個報文段的序號(補充:sequence number,序號的意思。)
    客戶端進入 SYN_SENT(同步傳送)。

  • 第二次握手:
    伺服器收到 TCP 連線請求段後,如果同意,則發回確認報文段:
    (SYN=1,ACK=1,seq=m, ack_seq=n+1)。
    SYN=1:同意建立新連線的確認段。
    ack_seq=n+1:表示已經收到了序列號為 n 的報文段,準備接收序列號為 n+1
    的報文段。
    seq=m:伺服器告訴客戶確認報文段的第 1 個數據位元組的序列號是 m。
    伺服器由 LISTEN 進入 SYN_RCVD(同步收到)。

  • 第三次握手:只有第三次握手可攜帶資料。
    客戶對伺服器的 同意連線報文段 進行確認(ACK=1,seq=n+1,ack_seq=m+1)。
    seq=n+1:客戶傳輸的報文段的第一個資料位元組的序列號是 n+1。
    ack_seq=m+1:客戶期望接收伺服器序列號為 m+1 的報文段。當客戶傳送 ACK 時,客戶端進入 ESTAB-LISHED 狀態;當服務收到 ACK 後,也進入 ESTAB-LISHED 狀態;

  • 第一次揮手:
    客戶向伺服器傳送釋放連線報文段:(FIN=1,seq=j)。
    首部的 FIN=1:TCP 報文段的傳送端資料傳送完畢,請求釋放連線。
    序號 seq=j:表示傳輸的第一個資料位元組的序號是 j 客戶端狀態ESTABLISHED 進入 FIN_WAIT_1(終止等待 1 狀態)。

  • 第二次揮手:
    伺服器向客戶傳送確認段:(ACK=1,seq=k,ack_seq=j+1) 。
    ACK=1:標識確認字號段有效。
    確認序號 ack_seq=j+1:表示伺服器期望接收客戶資料包序號為 j+1 的包。
    序號 seq=k:表示伺服器傳輸的第一個資料位元組的序號是 k。
    伺服器狀態由 ESTABLISHED 進入 CLOSE_WAIT(關閉等待) 客戶端收到 ACK 段後,由 FIN_WAIT_1 進入 FIN_WAIT_2。

  • 第三次揮手:
    伺服器向客戶傳送釋放連線報文段:(FIN=1,ACK=1,seq=o,ack_seq=j+1)。
    FIN=1:請求釋放連線。
    ACK=1:標識確認字號段有效。
    確認序號 ack_seq=j+1:表示伺服器期望接收客戶資料包序號為 j+1 的包。
    序號 seq=o:表示自己傳輸的第一個資料位元組的序號是 o。
    伺服器狀態由 CLOSE_WAIT 進入 LAST_ACK(最後確認狀態)。

  • 第四次揮手:
    客戶向伺服器傳送確認段:(ACK=1,seq=j+1,ack_seq=o+1) 。
    ACK=1:標識確認字號段有效。
    確認序號 ack_seq=o+1:表示客戶期望接收伺服器資料包序號為 o+1 的包。
    序號 seq=j+1:表示客戶傳輸的第一個資料位元組的序號是 j+1 客戶端狀態由FIN_WAIT_2 進入 TIME_WAIT,等待 2MSL 時間,進入 CLOSED狀態,釋放連線。
    伺服器在收到最後一次 ACK 段後,由 LAST_ACK 進入 CLOSED,釋放連線。


9、描述TCP和UDP區別

  • TCP 提供面向連線、可靠、有序、位元組流傳輸服務; UDP 提供無連線、不可靠的資料報盡力傳輸服務。
  • UDP 具有較好的實時性,工作效率比 TCP 高,適用於對高速傳輸和實時性 較高的通訊或廣播通訊。
  • UDP 沒有擁塞控制,因此網路出現擁塞不會使源主機的傳送速率降低。
  • 每一條 TCP 連線只能是點到點的; UDP 支援一對一、一對多、多對一和多對多的互動通訊。
  • TCP 首部開銷 20 位元組;UDP 的首部開銷小,只有 8 個位元組。
  • TCP 對系統資源要求較多; UDP 對系統資源要求較少。
  • TCP 的邏輯通訊通道是全雙工的可靠通道。 UDP 則是不可靠通道。

10、網絡卡繫結bond0的實現

  • 模擬裝置兩個網絡卡
  • 新增bonding介面
[root@centos8 ~]#nmcli connection add type bond con-name testbond0 ifname bond0 mode active-backup ipv4.method manual ipv4.address 192.168.198.135/24
  • 新增從屬介面
[root@centos8 ~]#nmcli connection add type bond-slave ifname ens224 master bond0  #將eth0新增到bond0
[root@centos8 ~]#nmcli connection add type bond-slave ifname ens160 master bond0  #將eth1新增到bond0
  • 啟動從屬介面
[root@centos8 ~]#nmcli connection up bond-slave-ens224
[root@centos8 ~]#nmcli connection up bond-slave-ens160
  • 啟動bond0介面
[root@centos8 ~]#nmcli connection up testbond0
  • bonding後的介面