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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...