網絡管理

網絡概念

  • 網絡應用程序

    • Web 瀏覽器(Chrome、IE、Firefox等)
      即時消息(QQ、微信、釘釘等)
      電子郵件(Outlook、foxmail 等)
      協作(視頻會議、VNC、Netmeeting、WebEx 等)
      web網絡服務(apache,nginx,IIS)
      文件網絡服務(ftp,nfs,samba)
      數據庫服務( MySQL,MariaDB, MongoDB)
      中間件服務(Tomcat,JBoss)
      安全服務( Netfilter)
  • 用戶應用程序對網絡的影響

    • 批處理應用程序

      • FTP、TFTP、庫存更新
        無需直接人工交互
        帶寬很重要,但并非關鍵性因素
    • 交互式應用程序

      • 庫存查詢、數據庫更新。
        人機交互。
        因為用戶需等待響應,所以響應時間很重要,但并非關鍵性因素,除非要等待很長時間。
    • 實時應用程序

      • VoIP、視頻
        人與人的交互
        端到端的延時至關重要
  • 網絡的特征

    • 速度、成本、安全性、可用性、可擴展性、可靠性、拓撲
  • 拓撲結構

    • 物理拓撲分類:總線拓撲、環狀拓撲、雙環拓撲、星型拓撲、擴展星型拓撲、全網拓撲、部分全網拓撲

    • 邏輯拓撲

網絡設備

  • Hub集線器

    • 基于CSMA/CD;
      共享帶寬、半雙工
      Hub并不記憶該信息包是由哪個MAC地址發出,哪個MAC地址在Hub的哪個端口
  • 以太網橋

    • 交換式以太網的優勢

      • 擴展了網絡帶寬
      • 分割了網絡沖突域,使網絡沖突被限制在最小的范圍內
      • 交換機作為更加智能的交換設備,能夠提供更多用戶所要求的功能:優先級、虛擬網、遠程檢測……
    • 以太網橋的工作原理:

      • 以太網橋監聽數據幀中源MAC地址,學習MAC,建立MAC表

      • 對于未知MAC地址,網橋將轉發到除接收該幀的端口之外的所有端口

      • 當網橋接到一個數據幀時,如果該幀的目的位于接收端口所在網段上,它就過濾掉該數據幀;如果目的MAC地址在位于外一個端口,網橋就將該幀轉發到該端口

      • 當網橋接到廣播幀時候,它立即轉發到除接收端口之外的所有其他端口

    • Hub和交換機比較

      • 集線器屬于OSI的第一層物理層設備,而網橋屬于OSI的第二層數據鏈路層設備
      • 從工作方式來看,集線器是一種廣播模式,所有端口在一個沖突域里面。網橋的可以通過端口隔離沖突
      • Hub是所有共享總線和共享帶寬。網橋每個端口占一個帶寬
  • 路由器:

    • 路由:把一個數據包從一個設備發送到不同網絡里的另一個設
      備上去。這些工作依靠路由器來完成。路由器只關心網絡的狀態和決定網絡中的最佳路徑。路由的實現依靠路由器中的
      路由表來完成

      • 查看路由表:route -n
    • 路徑選擇的算法(路由協議):rip(路由器最少為標準)、ospf(根據速度)、eigrp、igrp、isis、bgp

    • 實現路由功能,需要路由器:

      • 分隔廣播域
        選擇路由表中到達目標最好的路徑
        維護和檢查路由信息
        連接廣域網
  • 網絡線纜和接口

    • Twisted-Pair(雙絞線)

      • 基帶:數字
        寬帶:模擬
    • 同軸電纜:

      • 兩個設備之間的距離最大185m
        10Base2:最大距離200m,實際185m
        10Base5:最大距離500m
    • Fiber-Optic:
  • UTP:

    • T568B:直通線
      T568A:交叉線,13對調,26對調;
    • 交換機已經做完交叉線了;

      橙白、橙、綠白、藍、藍白、綠、棕白、棕 ,橙藍綠棕,3、5對調

OSI模型的七層結構

資源子網

  • 應用層

    • 網絡進程訪問應用層

      • 為應用程序進程(如:電子郵件、文件傳輸和終端仿真)提供網絡服務
      • 提供用戶身份驗證
  • 表示層

    • 數據表示

      • 確保接收系統可以讀出該數據
      • 格式化數據
      • 構建數據
      • 協商用于應用層的數據傳輸語法
      • 提供加密
  • 會話層

    • 主機間通信

      • 建立、管理和終止在應用程序之間的會話
  • 傳輸層

    • 負責向兩個主機中進程之間的通信提供服務
    • 傳輸問題

      • 確保數據傳輸的可靠性
      • 建立、維護和終止虛擬電路
      • 通過錯誤檢測和恢復
      • 信息流控制來保障可靠性

通信子網

  • 網絡層

    • 數據傳輸

      • 路由數據包
      • 選擇傳遞數據的最佳路徑
      • 支持邏輯尋址和路徑選擇
  • 數據鏈路層

    • 訪問介質

      • 定義如何格式化數據以便進行傳輸以及如何控制對網絡的訪問
      • 支持錯誤檢測
  • 物理層

    • 二進制傳輸

      • 為啟動、維護以及關閉物理鏈路定義另外電氣規范、機械規范、過程規范和功能規范

TCP/IP協議棧

  • TCP/IP協議體系結構是專門針對于使用TCP/IP協議簇的廣域計算機網絡而開發的;

  • 應用層(會話層、表示層、應用層):以具體的數據報文為單位進行傳輸
    傳輸層:在TCP/IP協議體系中,TCP是以數據段為單位進行傳輸,UDP是以數據報為單位進行傳輸
    internet層:傳輸的單位是分組(或者是包),一個分組可以包含多個幀,分組的大小也要根據不同協議而定
    網絡訪問層
    數據鏈路層:傳輸的單位是幀,一個幀包括多個比特,但一個幀的大小必須是一個整數字節。不同協議的幀大小不一樣
    物理層:以最原始的比特流格式傳輸,bit

傳輸層


TCP包頭

  • 源端口、目標端口:計算機上的進程要和其他進程通信是要通過計算機端口的,而一個計算機端口某個時刻只能被一個進程占用,所以通過指定源端口和目標端口,就可以知道是哪兩個進程需要通信。源端口、目標端口各用16位表示的,可推算計算機的端口個數為2^16個
  • 序列號:表示本報文段所發送數據的第一個字節的編號。在TCP連接中所傳送的字節流的每一個字節都會按順序編號。由于序列號由32位表示,所以每2^32個字節,就會出現序列號回繞,再次從 0 開始

  • 確認號:表示接收方期望收到發送方下一個報文段的第一個字節數據的編號。也就是告訴發送發:我希望你(指發送方)下次發送的數據的第一個字節數據的編號是這個確認號。也就是告訴發送方:我希望你(指發送方)下次發送給我的TCP報文段的序列號字段的值是這個確認號

  • 數據偏移:由于TCP首部包含一個長度可變的選項部分,所以需要這么一個值來指定這個TCP報文段到底有多長。它指出 TCP 報文段的數據起始處距離 TCP 報文段的起始處有多遠,即TCP報文段的首部長度。該字段的單位是32位字,即:4個字節

  • URG:表示本報文段中發送的數據是否包含緊急數據。后面的緊急指針字段(urgent pointer)只有當URG=1時才有效

  • ACK:表示是否前面的確認號字段是否有效。ACK=1,表示有效。只有ACK=1時,前面的確認號字段才有效。TCP規定,連接建立后,ACK必須為1,帶ACK標志的TCP報文段稱為確認報文段

  • PSH:提示接收端應用程序應該立即從TCP接收緩沖區中讀走數據,為接收后續數據騰出空間。如果為1,則表示對方應當立即把數據提交給上層應用,而不是緩存起來,如果應用程序不將接收到的數據讀走,就會一直停留在TCP接收緩沖區中

  • RST:如果收到一個RST=1的報文,說明與主機的連接出現了嚴重錯(如主機崩潰),必須釋放連接,然后再重新建立連接?;蛘哒f明上次發送給主機的數據有問題,主機拒絕響應,帶RST標志的TCP報文段稱為復位報文段

  • SYN:在建立連接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求建立連接的報文段;當SYN=1,ACK=1時,表示對方同意建立連接。SYN=1,說明這是一個請求建立連接或同意建立連接的報文。只有在前兩次握手中SYN才置為1,帶SYN標志的TCP報文段稱為同步報文段

  • FIN:表示通知對方本端要關閉連接了,標記數據是否發送完畢。如果FIN=1,即告訴對方:“我的數據已經發送完畢,你可以釋放連接了”,帶FIN標志的TCP報文段稱為結束報文段

  • 窗口大?。罕硎粳F在運行對方發送的數據量,也就是告訴對方,從本報文段的確認號開始允許對方發送的數據量

  • 校驗和:提供額外的可靠性

  • 緊急指針:標記緊急數據在數據字段中的位置。

  • 選項部分:其最大長度可根據TCP首部長度進行推算。TCP首部長度用4位表示,選項部分最長為:(2^4-1)*4-20=40字節

有限狀態機FSM:Finite State Machiine

  • CLOSED 沒有任何連接狀態

  • LISTEN 偵聽狀態,等待來自遠方TCP端口的連接請求

  • SYN-SENT 在發送連接請求后,等待對方確認

  • SYN-RECEIVED 在收到和發送一個連接請求后,等待對方確認

  • ESTABLISHED 代表傳輸連接建立,雙方進入數據傳送狀態

  • FIN-WAIT-1 主動關閉,主機已發送關閉連接請求,等待對方確認

  • FIN-WAIT-2 主動關閉,主機已收到對方關閉傳輸連接確認,等待對方發送關閉傳輸連接請求

  • TIME-WAIT 完成雙向傳輸連接關閉,等待所有分組消失

  • CLOSE-WAIT 被動關閉,收到對方發來的關閉連接請求,并已確認

  • LAST-ACK 被動關閉,等待最后一個關閉傳輸連接確認,并等待所有分組消失

  • CLOSING 雙方同時嘗試關閉傳輸連接,等待對方確認

客戶端的典型狀態轉移

  • 客戶端通過connect系統調用主動與服務器建立連接connect系統調用首先給服務器發送一個同步報文段,使連接轉移到SYN_SENT狀態。

  • 此后connect系統調用可能因為如下兩個原因失敗返回:

    • 1、如果connect連接的目標端口不存在(未被任何進程監聽),或者該端口仍被處于TIME_WAIT狀態的連接所占用(見后文),則服務器將給客戶端發送一個復位報文段,connect調用失敗。

    • 2、如果目標端口存在,但connect在超時時間內未收到服務器的確認報文段,則connect調用失敗。

  • connect調用失敗將使連接立即返回到初始的CLOSED狀態。如果客戶端成功收到服務器的同步報文段和確認,則connect調用成功返回,連接轉移至ESTABLISHED狀態

  • 當客戶端執行主動關閉時,它將向服務器發送一個結束報文段,同時連接進入FIN_WAIT_1狀態。若此時客戶端收到服務器專門用于確認目的的確認報文段,則連接轉移至FIN_WAIT_2狀態。當客戶端處于FIN_WAIT_2狀態時,服務器處于CLOSE_WAIT狀態,這一對狀態是可能發生半關閉的狀態。此時如果服務器也關閉連接(發送結束報文段),則客戶端將給予確認并進入TIME_WAIT狀態

  • 客戶端從FIN_WAIT_1狀態可能直接進入TIME_WAIT狀態(不經過FIN_WAIT_2狀態),前提是處于FIN_WAIT_1狀態的服務器直接收到帶確認信息的結束報文段(而不是先收到確認報文段,再收到結束報文段)

  • 處于FIN_WAIT_2狀態的客戶端需要等待服務器發送結束報文段,才能轉移至TIME_WAIT狀態,否則它將一直停留在這個狀態。如果不是為了在半關閉狀態下繼續接收數據,連接長時間地停留在FIN_WAIT_2狀態并無益處。連接停留在FIN_WAIT_2狀態的情況可能發生在:客戶端執行半關閉后,未等服務器關閉連接就強行退出了。此時客戶端連接由內核來接管,可稱之為孤兒連接(和孤兒進程類似)。

  • Linux為了防止孤兒連接長時間存留在內核中,定義了兩個內核參數:

    • /proc/sys/net/ipv4/tcp_max_orphans 指定內核能接管的孤兒連接數目

    • /proc/sys/net/ipv4/tcp_fin_timeout。,指定孤兒連接在內核中生存的時間

有限狀態機

  • 客戶端先發送一個FIN給服務端,自己進入了FIN_WAIT_1狀態,這時他等待接收服務端的報文,該報文會有三種可能:

    • 只有服務端的ACK
      只有服務端的FIN
      基于服務端的ACK,又有FIN
    1. 只收到服務器的ACK,客戶端會進入FIN_WAIT_2狀態,后續當收到服務端的FIN時,回應發送一個ACK,會進入到TIME_WAIT狀態,這個狀態會持續2MSL(TCP報文段在網絡中的最大生存時間,RFC 1122標準的建議值是2min).客戶端等待2MSL,是為了當最后一個ACK丟失時,可以再發送一次。因為服務端在等待超時后會再發送一個FIN給客戶端,進而客戶端知道ACK已丟失

    2. 只有服務端的FIN時,回應一個ACK給服務端,進入CLOSING狀態,然后接收到服務端的ACK時,進入TIME_WAIT狀態

    3. 同時收到服務端的ACK和FIN,直接進入TIME_WAIT狀態

TCP超時重傳

  • 異常網絡狀況下(開始出現超時或丟包),TCP控制數據傳輸以保證其承諾的可靠服務

  • TCP服務必須能夠重傳超時時間內未收到確認的TCP報文段。為此,TCP模塊為每個TCP報文段都維護一個重傳定時器,該定時器在TCP報文段第一次被發送時啟動。如果超時時間內未收到接收方的應答,TCP模塊將重傳TCP報文段并重置定時器。至于下次重傳的超時時間如何選擇,以及最多執行多少次重傳,就是TCP的重傳策略

  • 與TCP超時重傳相關的兩個內核參數:

    • /proc/sys/net/ipv4/tcp_retries1,指定在底層IP接管之前TCP最少執行的重傳次數,默認值是3

    • /proc/sys/net/ipv4/tcp_retries2,指定連接放棄前TCP最多可以執行的重傳次數,默認值是15(一般對應13~30min)

擁塞控制

  • TCP為提高網絡利用率,降低丟包率,并保證網絡資源對每條數據流的公平性。即所謂的擁塞控制

  • TCP擁塞控制的標準文檔是RFC 5681,其中詳細介紹了擁塞控制的四個部分:慢啟動(slow start)、擁塞避免(congestion avoidance)、快速重傳(fast retransmit)和快速恢復(fast recovery)。擁塞控制算法在Linux下有多種實現,比如reno算法、vegas算法和cubic算法等。它們或者部分或者全部實現了上述四個部分

  • 當前所使用的擁塞控制算法

    • /proc/sys/net/ipv4/tcp_congestion_control

TCP協議

  • 傳輸層通過port號,確定應用層協議
  • Port number:

    • tcp:傳輸控制協議,面向連接的協議;通信前需要建立虛擬鏈路;結束后拆除鏈路
      0-65535

    • udp:User Datagram Protocol,無連接的協議
      0-65535

    • IANA:互聯網數字分配機構(負責域名,數字資源,協議分配)

      • 0-1023:系統端口或特權端口(僅管理員可用) ,眾所周知,永久的分配給固定的系統應用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)

      • 1024-49151:用戶端口或注冊端口,但要求并不嚴格,分配給程序注冊為某應用使用,1433/tcp(SqlServer),1521/tcp(oracle),3306/tcp(mysql),11211/tcp/udp (memcached)

      • 49152-65535:動態端口或私有端口,客戶端程序隨機使用的端口

      • 其范圍的定義:/proc/sys/net/ipv4/ip_local_port_range

Internet


  • 運行于 OSI 網絡層
    面向無連接的協議
    獨立處理數據包
    分層編址
    盡力而為傳輸
    無數據恢復功能

IP報頭

  • 版本:占4位,指 IP 協議的版本目前的IP協議版本號為4

  • 首部長度:占4位,可表示的最大數值是15個單位,一個單位為4字節,因此IP 的首部長度的最大值是60字節

  • 區分服務:占8位,用來獲得更好的服務,在舊標準中叫做服務類型,但實際上一直未被使用過.后改名為區分服務.只有在使用區分服務(DiffServ)時,這個字段才起作用.一般的情況下都不使用

  • 總長度:占16位,指首部和數據之和的長度,單位為字節,因此數據報的最大長度為 65535(2^16-1) 字節.總長度必須不超過(對應層的傳輸介質的)最大傳送單元 MTU

  • 標識:占16位,它是一個計數器,通常,每發送一個報文,改值會加1, 也用于數據包分片,在同一個包的若干分片中,該值是相同的

  • 標志(flag):占3位,目前只有前兩位有意義。

    • MF:標志字段的最低位是MF(More Fragment),MF=1表示后面還有分片,MF=0 表示最后一個分片

    • DF:標志字段中間的一位是DF(Don’t Fragment),只有當 DF=0時才允許分片

  • 片偏移:占13位,指較長的分組在分片后,某片在原分組中的相對位置.片偏移以8個字節為偏移單位,

  • 生存時間:占8位,記為TTL (Time To Live) 數據報在網絡中可通過的路由器數的最大值,TTL 字段是由發送端初始設置一個 8 bit字段.推薦的初始值由分配數字 RFC 指定,當前值為64.發送 ICMP 回顯應答時經常把 TTL 設為最大值 255

  • 協議:占8位,指出此數據報攜帶的數據使用何種協議以便目的主機的IP層將數據部分上交給哪個處理過程, 1表示為 ICMP協議, 2表示為 IGMP 協議, 6表示為 TCP 協議, 17表示為UDP 協議

  • 首部檢驗和:占16位,只檢驗數據報的首部不檢驗數據部分.這里不采用 CRC 檢驗碼而采用簡單的計算方法

  • 源地址和目的地址:都各占 4 字節,分別記錄源地址和目的地址

  • 可變部分:必須是4字節的整數倍,當可選字段不夠時,由填充部分補齊;

IP地址

  • 它們可唯一標識 IP 網絡中的每臺設備

  • 每臺主機(計算機、網絡設備、外圍設備)必須具有唯一的地址

  • IP地址由兩部分組成:

    • 網絡ID:

      • 標識網絡
        每個網段分配一個網絡ID
    • 主機 ID:

      • 標識單個主機
        由組織分配給各設備
  • IP(internet protocol)地址:網絡號+主機號

    • IPv4:32bits
      IPv6:128bits

      • IPv4地址分類:

        • 公式1:一個網絡中IP數量=2^主機ID位-2
          公式2:多少個網絡=2^可變的網絡ID位
          公式3:網絡ID值=IP和子網掩碼相“與”
          公式4:CIDR 無類域間路由
          IP/網絡ID位數=IP/(32-主機ID位數)
          公式5:劃分子網
          劃分子網的數=2^借位數(網絡ID位向主機ID位借位)
      • A類:
        前8位為網絡號,后24位為主機號
        網絡號:(第1位為0)
        0 000 0000 – 0 111 1111 :0-127
        網絡數量:126(1-126)
        每個網絡中的主機數量:2^24-2(16777214)(排除全0、全1)
        默認子網掩碼:255.0.0.0/8
        私網地址:只能在本地進行通訊;10.0.0.0/255.0.0.0

      • B類:
        前16位為網絡號,后16位為主機號
        網絡號:(前2位為10)
        10 00 0000-10 11 1111 :128-191
        網絡數:2^14
        每個網絡中的主機數量:2^16-2
        默認子網掩碼:255.255.0.0/16
        私網地址:172.16.0.0-172.31.0.0

      • C類:
        前24位為網絡號,后8位為主機號
        網絡號:(前3位為110)
        110 0 0000-110 1 1111 :192-223
        網絡數:2^21
        每個網絡中的主機數量:2^8-2
        默認子網掩碼:255.255.255.0 , /24

      • D類:組播通訊
        1110 0000-1110 1111 :224-239

      • E類:科研通訊
        240-254

      • 無類:網絡ID和主機ID根據情況來指定

        • 子網掩碼:32位二進制,和IP配合使用,高位全為1對應網絡ID位,低位全為0對應主機ID位
        • 網絡ID值=子網掩碼與IP地址按位進行“與”運算,從而取出其網絡地址;(1和#相“與”是#,0和#相“與”是0)
        • CIDR(無類域間路由):IP/網絡ID位數
    • 公共IP地址

      • A類:
        1.0.0.0 – 9.255.255.255
        11.0.0.0 – 126.255.255.255
      • B類:
        128.0.0.0 – 172.15.255.255
        172.32.0.0 – 191.255.255.255
      • C類:
        192.0.0.0 – 192.167.255.255
        192.169.0.0 – 223.255.255.255
    • 私有IP地址

      • A類:10.0.0. – 10.255.255.255
      • B類:172.16.0.0 – 172.31.255.255
      • C類:192.168.0.0 – 192.168.255.255
    • 特殊地址

      • 0.0.0.0
        0.0.0.0不是一個真正意義上的IP地址。它表示一個集合:所有不清楚的主機和目的網絡。

      • 255.255.255.255
        限制廣播地址。對本機來說,這個地址指本網段內(同一廣播域)的所有主機

      • 127.0.0.1~127.255.255.254
        本機回環地址,主要用于測試。在傳輸介質上永遠不應該出現目的地址為“127.0.0.1”的 數據包。

      • 224.0.0.0到239.255.255.255
        組播地址,224.0.0.1特指所有主機,224.0.0.2特指所有路由器。
        224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒體程序

      • 169.254.x.x
        如果Windows主機使用了DHCP自動分配IP地址,而又無法從DHCP服務器獲取地址,系統會為主機分配這樣地址。

    • 網絡地址、主機地址、廣播地址

      • 網絡地址:用來標識一個有類或無類網絡的地址,是對應網絡或子網的第一個IPv4地址,即“主機ID”部分全為0的IPv4地址。

      • 主機地址:除了網絡地址和廣播地址這兩個一頭一尾的地址外,中間的其他所有地址都是主機地址,可以直接分配給主機使用

      • 廣播地址:是一個有類或無類網絡中的最后一個IPv4地址,即“主機ID”部分全為1的IPv4地址

網絡配置

跨網絡通信:路由

  • 路由分類:

    • 主機路由
      網絡路由
      默認路由
      優先級:精度越高,優先級越高
  • 路由表的構成:

    Destination  Gateway     Genmask         Flags   Metric  Ref     Use Iface
      link-local      *        255.255.0.0     U       1002     0        0 eth0
    • 目標網絡(Destination):網絡ID、子網掩碼
      接口(IFace):到達目標網絡,從哪個接口出來
      網關(gateway):下一個鄰近路由器的鄰近接口的IP地址,如果目標網絡和本路由器直接連接,網關為本路由的相對應接口的IP地址

基本網絡配置

  • 將Linux主機接入到網絡,需要配置網絡相關設置。

    • 一般包括如下內容:
      主機名
      IP/netmask
      路由:默認網關
      DNS服務器

      • 主DNS服務器
        次DNS服務器
        第三DNS服務器

網絡配置方式

  • 靜態指定:

    • ifcfg: ifconfig, route, netstat
      ip: object {link, addr, route}, ss, tc
      system-config-network-tui (setup)
      配置文件
      CentOS 7:網絡配置工具:nmcli, nmtui, nm-connection-editor
  • 動態分配:

    • DHCP: Dynamic Host Configuration Protocol

    • 動態主機配置協議DHCP
      源MAC 、目標MAC(FF.FF.FF.FF.FF.FF)、源IP0.0.0.0 、目標IP 255.255.255.255

  • 配置網絡接口

    • 接口命名方式:CentOS 6:

      • 以太網:eth[0,1,2,…]

        ppp:ppp[0,1,2,…]

  • 配置動態路由

    • 通過守護進程獲取動態路由

      • 安裝quagga包,支持多種格式的RIP、OSPF和BGP
      • 命令vtysh配置
  • ifconfig命令

    • ifconfig [interface]

      • ifconfig -a
        ifconfig IFACE [up|down]
    • ifconfig interface [aftype] options | address …

      • ifconfig IFACE IP/netmask [up]
        ifconfig IFACE IP netmask NETMASK
        注意:立即生效
    • 啟用混雜模式:[-]promisc

  • route命令
    路由管理命令

    • 查看:route -n

    • 添加:route add
      route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

      • 目標:192.168.1.3 網關:172.16.0.1
        route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
      • 目標:192.168.0.0 網關:172.16.0.1
        route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
        route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
    • 默認路由,網關:172.16.0.1
      route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
      route add default gw 172.16.0.1

    • 刪除:route del
      route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

      • 目標:192.168.1.3 網關:172.16.0.1
        route del -host 192.168.1.3
      • 目標:192.168.0.0 網關:172.16.0.1
        route del -net 192.168.0.0 netmask 255.255.255.0
  • netstat命令
    netstat – Print network connections, routing tables,interface statistics, masquerade connections, and multicast memberships

    • 顯示網絡連接:
      netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]

      • -t: tcp協議相關
        -u: udp協議相關
        -w: raw socket相關
        -l: 處于監聽狀態
        -a: 所有狀態
        -n: 以數字顯示IP和端口;
        -e:擴展格式
        -p: 顯示相關進程及PID
    • 常用組合:
      -tan, -uan, -tnl, -unl

    • 顯示路由表:
      netstat {–route|-r} [–numeric|-n]

      • -r: 顯示內核路由表
        -n: 數字格式
    • 顯示接口統計數據:
      netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]

      • netstat -i
        netstat –I=IFACE
        ifconfig -s eno16777736
  • ifstat命令
    ifstat:統計網絡接口活動狀態的工具

    • 選項:

      • -l 監測環路網絡接口(lo)。缺省情況下,ifstat監測活動的所有非環路網絡接口。經使用發現,加上-l參數能監測所有的網絡接口的信息,而不是只監測 lo的接口信息,也就是說,加上-l參數比不加-l參數會多一個lo接口的狀態信息。

        -a 監測能檢測到的所有網絡接口的狀態信息。使用發現,比加上-l參數還多一個plip0的接口信息,搜索一下發現這是并口(網絡設備中有一 個叫PLIP (Parallel Line Internet Protocol).它提供了并口…)

        -z 隱藏流量是無的接口,例如那些接口雖然啟動了但是未用的

        -i 指定要監測的接口,后面跟網絡接口名

        -s 等于加-d snmp:[comm@][#]host[/nn]] 參數,通過SNMP查詢一個遠程主機

        -h 顯示簡短的幫助信息

        -n 關閉顯示周期性出現的頭部信息(也就是說,不加-n參數運行ifstat時最頂部會出現網絡接口的名稱,當一屏顯示不下時,會再一次出現接口的名稱,提示我們顯示的流量信息具體是哪個網絡接口的。加上-n參數把周期性的顯示接口名稱關閉,只顯示一次) -t 在每一行的開頭加一個時間戳(能告訴我們具體的時間)

        -T 報告所有監測接口的全部帶寬(最后一列有個total,顯示所有的接口的in流量和所有接口的out流量,簡單的把所有接口的in流量相加,out流量相加)

        -w 用指定的列寬,而不是為了適應接口名稱的長度而去自動放大列寬

        -W 如果內容比終端窗口的寬度還要寬就自動換行

        -S 在同一行保持狀態更新(不滾動不換行)注:如果不喜歡屏幕滾動則此項非常方便,與bmon的顯示方式類似

        -b 用kbits/s顯示帶寬而不是kbytes/s

        -q 安靜模式,警告信息不出現

        -v 顯示版本信息

        -d 指定一個驅動來收集狀態信息

  • ip

    配置Linux網絡屬性:ip命令
    ip – show / manipulate routing, devices, policy routing and tunnels
    ip [ OPTIONS ] OBJECT { COMMAND | help }
    OBJECT := { link | addr | route }

    • ip link – network device configuration

      • set dev IFACE

        • 可設置屬性:
          up and down:激活或禁用指定接口
          ifup/ifdown
      • show [dev IFACE]:指定接口
        [up]:僅顯示處于激活狀態的接口

    • ip addr { add | del } IFADDR dev STRING

      • [label LABEL]:添加地址時指明網卡別名
        [scope {global|link|host}]:指明作用域

        • global: 全局可用
          link: 僅鏈接可用
          host: 本機可用
      • [broadcast ADDRESS]:指明廣播地址

      • ip address show – look at protocol addresses

      • [dev DEVICE]
        [label PATTERN]
        [primary and secondary]

      • ip address flush – 使用格式同show

        ip addr add 172.16.100.100/16 dev eth0 label eth0:0
        ip addr del 172.16.100.100/16 dev eth0 label eth0:0
        ip addr flush dev eth0 label eth0:0

    • ip route – routing table management

      • 添加路由:ip route add
        ip route add TARGET via GW dev IFACE src SOURCE_IP

        • TARGET:
          主機路由:IP
          網絡路由:NETWORK/MASK

          ip route add 192.168.0.0/24 via 172.16.0.1
          ip route add 192.168.1.13 via 172.16.0.1

        • 添加網關:ip route add default via GW dev IFACE

          ip route add default via 172.16.0.1

      • 刪除路由:ip route delete
        ip route del TARGET

      • 顯示路由:ip route show|list

      • 清空路由表:ip route flush [dev IFACE] [via PREFIX]

        ip route flush dev eth0

  • ss
    格式:ss [OPTION]… [FILTER]
    netstat通過遍歷proc來獲取socket信息,ss使用netlink與內核tcp_diag模塊通信獲取socket信息。

    • [OPTION]:

      • -t: tcp協議相關
        -u: udp協議相關
        -w: 裸套接字相關
        -x:unix sock相關
        -l: listen狀態的連接
        -a: 所有
        -n: 數字格式
        -p: 相關的程序及PID
        -e: 擴展的信息
        -m:內存用量
        -o:計時器信息
    • FILTER : [ state TCP-STATE ] [ EXPRESSION ]

      • TCP的常見狀態:

        • tcp finite state machine:
          LISTEN: 監聽
          ESTABLISHED:已建立的連接
          FIN_WAIT_1
          FIN_WAIT_2
          SYN_SENT
          SYN_RECV
          CLOSED
      • EXPRESSION:
        dport =
        sport =

        示例:’( dport = :ssh or sport = :ssh )’

    常用組合:-tan, -tanl, -tanlp, -uan

    ss -l 顯示本地打開的所有端口
    ss -pl 顯示每個進程具體打開的socket
    ss -t -a 顯示所有tcp socket
    ss -u -a 顯示所有的UDP Socekt
    ss -o state established ‘( dport = :ssh or sport = :ssh)’ 顯示所有已建立的ssh連接
    ss -o state established ‘( dport = :http or sport = :http )’ 顯示所有已建立的HTTP連接
    ss -s 列出當前socket詳細信息

  • 網絡配置文件

    • IP、MASK、GW、DNS相關配置文件:
      /etc/sysconfig/network-scripts/ifcfg-IFACE
    • 路由相關的配置文件:
      /etc/sysconfig/network-scripts/route-IFACE
    • /etc/sysconfig/network-scripts/ifcfg-IFACE:
      說明參考:/usr/share/doc/initscripts-9.49.30/sysconfig.txt

      • DEVICE:此配置文件應用到的設備
        HWADDR:對應的設備的MAC地址
        BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp
        NM_CONTROLLED:NM是NetworkManager的簡寫,此網卡是否接受NM控制;建議CentOS6為“no”
        ONBOOT:在系統引導時是否激活此設備
        TYPE:接口類型;常見有的Ethernet, Bridge
        UUID:設備的惟一標識
        IPADDR:指明IP地址
        NETMASK:子網掩碼
        GATEWAY: 默認網關
        DNS1:第一個DNS服務器指向
        DNS2:第二個DNS服務器指向
        USERCTL:普通用戶是否可控制此設備
        PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許
        dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中
    `配置網關:`
      `/etc/sysconfig/network `
      `如果配置文件和network中都設置網關,則配置文件的網關優先`
    • centos6 關閉NetworkManager服務
      chkconfig NetworkManager
      重啟NetworkManager:service NetworkManager restart
      service NetworkManager stop

    • 本地解析器:
      解析器執行正向和逆向查詢
      /etc/hosts
      本地主機名數據庫和IP地址的映像
      對小型獨立網絡有用
      通常,在使用DNS前檢查
      getent hosts 查看/etc/hosts 內容

    • DNS名字解析:

      • 查看dns,/etc/resolv.conf
        NetworkManager與DNS的關系:

        • NetworkManager啟動、peerdns=yes:/etc/resolv.conf中的地址會重新生成,dhcp分配ip和網卡配置文件中的dns也會有效,支持3個
        • NetworkManager啟動、peerdns=no:會重新生成 /etc/resolv.conf,dhcp不在分配dns,使用的dns是本機的網卡配置文件中的dns,支持3個

        • NetworkManager不啟動、peerdns=yes:/etc/resolv.conf文件會自動生成,地址從網卡配置文件中來,并且/etc/resolv.conf中的地址,只是獲取前兩個

        • NetworkManager不啟動、peerdns=no:dns地址就沒了,配置文件中的dns地址也不會讀取,/etc/resolv.conf中沒有地址;如果/etc/resolv.conf不存在時,此文件也不會自動生成,如需使用必須手寫

      • /etc/resolv.conf

        nameserver DNS_SERVER_IP1
        nameserver DNS_SERVER_IP2
        nameserver DNS_SERVER_IP3
        search magedu.com

      DNS:只有當第一個dns網絡不通時才會啟用第二個
      如果第一個不能夠解析,也不會啟用第二個

      • DNS默認/etc/hosts的優先級高于/etc/resolv.conf;
        在 /etc/nsswitch.conf 中可修改優先級

      • 正向解析:FQDN–>IP
        dig -t A FQDN
        host -t A FQDN

      • 反向解析:IP–>FQDN
        dig -x IP
        host -t PTR IP
    • /etc/sysconfig/network-scripts/route-IFACE
      注意:需service network restart生效
      兩種風格:

      • (1) TARGET via GW
        如:10.0.0.0/8 via 172.16.0.1
        (2) 每三行定義一條路由
        ADDRESS#=TARGET
        NETMASK#=mask
        GATEWAY#=GW
  • 網卡別名
    對虛擬主機有用
    將多個IP地址綁定到一個NIC上
    eth0:1 、eth0:2、 eth0:3

    • ifconfig命令:
      ifconfig eth0:0 192.168.1.100/24 up
      ifconfig eth0:0 down

    • ip命令:
      ip addr add 172.16.1.2/16 dev eth0
      ip addr add 172.16.1.1/16 dev eth0 label eth0:0
      ip addr add 172.16.1.2/16 dev eth0 label eth0:0
      ip addr del 172.16.1.1/16 dev eth0 label eth0:0
      ip addr flush dev eth0 label eth0:0

  • 設備別名

    • 為每個設備別名生成獨立的接口配置文件

      • 關閉NetworkManager服務
        ifcfg-ethX:xxx
        必須使用靜態聯網

        • DEVICE=eth0:0
          IPADDR=10.10.10.10
          NETMASK=255.0.0.0
          ONPARENT=yes

      注意:service network restart 生效
      參考/usr/share/doc/initscripts-*/sysconfig.txt

  • 網絡配置

    • Linux網絡屬性配置的tui(text user interface):
      system-config-network-tui
      setup
      注意:記得重啟網絡服務方能生效

    • 配置當前主機的主機名:

      第一步:改文件/etc/sysconfig/network
      第二步: hostname [HOSTNAME]
      第三步:/etc/hosts中添加新的主機名;

  • CentOS 6網卡名稱

    • 網絡接口識別并命名相關的udev配置文件
      /etc/udev/rules.d/70-persistent-net.rules
    • 查看網卡
      dmesg | grep -i eth
      ethtool -i eth0
    • 卸載網卡驅動
      modprobe -r e1000
      rmmod e1000
    • 裝載網卡驅動
      modprobe e1000

網絡接口配置-bonding

  • Bonding:就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。
  • bonding的工作模式

    • Mode 0 (balance-rr)
      輪轉(Round-robin)策略:從頭到尾順序的在每一個slave接口上面發送數據包。本模式提供負載均衡和容錯的能力

    • Mode 1 (active-backup)
      活動-備份(主備)策略:在綁定中,只有一個slave被激活。當且僅當活動的slave接口失敗時才會激活其他slave。為了避免交換機發生混亂此時綁定的MAC地址只有一個外部端口上可見

    • Mode 3 (broadcast)
      廣播策略:在所有的slave接口上傳送所有的報文。本模式提供容錯能力。

  • bonding配置

    • 創建bonding設備的配置文件

      • /etc/sysconfig/network-scripts/ifcfg-bond0
        DEVICE=bond0
        BOOTPROTO=none
        BONDING_OPTS= “miimon=100 mode=0”

      • /etc/sysconfig/network-scripts/ifcfg-eth0
        DEVICE=eth0
        BOOTPROTO=none
        MASTER=bond0
        SLAVE=yes
        USERCTL=no

      • 查看bond0狀態:/proc/net/bonding/bond0

      • miimon 是用來進行鏈路監測的。如果miimon=100,那么系統每100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路

      • 刪除bond0
        ifconfig bond0 down
        rmmod bonding

      • 詳細幫助:
        /usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt

CentOS 7網絡屬性配置

  • CentOS 6之前,網絡接口使用連續號碼命名:eth0、eth1等,當增加或刪除網卡時,名稱可能會發生變化

  • CentOS 7使用基于硬件,設備拓撲和設置類型命名:

    1. 網卡命名機制
      systemd對網絡設備的命名方式
      (a) 如果Firmware或BIOS為主板上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,例如eno1
      (b) 如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1
      (c) 如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0
      (d) 如果用戶顯式啟動,也可根據MAC地址進行命名,enx2387a1dc56
      (e) 上述均不可用時,則使用傳統命名機制

    2. 網卡名稱
      基于BIOS支持啟用biosdevname軟件
      內置網卡:em1,em2
      pci卡:pYpX   Y:slot ,X:port

    3. 名稱組成格式
      en: Ethernet 有線局域網
      wl: wlan 無線局域網
      ww: wwan無線廣域網

    • 名稱類型:
      o: 集成設備的設備索引號
      s: 擴展槽的索引號
      x: 基于MAC地址的命名
      ps: enp2s1
  • 網卡設備的命名過程:

    • 第一步:
      udev, 輔助工具程序/lib/udev/rename_device
      /usr/lib/udev/rules.d/60-net.rules

    • 第二步:
      biosdevname 會根據/usr/lib/udev/rules.d/71-biosdevname.rules

    • 第三步:
      通過檢測網絡接口設備,根據/usr/lib/udev/rules.d/75-net-description
      ID_NET_NAME_ONBOARD
      ID_NET_NAME_SLOT
      ID_NET_NAME_PATH

  • 使用傳統命名方式:

    1. 編輯/etc/default/grub配置文件
      GRUB_CMDLINE_LINUX=”rhgb quiet net.ifnames=0″
      為grub2生成其配置文件
      grub2-mkconfig -o /etc/grub2.cfg
      /etc/grub2.cfg是/boot/grub2/grub.cfg的軟鏈接

      或:直接修改修改/boot/grub2/grub.cfg

    2. 重啟系統

nmcli

  • 地址配置工具:nmcli
    nmcli [ OPTIONS ] OBJECT { COMMAND | help }

    • device – show and manage network interfaces
      nmcli device help

    • connection – start, stop, and manage network connections
      nmcli connection help

      ip link == nmcli device 數據鏈路層的設置
      ip addr == nmcli connection 網絡層的設置

  • 修改IP地址等屬性:

    • nmcli connection modify IFACE [+|-]setting.property value

      • setting.property:
        ipv4.addresses   ipv4.gateway
        ipv4.dns1  ipv4.method   manual | auto
  • 修改配置文件執行生效:

    • systemctl restart network

      nmcli con reload

  • nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0

  • 網絡接口配置tui工具:nmtui

  • 主機名稱配置工具:hostnamectl
    status
    set-hostname

使用nmcli配置主機名

  • CentOS6之前主機名配置文件:/etc/sysconfig/network

  • CentOS7主機名配置文件:/etc/hostname ,默認沒有這個文件,通過DNS反向解析獲取主機名,主機名默認為:localhost.localdomain

  • 顯示主機名信息
    hostname
    hostnamectl status

  • 創建并修改文件并生效
    hostnamectl set-hostname desktopX.example.com

  • 刪除文件,恢復主機名localhost.localdomain

使用nmcli配置網絡

NeworkManager是管理和監控網絡設置的守護進程
設備即網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,但同時只有一個連接配置生效

  • 顯示所有包括不活動連接
    nmcli con show

  • 顯示所有活動連接
    nmcli con show –active

  • 顯示網絡連接配置
    nmcli con show “System eth0“

  • 顯示設備狀態
    nmcli dev status

  • 顯示網絡接口屬性
    nmcli dev show eno16777736

  • 創建新連接default,IP自動通過dhcp獲取
    nmcli con add con-name default type Ethernet ifname eth0

  • 刪除連接
    nmcli con del default

  • 創建新連接static ,指定靜態IP,不自動連接
    nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254

  • 啟用static連接配置
    nmcli con up static

  • 啟用default連接配置
    nmcli con up default

  • 查看幫助
    nmcli con add help

  • 修改連接設置
    nmcli con mod“static” connection.autoconnect no
    nmcli con mod “static” ipv4.dns 172.25.X.254
    nmcli con mod “static” +ipv4.dns 8.8.8.8
    nmcli con mod “static” -ipv4.dns 8.8.8.8
    nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”
    nmcli con mod “static” +ipv4.addresses 10.10.10.10/16

  • DNS設置,存放在/etc/resolv.conf文件中PEERDNS=no 表示當IP通過dhcp自動獲取時,dns仍是手動設置,不自動獲取。等價于下面命令:
    nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

網絡配置文件

  • 設備配置被保存在文本文件中
    /etc/sysconfig/network-scripts/ifcfg-
    幫助文檔列出完整選項列表:/usr/share/doc/initscripts-*/sysconfig.txt

    • 動態配置

      DEVICE=ethX
        HWADDR=0:02:8A:A6:30:45
        BOOTPROTO=dhcp
        ONBOOT=yes
        Type=Ethernet
    • 靜態配置

      DEVICE=ethX
      HWADDR=0:02:8A:A6:30:45
      IPADDR=192.168.0.123
      NETMASK=255.255.255.0
      GATEWAY=192.168.0.254
      ONBOOT=yes
      Type=Ethernet
  • 修改連接配置后,需要重新加載配置

    • nmcli con reload
      nmcli con down “system eth0” 可被自動激活
      nmcli con up “system eth0”
      nmcli dev dis eth0 禁用網卡,訪止被自動激活
  • 圖形工具

    • nm-connection-editor
  • 字符工具

    • nmtui
      nmtui-connect
      nmtui-edit
      nmtui-hostname

nmcli實現bonding

  • 添加bonding接口(邏輯接口):
    nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup
  • 添加從屬接口(物理接口):
    nmcli con add type bond-slave ifname ens7 master mybond0
    nmcli con add type bond-slave ifname ens3 master mybond0
    注:如無為從屬接口提供連接名,則該名稱是接口名稱加類型構成
  • 要啟動綁定,則必須首先啟動從屬接口:
    nmcli con up bond-slave-ens7
    nmcli con up bond-slave-ens3
  • 現在可使用以下方法啟動綁定:
    nmcli con up mybond0

網絡組Network Teaming

  • 網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量

  • 網絡組不同于舊版中bonding技術,提供更好的性能和擴展性

  • 網絡組由內核驅動和teamd守護進程實現.

  • 多種方式runner

    • broadcast
      roundrobin
      activebackup
      loadbalance
      lacp (implements the 802.3ad Link Aggregation Control Protocol)
  • 啟動網絡組接口不會自動啟動網絡組中的port接口
    啟動網絡組接口中的port接口總會自動啟動網絡組接口
    禁用網絡組接口會自動禁用網絡組中的port接口
    沒有port接口的網絡組接口可以啟動靜態IP連接
    啟用DHCP連接時,沒有port接口的網絡組會等待port接口的加入

  • 創建網絡組接口
    nmcli con add type team con-name CNAME ifname INAME [config JSON]

    • CNAME 連接名
      INAME 接口名
      JSON 指定runner方式

      • 格式:'{“runner”: {“name”: “METHOD”}}’

        • METHOD 可以是broadcast, roundrobin,activebackup, loadbalance, lacp
  • 創建port接口
    nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

    • CNAME 連接名
      INAME 網絡接口名
      TEAM 網絡組接口名

    • 連接名若不指定,默認為team-slave-IFACE
      nmcli dev dis INAME
      nmcli con up CNAME
      INAME 設備名 CNAME 網絡組接口名或port接口

  • 刪除網絡組

    • nmcli connection down team0
      teamdctl team0 state
      nmcli connection show
      nmcli connectioni delete team0-eth0
      nmcli connectioni delete team0-eth1
      nmcli connection show

測試網絡工具

  • 在命令行下測試網絡的連通性

    • 顯示主機名
      hostname

    • 測試網絡連通性
      ping
      mtr

    • 顯示正確的路由表
      ip route

    • 確定名稱服務器使用:
      nslookup
      host
      dig

    • 跟蹤路由
      traceroute
      tracepath

網絡客戶端工具

交互式

  • ftp,lftp是明文的

    • 子命令:

      • 單個文件
        get(下載單個文件)

      • 多個文件
        mget(可下載多個文件)
        mput(上傳多個文件)

      lftp [-p port] [-u user[,password]] SERVER

非交互式

  • lftpget URL 非交互式

  • wget [option]… [URL]…

    • -q: 靜默模式
      -c: 斷點續傳
      -O: 保存位置
      –limit-rates=: 指定傳輸速率
  • links URL :字符界面瀏覽器

    • –dump
      –source

原創文章,作者:s,如若轉載,請注明出處:http://www.www58058.com/74859

(0)
ss
上一篇 2017-05-06
下一篇 2017-05-06

相關推薦

  • SHELL腳本編程之變量的種類

    變量 在進行腳本編程的時候,經常會使用到不同類型的變量,根據變量的生效范圍,可大致分為以下的幾類: 本地變量:生效范圍為當前shell進程,對當前shell之外的其他shell進程,包括當前shell進程的子shell進程都是無效的,它的作用域就是當前shell進程 環境變量:生效范圍是當前shell進程及其子進程 局部變量:生效范圍是當前shell進程中某…

    Linux干貨 2016-08-12
  • 鏈接分析算法之:主題敏感PageRank

      前面的討論提到。PageRank忽略了主題相關性,導致結果的相關性和主題性降低,對于不同的用戶,甚至有很大的差別。例如,當搜索“蘋果”時,一個數碼愛好者可能是想要看 iphone 的信息,一個果農可能是想看蘋果的價格走勢和種植技巧,而一個小朋友可能在找蘋果的簡筆畫。理想情況下,應該為每個用戶維護一套專用向量,但面對海量用戶這種方法顯然不可行。所…

    Linux干貨 2016-02-17
  • CentOS 系統自動化安裝

    CentOS 系統自動化安裝 概述:     系統安裝過程     配置anaconda     自動化安裝系統 CentOS 系統安裝: 1.啟動流程: bootloader–>kernel(initrd)–>rootfs–>anaconda(…

    Linux干貨 2016-09-21
  • SELinux在httpd服務端中的使用

    一、啟用SELinux策略并安裝httpd服務,改變網站的默認主目錄為/website,添加SELinux文件標簽規則,使網站可訪問(以CentOS7系統操作) 1、首先查看本系統是否已經安裝httpd服務 2、查看httpd的配置文件所在路徑 3、創建主目錄為/website與網頁文件"index.html",并更改httpd服務為該路…

    Linux干貨 2016-09-16
  • 第六周練習

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit 末行模式下:%s@^[[:space:]]\+@#&am…

    Linux干貨 2016-12-03
  • N25-第八周作業

    第八周 1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態; 在線的主機使用綠色顯示; 不在線的主使用紅色顯示; #!/bin/bash # ip=172.16.250. for i in {1..254}; do if ping -w 1 -c 1 $ip$i &> /dev/n…

    Linux干貨 2017-03-09
欧美性久久久久