Linux相關網路命令

来源:https://www.cnblogs.com/walk1314/archive/2018/05/09/8795488.html
-Advertisement-
Play Games

1、簡述osi七層模型和TCP/IP四層模型 OSI七層模型 TCP/IP四層模型 2、簡述iproute家族命令 ip命令: ip [OPTIONS] OBJECT {COMMAND|help} ip link:network device configuration. ip link set D ...


1、簡述osi七層模型和TCP/IP四層模型

OSI七層模型

TCP/IP四層模型

2、簡述iproute家族命令

ip命令:

  ip [OPTIONS] OBJECT {COMMAND|help}

  ip link:network device configuration.

    ip link set DEV:修改設備屬性

      1) up或down:啟用或停用介面;示例,ip link set eth1 up/down

      2) multicast on 或 multicast off:啟用或禁用多播功能;示例,ip link set eth1 multicast on/off

      3) name NAME:重命名介面;示例,ip link set eth1 name eth666

      4) mtu NUMBER:設置MTU的大小,預設為1500;(MTU,最大傳輸單元,某一層通信協議上所能承受的最大數據包大小;MTU越大承載的有效數據包就越大)

      5) netns PID:將指定的網卡移動到指定的虛擬網路(本地系統將看不到這塊網卡)

         示例,ip netns add mynet ( 構建虛擬網路mynet )

            ip link set eth1 netns mynet ( 將介面eth1添加到虛擬網路mynet )

            ip netns exec mynet ip link show ( 查看虛擬網路mynet的介面信息 )

            ip netns del mynet ( 刪除虛擬網路 )

    ip link show/list:顯示設備屬性

    ip link help:顯示簡要使用幫助

  ip netns:manage network namespaces.

  釋義:netns是linux中提供網路虛擬化的一個項目,使用netns可以在本地虛擬化出多個網路環境,每個虛擬網路空間都獨立於當前系統的網路空間,其中的網路設備及iptables規則等都是獨立的。

    1) ip netns list:列出所有的netns

    2) ip netns add NAME:創建指定的netns

    3) ip netns del NAME:刪除指定的netns

    4) ip netns exec NAME COMMAND:在指定的netns中運行命令

    5) ip netns help:顯示簡要使用幫助
    6) exit:退出虛擬網路

  ip address:protocol address management.

    1) ip address add IFADDR dev IFACE:給指定網卡添加多一個IP;示例,ip address add 192.168.10.2/24 dev eth1

        [label NAME]:為額外添加的地址指明介面別名;示例,ip address add 10.1.1.10/8 dev eth1 label eth1:0

        [broadcast ADDRESS]:廣播地址;會根據IP和NETMASK自動計算得到;

        [scope SCOPE_VALUE]:global:全局可用;link:介面可用;host:僅本機可用

    2) ip address delete IFADDR dev IFACE:刪除介面的ip;示例,ip address delete 10.1.1.10/8 dev eth1

    3) ip address list/show [IFACE]:顯示介面的地址信息;示例,ip address show,ip address list eth1

    4) ip address flush dev IFACE:清空介面所有的地址信息;示例,ip address flush dev eth1

  ip route:routing table management.

    1) ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]:添加路由信息;
      示例,ip route add 10.0.2.0/24 via 10.0.1.11 (到達10.0.2.0/24網路的下一跳地址為10.0.1.11)
         ip route add 10.0.2.0/24 dev eth0 (通過介面eth0到達10.0.2.0/24網路)
         ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 (到達192.168.1.0/24網路須通過介面eth1的下一跳地址10.0.0.1)

         ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 src 10.0.10.100 (通過eth1介面的10.0.10.100地址,經下一跳10.0.0.1到達網路192.168.1.0/24;此條路由的網關是本機)

         ip route add default via 172.16.0.1 dev eth0 (添加預設路由,通過eth0介面經下一跳172.16.0.1出去)

    2) ip route del:刪除路由信息

      示例,ip route delete 192.168.1.0/24

         ip route show:顯示路由信息

    3) ip route flush - flush routing tables

      示例,ip route flush 192.168.1.0/24

    4) ip route get:獲取路由信息

      示例,ip route get 192.168.0.0/24
ss命令:

  獲取socket信息,顯示和netstat類似的內容,但比netstat更高效。

  ss [options] [FILTER]

  options:

    -t:TCP協議的相關連接

    -u:UDP相關的連接

    -w:僅顯示raw套接字的連接

    -l:顯示處於監聽狀態的連接

    -a:所有狀態的連接

    -n:不解析服務名稱

    -p:顯示使用socket的進程

    -e:顯示詳細的信息

    -m:記憶體用量
    -s:顯示socket使用概況

    -o:計時器信息

  FILTER:
    =[state TCP-STATE] [EXPRESSION]

    TCP-STATE包括:

        LISTEN:監聽

        ESTABLISEHD:建立的連接

        FIN_WAIT_1:等待遠程TCP連接中斷請求

        FIN_WAIT_2:從遠程TCP等待連接中斷請求

        SYN_SENT:客戶端發送請求連接

        SYN_RECV:服務端接收請求連接

        CLOSED:沒有任何連接

        示例,ss -tan state ESTABLISHED

    EXPRESSION:

        dport=

        sport=

        示例,ss -tan '( dport = :22 or sport = :22 )' (註意,此命令空格不能省略)

3、詳細說明進行管理工具htop、vmstat等相關命令,並舉例

htop

  基於文本模式的、互動式的進程查看器,主要用於控制台或shell中,比top命令更加人性化,可以說是top的高級版。Linux系統預設不安裝htop,需要自行安裝,可以登錄官網下載安裝或配置epel源,通過yum install htop安裝。

  htop的使用:

    [root@happiness ~]# htop

             

    總共分成四個區:

    1)上左區:顯示CPU(1、2表示CPU的核數)、物理記憶體和交換分區的信息;

    2)上右區:顯示任務數量(tasks)、平均負載(load average)和系統從開機到現在的運行時長;

    3)進程區域:動態顯示當前系統中的所有進程;

    4)操作提示區:顯示當前界面中F1~F10功能鍵中定義的快捷功能。

  htop常用功能鍵:

    F1 : 查看htop使用說明

    F2 : 設置

    F3 : 搜索進程

    F4 : 過濾器,按關鍵字搜索

    F5 : 顯示樹形結構

    F6 : 選擇排序方式

    F7 : 減少nice值,這樣就可以提高對應進程的優先順序

    F8 : 增加nice值,這樣可以降低對應進程的優先順序

    F9 : 殺掉選中的進程

    F10 : 退出htop

 

    / : 搜索字元

    h : 顯示幫助

    l :顯示進程打開的文件

    u :顯示所有用戶,並可以選擇某一特定用戶的進程

    s : 將調用strace追蹤進程的系統調用

    t : 顯示樹形結構

 

    H :顯示/隱藏用戶線程

    I :倒轉排序順序

    K :顯示/隱藏內核線程

    M :按記憶體占用排序

    P :按CPU排序

    T :按運行時間排序

 

    上下鍵或PgUP,PgDn:移動選中進程

    左右鍵或Home,End:移動列表

    Space(空格):標記/取消標記一個進程

  htop常用選項:

    -d #:指定延遲時間間隔

    -u UserName:僅顯示指定用戶的進程

    -s COLUME:以指定欄位進行排序

vmstat

  指定時間間隔內,動態監控系統的虛擬記憶體、進程、CPU活動的整體情況,屬於低開銷工具。命令格式:vmstat [options] [ delay [count] ]。

    delay:刷新時間間隔,如果不指定,只顯示一條結果;

    count:刷新次數;如果不指定count但指定了delay,這時會一直刷新。

  常用的options選項:

    -a:顯示活躍和非活躍記憶體

    -f:顯示從系統啟動至今的fork數量 

    -m:顯示slab信息(slab,Linux的記憶體分配機制)

    -n:只在開始時顯示一次各欄位名稱

    -s:顯示記憶體相關統計信息及多種系統活動數量

    -d:顯示磁碟相關統計信息

    -p:顯示指定磁碟分區統計信息

    -S:使用指定單位顯示。參數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576位元組(bytes)。預設單位為K(1024 bytes)

    -V:顯示vmstat版本信息

  示例:

    預設顯示1次摘要信息

        

    間隔2秒刷新1次摘要,總共顯示3次

         

    關鍵字釋義:

    

4、使用while實現ping 192.168.0.0/24網路

#!/bin/bash
declare -i up=0
declare -i down=0
declare -i i=0
declare -i j=1
trap 'interrupt_trap' INT

interrupt_trap() {
    echo "QUIT"
    echo "There are $up ips being up."
    echo "There are $down ips being down."
    exit 1
}

while [ $i -le 255 ]; do
    while [ $j -le 255 ]; do
        if [ $i -eq 255 -a $j -eq 255 ]; then
            break
        fi
        ping -W1 -c1 192.168.$i.$j &> /dev/null 
        if [ $? -eq 0 ]; then
            echo "192.168.$i.$j is up."
            let up++
        else
            echo "192.168.$i.$j is down."
            let down++
        fi
        let j++
    done
    j=0
    let i++
done

echo "There are $up ips being up."
echo "There are $down ips being down."

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、前期工作准備 電腦虛擬化開啟(必要工作)大致流程: a.電腦開機時長按F12(F10)進入BIOS界面; b.依次選擇Configuratio > Intel Virtual Technology > Enabled; c.F10保存BIOS設置,再次重啟電腦。 二、安裝包准備 VirtualB ...
  • 參看代碼 GitHub: redis.txt 一、Linux (DeepinOS) 環境 二、Windows 環境 蒙 2018-05-09 22:31 周三 ...
  • 1 /* 2 CHECKER3.C -- Mouse Hit-Test Demo Program No.3 3 (c) Charles Petzold, 1998 4 */ 5 6 #include <Windows.h> 7 8 #define DIVISIONS 5 9 10 LRESULT C ...
  • 幾個常用的方法如下: 把全部foo替換為bar,全局替換 當前行替換foo為bar 替換每個foo為bar,但需要確認. 單詞匹配替換, 需確認 忽略foo大小寫,替換為bar, 需確認 ...
  • 查看埠對應的程式: 根據進程號 ,查看程式的運行信息, 比如可執行文件的位置。 ...
  • 內核級別: (POST)BIOS加電自檢-->(Boot Sequence)從BIOS中讀取啟動順序-->讀取MBR中的bootloader-->載入內核-->讀取偽根-->讀取根文件中的init(/sbin/init) 用戶級別:設置預設運行級別-->運行初始化腳本,完成系統初始化-->關閉對應級 ...
  • Linux發行版本:基於linux內核提供桌面環境及辦公套件的操作系統 (Linux內核只有一個) 1. 啟動終端的快捷鍵: ctr + alt + t 2. 終端字體放大: ctr+shift+'+' 3. 終端字體縮小: ctr+'-' 4. ls : 查看當前目錄的文件信息 4.1 ls 路徑 ...
  • usr/bin/ld: cannot find -lxxx問題總結 linux下編譯應用程式常常會出現如下錯誤: /usr/bin/ld: cannot find -lxxx 意思是編譯過程找不到對應庫文件。其中,-lxxx表示鏈接庫文件 libxxx.so。 註:有時候,由於庫文件是編譯過程臨時生 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...