1. 程式人生 > >TC(Linux下流量控制工具)詳細說明及應用

TC(Linux下流量控制工具)詳細說明及應用

TC的安裝

TC是Linux自帶的模組,一般情況下不需要另行安裝,可以用 man tc 檢視tc 相關命令細節,tc 要求核心 2.4.18 以上
     ##注意:64位機器上,先執行下面命令
       ln -s /usr/lib64/tc /usr/lib/tc

TC原理介紹

        Linux 作業系統中的流量控制器 TC(Traffic Control) 用於Linux核心的流量控制,它利用佇列規定建立處理資料包的佇列,並定義佇列中的資料包被髮送的方式,從而實現對流量的控制。TC 模組實現流量控制功能使用的佇列規定分為兩類,一類是無類佇列規定,另一類是分類佇列規定。無類佇列規定相對簡單,而分類佇列規定則引出了分類和過濾器等概念,使其流量控制功能增強。         無類佇列
規定是對進入網路裝置(網絡卡)的資料流不加區分統一對待的佇列規定。使用無類佇列規定形成的佇列能夠接收資料包以及重新編排、延遲或丟棄資料包。這類佇列規定形成的佇列可以對整個網路裝置(網絡卡)的流量進行整形,但不能細分各種情況。常用的無類佇列規定主要有 pfifo_fast(先進先出)、TBF(令牌桶過濾器)、SFQ(隨機公平佇列)、ID(前向隨機丟包)等等。這類佇列規定使用的流量整形手段主要是排序、限速和丟包。         分類佇列規定是對進入網路裝置的資料包根據不同的需求以分類的方式區分對待的佇列規定。資料包進入一個分類的佇列後,它就需要被送到某一個類中,也就是說需要對資料包做分類處理。對資料包進行分類的工具是過濾器,過濾器會返回一個決定,佇列規定就根據這個決定把資料包送入相應的類進行排隊。每個子類都可以再次使用它們的過濾器進行進一步的分類。直到不需要進一步分類時,資料包才進入該類包含的佇列排隊。除了能夠包含其他佇列規定之外,絕大多數分類的佇列規定還能夠對流量進行整形。這對於需要同時進行排程(如使用SFQ)和流量控制的場合非常有用。 Linux流量控制的基本原理如下圖所示。
接收包從輸入介面(Input Interface)進來後,經過流量限制(Ingress Policing)丟棄不符合規定的資料包,由輸入多路分配器(Input De-Multiplexing)進行判斷選擇。如果接收包的目的地是本主機,那麼將該包送給上層處理,否則需要進行轉發,將接收包交到轉發塊(Forwarding Block)處理。轉發塊同時也接收本主機上層(TCP、UDP等)產生的包。轉發塊通過檢視路由表,決定所處理包的下一跳。然後,對包進行排列以便將它們傳送到輸出介面(Output Interface)。一般我們只能限制網絡卡傳送的資料包,不能限制網絡卡接收的資料包,所以我們可以通過改變傳送次序來控制傳輸速率。Linux流量控制主要是在輸出介面排列
時進行處理和實現的。

TC規則

        1.流量控制方式

                   流量控制包括一下幾種方式:

                   SHAPING(限制)

                         當流量被限制時,它的傳輸速率就被控制在某個值以下。限制值可以大大小於有效頻寬,這樣可以平滑突發資料流量,使網路更為穩定。SHAPING(限制)只適用於向外的流量。

SCHEDULING(排程)

                        通過排程資料包的傳輸,可以在頻寬範圍內,按照優先順序分配頻寬。SCHEDULING(排程)也只適用於向外的流量。

                 POLICING(策略)

                        SHAPING(限制)用於處理向外的流量,而POLICING(策略)用於處理接收到的資料。

                 DROPPING(丟棄)

                        如果流量超過某個設定的頻寬,就丟棄資料包,不管是向內還是向外。

        2.流量控制處理物件

                流量的處理由三種物件控制,它們是:qdisc(排隊規則)、class(類別)和filter(過濾器)。                 qdisc(排隊規則)是 queueing discipline的簡寫,它是理解流量控制(traffic control)的基礎。無論何時,核心如果需要通過某個網路介面傳送資料包,它都需要按照為這個介面配置的qdisc(排隊規則)把資料包加入佇列。然後,核心會盡可能多的從qdisc裡面取出資料包,把它們交給網路介面卡驅動模組。最簡單的qdisc是pfifo他不對進入的資料包做任何的處理,資料包採用先進先出的方式通過佇列。不過,它會儲存網路介面一時無法處 理的資料包。                qddis(排隊規則)分為 CLASSLESS QDISC和 CLASSFUL QDISC  類別如下:

           CLASSLESS QDISC (無類別QDISC)

              1.無類別QDISC包括:

              [ p | b ]fifo,使用最簡單的qdisc(排隊規則),純粹的先進先出。只有一個引數:limit ,用來設定佇列的長度,pfifo是以資料包的個數為單位;bfifo是以位元組數為單位。                pfifo_fast,在編譯核心時,如果打開了高階路由器(Advanced Router)編譯選項,pfifo_fast 就是系統的標準qdisc(排隊規則)。它的佇列包括三個波段(band)。在每個波段裡面,使用先進先出規則。而三個波段(band)的優先順序也不相同,band 0 的優先順序最高,band 2的最低。如果band 0裡面有資料包,系統就不會處理band 1 裡面的資料包,band 1 和 band 2 之間也是一樣的。資料包是按照服務型別(Type Of Service,TOS )被分配到三個波段(band)裡面的。                red,red是Random Early Detection(隨機早期探測)的簡寫。如果使用這種qdsic,當頻寬的佔用接近與規定的頻寬時,系統會隨機的丟棄一些資料包。他非常適合高頻寬的應用。               sfq,sfq是Stochastic Fairness Queueing 的簡寫。它會按照會話(session --對應與每個TCP 連線或者UDP流)為流量進行排序,然後迴圈傳送每個會話的資料包。              tbf,tbf是 Token Bucket Filter 的簡寫,適用於把流速降低到某個值。

            2.無類別qdisc的配置

           如果沒有可分類qdisc,不可分類qdisc 只能附屬於裝置的根。它們的用法如下:
      tc qdisc add dev DEV root QDISC QDISC_PARAMETERS
          要刪除一個不可分類qdisc,需要使用如下命令
      tc qdisc del dev DEV root
           一個網路介面上如果沒有設定qdisc,pfifo_fast就作為預設的qdisc。

        CLASSFUL QDISC(分類 QDISC)

           可分類QDISC包括:

           CBQ,CBQ是 Class Based Queueing(基於類別排隊)的縮寫。它實現了一個豐富的連線共享類別結構,既有限制(shaping)頻寬的能力,也具有頻寬優先級別管理的能力。頻寬限制是通過計算連線的空閒時間完成的。空閒時間的計算標準是資料包離隊事件的頻率和下層連線(資料鏈路層)的頻寬。            HTB,HTB是Hierarchy Token Bucket 的縮寫。通過在實踐基礎上的改進,它實現一個豐富的連線共享類別體系。使用HTB可以很容易地保證每個類別的頻寬,雖然它也允許特定的類可以突破頻寬上限,佔用別的類的頻寬。HTB可以通過TBF(Token Bucket Filter)實現頻寬限制,也能夠劃分類別的優先順序。            PRIO,PRIO qdisc 不能限制頻寬,因為屬於不同類別的資料包是順序離隊的。使用PRIO qdisc 可以很容易對流量進行優先順序管理,只有屬於高優先順序類別的資料包全部發送完畢,參會傳送屬於低優先順序類別的資料包。為了方便管理,需要使用iptables 或者 ipchains 處理資料包的服務型別(Type Of Service,TOS)。

           操作原理

類(class)組成一個樹,每個類都只有一個父類,而一個類可以有多個子類。某些qdisc (例如:CBQ和 HTB)允許在執行時動態新增類,而其它的qdisc(例如:PRIO)不允許動態建立類。允許動態新增類的qdisc可以有零個或者多個子類,由它們為資料包排隊。此外,每個類都有一個葉子qdisc,預設情況下,這個也在qdisc有可分類,不過每個子類只能有一個葉子qdisc。 當一個數據包進入一個分類qdisc,它會被歸入某個子類。我們可以使用一下三種方式為資料包歸類,不過不是所有的qdisc都能夠使用這三種方式。             如果過濾器附屬於一個類,相關的指令就會對它們進行查詢。過濾器能夠匹配資料包頭所有的域,也可以匹配由ipchains或者iptables做的標記。            樹的每個節點都可以有自己的過濾器,但是高層的過濾器也可以一直接用於其子類。如果資料包沒有被成功歸類,就會被排到這個類的葉子qdisc的隊中。相關細節在各個qdisc的手冊頁中。

          命名規則

          所有的qdisc、類、和過濾器都有ID。ID可以手工設定,也可以由核心自動分配。ID由一個主序列號和一個從序列號組成,兩個數字用一個冒號分開。           qdisc,一個qdisc會被分配一個主序列號,叫做控制代碼(handle),然後把從序列號作為類的名稱空間。控制代碼才有像1:0 一樣的表達方式。習慣上,需要為有子類的qdisc顯式的分配一個控制代碼。           類(Class),在同一個qdisc裡面的類共享這個qdisc的主序列號,但是每個類都有自己的從序列號,叫做類識別符(classid)。類識別符只與父qdisc有關,與父類無關。類的命名習慣和qdisc相同。           過濾器(Filter),過濾器的ID有三部分,只有在對過濾器進行雜湊組織才會用到。詳情請參考tc-filtes手冊頁。

         單位

tc命令所有的引數都可以使用浮點數,可能會涉及到以下計數單位。
           頻寬或者流速單位:
              
           資料的數量單位
               
           時間的計量單位:

TC命令

        tc可以使用以下命令對qdisc、類和過濾器進行操作:         add, 在一個節點裡加入一個qdisc、類、或者過濾器。新增時,需要傳遞一個祖先作為引數,傳遞引數時既可以使用ID也跨越式直接傳遞裝置的根。如果要建立一個qdisc或者過濾器,可以使用控制代碼(handle)來命名。如果要建立一個類,可以使用類識別符(classid)來命名。         remove, 刪除由某個控制代碼(handle)指定的qdisc,根qdisc(root)也可以刪除。被刪除qdisc上所有的子類以及附屬於各個類的過濾器都會被自動刪除。         change, 以替代的方式修改某些條目。除了控制代碼(handle)和祖先不能修改以外,change命令的語法和add命令相同。換句話說,change命令不能指定節點的位置。          replace, 對一個現有節點進行近於原子操作的刪除/新增。如果節點不存在,這個命令就會建立節點。         link, 只適用於qdisc,替代一個現有的節點。         tc命令的格式:
         tc  qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]

         tc class [ add | change | replace ] dev DEV parent qdisc-id  [  classid class-id ] qdisc [ qdisc specific parameters ]

         tc filter [ add | change | replace ] dev DEV [ parent qdisc-id | root ] protocol protocol prio priority filtertype [ filtertype specific param‐eters ] flowid flow-id

         tc [ FORMAT ] qdisc show [ dev DEV ]

         tc [ FORMAT ] class show dev DEV
 
         tc filter show dev DEV

###### FORMAT := { -s[tatistics] | -d[etails] | -r[aw] | -p[retty] | i[ec] }

 具體操作

         Linux流量控制主要分為建立佇列、建立分類和建立過濾器三個方面。

          基本實現步驟

                   1) 針對網路物理裝置(如乙太網卡eth0)繫結一個佇列qdisc;                    2) 在該佇列上建立分類class;                    3) 為每一分類建立一個基於路由的過濾器filter;                    4) 最後與過濾器相配合,建立特定的路由表。

          環境模擬例項

                    流量控制器上的乙太網卡(eth0)的IP地址為 192.168.1.66, 在其上建立一個CBQ佇列。假設包的平均大小為1000位元組,包間隔傳送單元的大小            為8位元組,可接收衝突的傳送最長包的數目為20位元組。                      加入有三種類型的流量需要控制:                          1)是發往主機1的,其IP地址為192.168.1.24。其流量頻寬控制在8Mbit,優先順序為 2;                           2)是發往主機2的,其IP地址為192.168.1.30。其流量頻寬控制在1Mbit,優先順序為1;                           3)是發往子網1的,其子網號為192.168.1.0。子網掩碼為255.255.255.0。流量頻寬控制在1Mbit,優先順序為6。

            建立佇列

              一般情況下,針對一個網絡卡只需建立一個佇列。
       ###將一個cbq佇列繫結到網路物理裝置eth0上,其編號為1:0;網路物理裝置eth0的實際頻寬為10Mbit,包的平均大小為1000位元組;包間隔傳送單元的大小為8位元組,最小傳輸包大小為64位元組。

       tc qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit avpkt 1000 cell 8 mpu 64

           建立分類

           一般情況下,針對一個佇列需建立一個根分類,然後再在其上建立子分類。對於分類,按其分類的編號順序起作用,編號小的優先;一但符合某個分類匹配規則,通過該分類傳送資料包,則其後的分類不在起作用。
      ##建立根分類1:1;分配頻寬為10Mbit,優先級別為8.

      tc class add dev eth0 parent 1:0 classid 1:1 cbq bandidth 10Mbit rate 10Mbit maxburst 20 allot 1514 prio 8 avpkt 1000 cell 8 weight 1Mbit

      ###該佇列的最大可用頻寬為10Mbit,實際分配的頻寬為10Mbit,可接收衝突的傳送最長包數目為20位元組;最大傳輸單元加MAC頭的大小為1514位元組,優先級別為8,包的平均大小為1000位元組,包間隔傳送單元的大小為8位元組,相當於實際頻寬的加權速率為1Mbit。

     ## 建立分類1:2,其父類為1:1,分配頻寬為 8Mbit, 優先級別為2.

     tc class add dev eth0 parent 1:1 cbq bandwidth 10Mbit rate 8Mbit maxburst 20 allot 1514 prio 2 avpkt 1000 cell 8 weight 800Kbit split 1:0 bounded

     ##  該佇列的最大可用頻寬為10Mbit,實際分配的頻寬為8Mbit,可接收衝突的傳送最長包數目為20位元組;最大傳輸單元加MAC頭的大小為1514位元組,優先級別為2,包的平均大小為1000位元組,包間隔傳送單元的大小為8位元組,相當於實際頻寬的加權速率為800Kbit,分類的分離點為1:0,且不可借用未使用頻寬。

  
     ## 建立分類1:3,其父分類為1:1,分配頻寬為1Mbit,優先級別為1.

     tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 10Mbit rate 1Mbit maxburst 20 allot 1514 prio 1 avpkt 1000 cell 8 weight 100Kbit split 1:0
 
     ## 該佇列的最大可用頻寬是10Mbit,實際分配的頻寬為1Mbit,可接收衝突的傳送最長包數目為20位元組;最大傳輸單元加MAC頭的大小為1514位元組,優先級別為1,包的平均大小為1000位元組,包間隔傳送單元的大小為8位元組,相當於實際頻寬的加權速率為100Kbit,分類的分離點為1:0。

     ## 建立分類 1:4,其父分類為1:1,分配頻寬為1Mbit,優先級別為6。

     tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 10 Mbit rate 1Mbit maxburst 20 allot 1514 prio 6 avpkt 1000 cell 8 weight 100Kbit split 1:0

     ## 該佇列的最大可用頻寬為10Mbit,實際分配的頻寬為1Mbit,可接收衝突的傳送最長包數目為20位元組;最大傳輸單元加MAC頭的大小為1514位元組,優先級別為6,包的平均大小為1000位元組,包間隔傳送單元的大小為8位元組,相當於實際頻寬的加權速率為100Kbit,分類的分離點為1:0

      建立過濾器

           過濾器主要服務於分類。            一般只需針對根分類提供一個過濾器,然後為每個子分類提供路由對映。
     ## 1)應用路由分類器到cbq佇列的根,父分類編號為1:0;過濾協議為ip,優先級別為100,過濾器為基於路由表。
         tc filter add dev eth0 parent 1:0 protocol ip prio 100 route

     ## 2)建立路由對映分類 1:2 , 1:3 , 1:4
         tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 2 flowid 1:2
         tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 3 flowid 1:3
         tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 4 flowid 1:4

         建立路由

         該路由是與前面所建立的路由對映一一對應。
     # 1)發往主機192.168.1.24的資料包通過分類2轉發(分類2的速率8Mbit)
         ip route add 192.168.1.24 dev eth0 via 192.168.1.66 realm 2 
     # 2)發往主機192.168.1.30的資料包通過分類3轉發(分類3的速率1Mbit)
         ip route add 192.168.1.30 dev eth0 via 192.168.1.66 realm 3
     # 3)發往子網192.168.1.0/24 的資料包通過分類4轉發(分類4的速率1Mbit)
         ip route add 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4

注:一般對於流淚控制器所直接連線的網段建議使用IP主機地址流量控制限制,不要使用子網流量控制限制。如一定需要對直連子網使用子網流量控制限制,則在建立該子網的路由對映前,需將原先由系統建立的路由刪除,才可以完成相應步驟

         監視

         主要包括對現有佇列、分類、過濾器和路由狀況進行監視。           1)顯示佇列的狀況         
     ## 簡單顯示指定裝置(這裡為eth0)的佇列狀況
        tc qdisc ls dev eth0
          qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit
  
     ## 詳細顯示指定裝置(這裡為eth0)的佇列狀況
        tc -s qdisc ls dev eth0
          qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit 
              Sent 7646731 bytes 13232 pkts (dropped 0, overlimits 0)
	      borrowed 0 overactions 0 avgidle 31 undertime 0
	 
     ## 這裡主要顯示了通過該佇列傳送了13232個數據包,資料流量為7646731個位元組,丟棄的包數目為0,超過速率限制的包數目為0。
          2)顯示分類的狀況
     ## 簡單顯示指定裝置(這裡為eth0)的分類狀況
        tc class ls dev eth0
        class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
        class cbq 1:1 parent 1: rate 10Mbit prio no-transmit
        class cbq 1:2 parent 1:1 rate 8Mbit prio (bounded) prio 2
        class cbq 1:3 parent 1:1 rate 1Mbit prio 1
        class cbq 1:4 parent 1:1 rate 1Mbit prio 6

    ## 詳細顯示指定裝置(這裡為eth0)的分類狀況
       tc -s class ls dev eth0
        class cbq 1: root rate 10000Kbit (bounded,isolated) prio no-transmit
         Sent 17725304 bytes 32088 pkt (dropped 0, overlimits 0 requeues 0) 
         backlog 0b 0p requeues 0 
         borrowed 0 overactions 0 avgidle 31 undertime 0
       class cbq 1:1 parent 1: rate 10000Kbit prio no-transmit
        Sent 16627774 bytes 28884 pkts (dropped 0, overlimits 0 requeues 0) 
        backlog 0b 0p requeues 0 
        borrowed 16163 overactions 0 avgidle 587 undertime 0
      class cbq 1:2 parent 1:1 rate 8000Kbit (bounded) prio 2
       Sent 628829 bytes 3130 pkts (dropped 0, overlimits 0 requeues 0) 
       backlog 0b 0p requeues 0 
       borrowed 0 overactions 0 avgidle 4137 undertime 0
      class cbq 1:3 parent 1:1 rate 1000Kbit prio 1
       Sent 0 bytes 0 pkts (dropped 0, overlimits 0 requeues 0) 
       backlog 0b 0p requeues 0 
       borrowed 0 overactions 0 avgidle 3.19309e+06 undertime 0
     class cbq 1:4 parent 1:1 rate 1000Kbit prio 6
      Sent 552879 bytes 8076 pkts (dropped 0, overlimits 0 requeues 0) 
      backlog 0b 0p requeues 0 
      borrowed 3797 overactions 0 avgidle 159557 undertime 0

    ##這裡主要顯示了通過不同分類傳送的資料包,資料流量,丟棄的包數目,超過速率限制的包數目等等。其中根分類(class cbq 1:0)的狀況與佇列的狀況類似
  
    ##例如,分類class cbq 1:4 傳送了8076個包,資料流量為 552879 個位元組,丟棄的包數目為0,超過速率限制的包數目為0。
        3)顯示過濾器的狀況
      tc -s filter ls dev eth0
      filter parent 1: protocol ip pref 100 route 
      filter parent 1: protocol ip pref 100 route fh 0xffff0002 flowid 1:2 to 2 
      filter parent 1: protocol ip pref 100 route fh 0xffff0003 flowid 1:3 to 3 
      filter parent 1: protocol ip pref 100 route fh 0xffff0004 flowid 1:4 to 4 
 
      ## 這裡flowid 1:2 代表分類 class cbq 1:2, to 2 代表通過路由 2 傳送
       4)顯示現有路由的狀況
      ip route
      default via 192.168.1.1 dev eth0 
      192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.66 
      192.168.1.24 via 192.168.1.66 dev eth0 realm 2 
      192.168.1.30 via 192.168.1.66 dev eth0 realm 3 

     ##如上所示,結尾包含有realm 的顯示行是起作用的路由過濾器。

      維護

          主要包括對佇列、分類、過濾器和路由的增添、修改和刪除。           增添動作一般依照  佇列 -> 分類 -> 過濾器 -> 路由   的順序進行;修改動作則沒有什麼要求;刪除則依照   路由 -> 過濾器 -> 分類 -> 佇列  的順序進行。               1)佇列的維護             一般對於一臺流量控制器來說,出廠時針對每個乙太網卡均已配置好一個隊列了,通常情況下對佇列無需進行增添、修改和刪除動作。             2)分類的維護                增添,增添動作通過 tc class add 命令實現,如前面所示。               修改,修改動作通過 tc class change 命令實現,如下所示:
        tc class change dev eth0 parent 1:1 classid 1:2 cbq bandwidth 10Mbit rate 7Mbit maxburst 20 allot 1514 prio 2 avpkt 1000 cell 8 weigth 700Kbit split 1:0 bounded
             對於bounded 命令應慎用,一旦新增後就進行修改,只可通過刪除後再新增來實現。               刪除,刪除動作只在該分類沒有工作前才可以進行,一旦通過該分類傳送過資料,則無法刪除它。因此,需要通過shell檔案方式來修改,通過重新啟動來完成刪除動作。            3)過濾器的維護                   增添,增添動作通過 tc filter add 命令實現,如前面所示。                   修改,修改動作通過 tc filter change 命令實現,如下所示:
         tc filter change dev eth0 parent 1:0 protocol ip prio 100 route to 10 flowid 1:8
                  刪除,刪除動作通過 tc filter del 命令實現,如下所示:
         tc filter del dev eth0 parent 1:0 protocol ip prio 100 route to 10
            4)與過濾器————對映路由的維護                  增添,增添動作通過 ip route add 命令實現,如前面所示。                  修改,修改動作通過 ip route change 命令實現,如下所示:
         ip route change 192.168.1.30 dev eth0 via 192.168.1.66 realm 8
                 刪除,刪除動作通過 ip route del 命令實現,如下所示:
         ip route del 192.168.1.30 dev eth0 via 192.168.1.66 realm 8

         ip route del 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4



相關推薦

TC(Linux流量控制工具)詳細說明應用

TC的安裝 TC是Linux自帶的模組,一般情況下不需要另行安裝,可以用 man tc 檢視tc 相關命令細節,tc 要求核心 2.4.18 以上 ##注意:64位機器上,先執行下面命令 ln -s /usr/lib64/tc /usr/lib/tc

10款Linux常用安全工具詳細介紹

先說明下這類工具的安裝,安裝準備--Linux下一些壓縮檔案的解壓命令:      tar xvf *.tar(tar壓縮的軟體包)      tar zxvf *.tar.gz (tar和gzip壓縮的軟體包)      unrar x *.rar unpack_pa

Linux 內網流量控制工具

信息 eth1 match /etc eth sta .com 顯示 inux CentOS-TC(流量控制)單IP限制下載命令:tc qdisc add dev eth1 root handle 1: htb r2q 1tc class add dev eth1 pare

Linux流量控制工具TC

tc是用來提供流量控制的強大工具,自己在進行DDoS攻擊模擬、網路負載測試中一直使用!本文是簡單的使用介紹, 流量控制工具TC詳細說明有詳細的介紹 概要 簡介 netem是linux

linux安裝DB2的詳細步驟

justify linux style 第一步:檢查程序包及其版本 compat-libstdc++-7.3-2.96.118.i386.rpm 在linux的安裝盤上,找到後使用rpm -i compat-libstdc++-7.3-2.96.118.i386.rpm 安裝即可

LINUXIDEA等工具調試項目時提示:Unable to open debugger port

over sed ubuntu cep 去掉 exc clas dig window 在Ubuntu下調試項目時使用TOMCAT容器,在設置好相應的TOMCAT LOCAL 路徑及相關信息後,點擊調試項目出現: Unable to open debugger port :

Linux安裝yum工具

Linux安裝yum工具[root@localhost ~]# yum -y install fonts-chinese Loading "rhnplugin" plugin Loading "security" plugin This system is not

linux的壓縮工具

使用 line OS unicode 類型 .gz IT 能夠 GZip壓縮 壓縮工具的介紹 壓縮服務器的經常訪問的文件,如web網頁,壓縮後可節省帶寬資源linux下的打包工具,後綴名在linux中不代表實際意義,但是為了方便區分文件類型,後綴名會以一個規範來命名.zip

Linux批量管理工具pssh使用記錄

time etc hosts ptime 同時 參數 -i ble test pssh是一款開源的軟件,使用python實現,用於批量ssh操作大批量機器;pssh是一個可以在多臺服務器上執行命令的工具,同時支持拷貝文件,是同類工具中很出色的;比起for循環的做法,我更推薦

linuxmysql主從配置詳細教程

different form file 判斷 pda work grant _for 從數據 1、修改MySQL配置:主庫配置server-id = 3binlog-do-db=xmcp_gxfc #the db need to syncbinlog-ignore-db

Linux使用ASF工具Steam掛卡的配置使用

enable hist .com repos 不錯 rpm ech ssi farm Linux下使用ASF工具 Steam 掛卡的配置使用 簡介 既然你都費錢買了遊玩,為甚麽還要花時間玩呢?這款工具便可以不用下載遊玩,主動掛卡,是Steam回血渠道之一。(慈悲包)

Linux的開發工具:vim,gcc,gdb,makefile以及yum語句安裝軟體

Linux下的開發工具:vim,gcc,gdb,makefile以及yum語句安裝軟體 1. vi/vim  vi/vim都是多模式編譯器,vim是vi的升級版本。vim有12個模式,在這我們先說3種模式,命令模式,插入模式,底行模式。 2. vim基本操作: $vim t

Linux各壓縮工具的使用方法

壓縮工具 compress compress +檔案【多個檔案時壓縮每個檔案為單獨的壓縮檔案】 壓縮該檔案,壓縮後該檔案消失,生成一個.z的壓縮檔案 compress -c +檔案 > 檔案.gz壓縮檔案並顯示過程 不會丟失原始檔,利用重定向保留原檔案 uncomp

linux的GDB除錯 詳細

  vim min.c #輸入min.c的內容 gcc min.c -o min -g #必須寫-g gdb -q min #除錯可執行程式 -q是為了阻止顯示版本資訊 l # list 顯示原始碼 一次10行 l # list 顯示原始碼 接著10行 l # list 顯示原始

Linuxpython安裝升級詳細步驟 | Python2 升級 Python3

Linux下python升級步驟  Python2 ->Python3 多數情況下,系統自動的Python版本是2.x 或者yum直接安裝的也是2.x 但是,現在多數情況下建議使用3.x 那麼如何升級呢?-p

linux寶塔控制面板怎麼解除安裝

你需要先在面板中將通過面板安裝的所有軟體解除安裝,如nginx、mysql、php 等等 然後,進入SSH命令列,輸入以下命令: /etc/init.d/bt stop && rm -f /etc/init.d/bt && rm -rf /www/server/pan

linux檔案比較工具diff|cmp使用小結

轉自:http://blog.csdn.net/wangjianno2/article/details/50451737,記錄下便於忘記時查詢。 1.diff diff是Unix系統的一個很重要的工具程式。它用來比較兩個文字檔案的差異,是程式碼版本管理的基石之一。 2.diff使用

linux寶塔面板安裝詳細介紹

1、首先,確保在root使用者下進行操作。進入網路配置檔案network-scripts目錄下。 2。找到我們需要修改的配置檔案 3.修改配置檔案(將ip修改為靜態) 4.重啟網路服務service network restart 安裝寶塔面板: yum install -y wget

手寫一個Linux的debug工具(一)

寫在前面 學習過Linux程式設計的同學都或多或少用過gdb來除錯自己的程式,但是並沒有很多的資源讓我們學習有關偵錯程式的東西。希望通過這篇文章,你可以瞭解基本的除錯原理,更重要的是可以寫出一個自己的簡易除錯工具。更有趣的是,你可以瞭解如何修改記憶體,來“愚弄

Linux動態域名解析詳細配置

動態域名解析的工具很多,下面以花生殼動態域名解析工具為例進行介紹。 1、前提條件 作業系統:CentOS7.5,花生殼:3.0。 2、下載花生殼客戶端 3、上傳伺服器 下載完成之後,通過WinSCP上傳到Linux伺服器,具體使用辦法見我的部落格(Windows