緊急!伺服器網路故障?這14個Linux命令能救急

Linux 常用網路命令大全

本文件概述了網路管理中的關鍵命令,如ifconfig配置網路介面,ip管理路由,ping測試連通性,以及nmap進行安全掃描。還介紹了nslookup和dig用於域名解析,tcpdump抓包分析,以及arp操作和nmap的深入應用。
文章目錄
  • • 前言
  • • 1. ifconfig
  • • 2. ip
  • • 3. ping
  • • 4. route
  • • 5. lsof
  • • 6. netstat
  • • 7. ss
  • • 8. traceroute
  • • 9. nslookup
  • • 10. dig
  • • 11. nmcli
  • • 12. tcpdump
  • • 13. arp
  • • 14. nmap

前言

#網路配置檢視ifconfigip a#測試網路連通性ping#顯示正確的路由表ip route#跟蹤路由traceroutetracepathmtr#確定名稱伺服器使用nslookuphostdig#抓包工具tcpdumpwireshark#安全掃描工具nmapnetcat :網路界的瑞士軍刀,即 nc#流量控制工具tc#檢視或修改網絡卡配置mii-toolethtoolmodprobedmesgrmmod......
網路管理命令有很多,下面會介紹一些比較常用的。

1. ifconfig

ifconfig命令用於顯示或設定網路裝置,來源於 net-tools 工具包格式:
ifconfig [網路裝置][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<網路裝置型別><硬體地址>][io_addr<I/O地址>][irq<IRQ地址>][media<網路媒介型別>][mem_start<記憶體地址>][metric<數目>][mtu<位元組>][netmask<子網掩碼>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
引數說明:
add<地址> 設定網路裝置IPv6的IP地址del<地址> 刪除網路裝置IPv6的IP地址down 關閉指定的網路裝置<hw<網路裝置型別><硬體地址> 設定網路裝置的型別與硬體地址io_addr<I/O地址> 設定網路裝置的I/O地址irq<IRQ地址> 設定網路裝置的IRQmedia<網路媒介型別> 設定網路裝置的媒介型別mem_start<記憶體地址> 設定網路裝置在主記憶體所佔用的起始地址metric<數目> 指定在計算資料包的轉送次數時,所要加上的數目mtu<位元組> 設定網路裝置的MTUnetmask<子網掩碼> 設定網路裝置的子網掩碼tunnel<地址> 建立IPv4與IPv6之間的隧道通訊地址up 啟動指定的網路裝置-broadcast<地址> 將要送往指定地址的資料包當成廣播資料包來處理-pointopoint<地址> 與指定地址的網路裝置建立直接連線,此模式具有保密功能-promisc 關閉或啟動指定網路裝置的promiscuous模式[IP地址] 指定網路裝置的IP地址[網路裝置] 指定網路裝置的名稱
示例:
#顯示網路裝置資訊ifconfig  #啟動關閉指定網絡卡ifconfig eth0 down/up    等於   ifdown/ifup eth0#設定最大傳輸單元ifconfig eth0 mtu 1500 #臨時修改 IPifconfig ens33 192.168.10.20/24#建立虛擬網絡卡(網絡卡別名),流量走主網絡卡ifconfig ens33:0 192.168.10.21ifconfig ens33:1 192.168.10.22#單獨顯示某網絡卡ifconfig eth0

2. ip

ip 命令和 ifconfig 類似,但前者功能更強大,並旨在取代後者。使用 ip 命令,只需一個命令,你就能很輕鬆地執行一些網路管理任務。ifconfig 是 net-tools 中已被廢棄使用的一個命令,許多年前就已經沒有維護了。iproute2 套件裡提供了許多增強功能的命令,ip 命令即是其中之一。

在這裡插入圖片描述
示例:
#顯示網絡卡裝置資訊ip a    或者   ip addr show#檢視鏈路層的狀態,但是看不到 ip 地址ip linkip -s link#顯示更全面,顯示不同網路介面的統計資料#檢視接入你所在的區域網的裝置的 MAC 地址ip neighbour#開啟/關閉 eth0ip linkset eth0 up/down#臨時修改網絡卡名稱ip linkset eth1 name syhjnet#設定網絡卡別名(虛擬網絡卡)ip addr add 172.16.100.100/16 dev eth0 label eth0:0ip addr del 172.16.100.100/16 dev eth0 label eth0:0#給 eth0 新增 IP 地址ip addr add 20.0.0.19/24 dev eth0#刪除 eth0 網絡卡上的 IPip addr del 20.0.0.19/24 dev eth0ip addr flush dev eth0#設定 eth0 預設閘道器為 192.168.0.2ip route add default via 20.0.0.2 dev eth0#檢視路由表條目ip route show#檢視具體 IP 路由包從哪裡來ip route get 20.0.0.19#更改預設路由ip route add default via 20.0.0.196#監控 netlink 訊息ip monitor all
參考:試試 Linux 下的 ip 命令

3. ping

Linux ping 命令用於檢測主機,執行 ping 指令會使用 ICMP 傳輸協議,發出要求回應的資訊,若遠端主機的網路功能沒有問題,就會回應該資訊,因而得知該主機運作正常。格式:
ping [引數選項] [主機名或IP地址]
引數
含義
-c
設定完成要求回應的次數
-i
指定收發資訊的間隔時間
-s
設定資料包的大小
-w
在設定的秒後退出
示例:
[root@c7-1 ~]#ping -c 5 www.baidu.comPING www.a.shifen.com (112.80.248.75) 56(84) bytes of data.64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=1 ttl=128 time=25.0 ms64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=2 ttl=128 time=25.8 ms64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=3 ttl=128 time=25.9 ms64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=4 ttl=128 time=24.9 ms64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=5 ttl=128 time=25.8 ms--- www.a.shifen.com ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4039msrtt min/avg/max/mdev = 24.938/25.535/25.974/0.448 ms

4. route

route 命令用於顯示和操作 IP 路由表。格式:
route [-nee]route add [-net|-host] [網域或主機] netmask [mask] [gw|dev]route del [-net|-host] [網域或主機] netmask [mask] [gw|dev]
選項說明:
add        新增一條路由規則del        刪除一條路由規則-net    目的地址是一個網路-host    目的地址是一個主機target    目的網路或主機netmask    目的地址的網路掩碼gw        路由資料包透過的閘道器dev        為路由指定的網路介面
  要實現兩個不同的子網之間的通訊,需要一臺連線兩個網路的路由器或者同時位於兩個網路的閘道器。在 Linux 系統中,設定路由通常是為了解決以下問題:該 Linux 系統在一個區域網中,區域網中有一個閘道器,能夠讓機器訪問 internet,那麼就需要將這臺機器的 IP 地址設定為 Linux 機器的預設路由。要注意的是,直接在命令列下執行 route 命令來新增路由,不會永久儲存,當網絡卡重啟或者機器重啟之後,該路由就失效了。要想永久儲存,有如下方法:
1.在 /etc/rc.local 裡新增2.在 /etc/sysconfig/network 裡新增到末尾3./etc/sysconfig/static-router :any net x.x.x.x/24 gw y.y.y.y
route 命令的輸出項說明:
Destination    目標網段或者主機Gateway        閘道器地址,”*” 表示目標是本主機所屬的網路,不需要路由Genmask        網路掩碼Flags        標記。一些可能的標記如下:             U — 路由是活動的             H — 目標是一個主機             G — 路由指向閘道器             R — 恢復動態路由產生的表項             D — 由路由的後臺程式動態地安裝             M — 由路由的後臺程式修改             ! — 拒絕路由Metric    路由距離,到達指定網路所需的中轉數(linux 核心中沒有使用)Ref        路由項引用次數(linux 核心中沒有使用)Use        此路由項被路由軟體查詢的次數Iface    該路由表項對應的輸出介面
示例:
[root@c7-1 ~]#route -neeKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface    MSS   Window irtt0.0.0.0         20.0.0.2        0.0.0.0         UG    100    0        0 eth0     0     0      020.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0     0     0      0#路由主要有三種:主機路由,網路路由,預設路由#新增到主機的路由,目標 192.168.1.3 閘道器 172.16.0.1route add -host 192.168.1.3 gw 172.16.0.1 dev eth0#新增到網路的路由,目標 192.168.0.0 閘道器 172.16.0.1route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0route add -net 192.168.8.0/24 dev eth1 metric 200#新增預設路由,閘道器 172.16.0.1route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1route add -net 0.0.0.0/0 gw 172.16.0.1route add default gw 172.16.0.1#刪除路由route del -host 192.168.1.2 dev eth0:0  route del -host 10.20.30.148 gw 10.20.30.40  route del -net 10.20.30.40 netmask 255.255.255.248 eth0  route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41  route del -net 192.168.1.0/24 eth1  route del default gw 192.168.1.1  

5. lsof

lsof(list open files)是一個檢視程序開啟的檔案的工具選項:
-a:列出開啟檔案存在的程序-c<程序名>:列出指定程序所開啟的檔案-u:列出 UID 號程序詳情-g:列出 GID 號程序詳情-d<檔案號>:列出佔用該檔案號的程序+d<目錄>:列出目錄下被開啟的檔案+D<目錄>:遞迴列出目錄下被開啟的檔案-n<目錄>:列出使用 NFS 的檔案-i<條件>:列出符合條件的程序( IPV(4/6)協議    :埠    @ip )-p<程序號>:列出指定程序號所開啟的檔案-n: 不反向解析網路名字
具體示例參考:Linux 程序和計劃任務管理

6. netstat

netstat 用來檢視當前作業系統的網路連線狀態、路由表、介面統計等資訊,來自於 net-tools 工具包,ss 是 netstat 的升級版。
引數
含義
-a
顯示主機中所有活動的網路連線資訊 (包括監聽、非監聽狀態的服務埠)
-n
以數字的形式顯示相關的主機地址、埠等資訊
-p
顯示與網路連線相關聯的程序號、程序名稱資訊 (該選項需要 root 許可權)
-l
顯示處於監聽 (Listen) 狀態的網路連線及埠資訊
-t
檢視 TCP (Transmission Control Protocol,傳輸控制協議) 相關的資訊
-u
顯示 UDP (User Datagram Protocol,使用者資料報協議) 協議相關的資訊
-r
顯示路由表資訊
-i
顯示網絡卡列表
-g
顯示組播組的關係
-s
顯示網路統計資訊
常用命令選項:
netstat [-anpt] [-anpu] [-anptu] [-anpltu] [-ntlp]
示例:
[root@c7-1 ~]#netstat -anptActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      3631/master         tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3421/sshd           tcp        0      0 20.0.0.19:22            20.0.0.1:64385          ESTABLISHED 20165/sshd: root@pt tcp        0     52 20.0.0.19:22            20.0.0.1:60938          ESTABLISHED 30806/sshd: root@pt tcp6       0      0 ::1:25                  :::*                    LISTEN      3631/master         tcp6       0      0 :::22                   :::*                    LISTEN      3421/sshd           [root@c7-1 ~]#netstat -anpt | grep sshdtcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3421/sshd           tcp        0      0 20.0.0.19:22            20.0.0.1:64385          ESTABLISHED 20165/sshd: root@pt tcp        0     52 20.0.0.19:22            20.0.0.1:60938          ESTABLISHED 30806/sshd: root@pt tcp6       0      0 :::22                   :::*                    LISTEN      3421/sshd           

7. ss

ss 命令來自於 iproute 包,是 netstat 的升級版本。netstat 透過遍歷 /proc 來獲取 socket 資訊,ss 使用 netlink 與核心 tcp_diag 模組通訊獲取 socket 資訊。格式:
ss [OPTION]... [FILTER]
選項:
-t: tcp協議相關-u: udp協議相關-w: 裸套接字相關-x:unix sock 相關-l: listen 狀態的連線-a: 所有-n: 數字格式-p: 相關的程式及 PID-e: 擴充套件的資訊-m:記憶體用量-o:計時器資訊
示例:
#顯示本地開啟的所有埠ss -l#列出當前 socket 詳細資訊ss -s#顯示每個程序具體開啟的 socketss -pl#顯示所有 tcp socketss -at#顯示所有的 udp socketss -au#顯示所有已建立的 ssh 連線ss -o state established '( dport = :ssh or sport = :ssh )'#顯示所有已建立的HTTP連線ss -o state established '( dport = :http or sport = :http )'

8. traceroute

traceroute 命令可以用於測試從當前主機到目的主機之間經過了哪些網路結點,並顯示各個中間結點的連線狀態(響應時間)。對於無法響應的結點,連線狀態將顯示為 “*”,預設資料包大小是 40Bytes,使用者可另行設定。如果沒有 traceroute 命令可執行 yum -y install traceroute 安裝。
格式:
traceroute [引數] [主機|IP]
引數:
-d 使用 Socket 層級的排錯功能-f 設定第一個檢測資料包的存活數值 TTL 的大小-F 設定勿離斷位-g 設定來源路由閘道器,最多可設定 8 個-i 使用指定的網路介面送出資料包-I 使用 ICMP 回應取代 UDP 資料資訊-m 設定檢測資料包的最大存活數值 TTL 的大小-n 直接使用 IP 地址而非主機名稱-p 設定 UDP 傳輸協議的通訊埠-r 忽略普通的 Routing Table,直接將資料包送到遠端主機上-s 設定本地主機送出資料包的 IP 地址-t 設定檢測資料包的 TOS 數值-v 詳細顯示指令的執行過程-w 設定等待遠端主機回報的時間-x 開啟或關閉資料包的正確性檢驗
示例:
[root@c7-1 ~]#traceroute 20.0.0.25traceroute to 20.0.0.25 (20.0.0.25), 30 hops max, 60 byte packets 1  20.0.0.25 (20.0.0.25)  0.942 ms  0.782 ms  0.647 ms#可以看到這兩臺機器之間沒有經過路由,是直連或連著交換機的狀態[root@c7-1 ~]#traceroute www.baidu.comtraceroute to www.baidu.com (112.80.248.75), 30 hops max, 60 byte packets 1  gateway (20.0.0.2)  5.900 ms  5.817 ms  5.758 ms 2  * * * 3  * * * 4  * * *......

9. nslookup

域名解析工具,執行 yum -y install bind-utils 安裝。格式:
`nslookup 域名`
示例:
[root@c7-1 ~]#nslookup www.baidu.comServer:        20.0.0.2Address:    20.0.0.2#53Non-authoritative answer:www.baidu.com    canonical name = www.a.shifen.com.Name:    www.a.shifen.comAddress: 112.80.248.75Name:    www.a.shifen.comAddress: 112.80.248.76[root@c7-1 ~]#nslookup www.google.comServer:        20.0.0.2Address:    20.0.0.2#53Non-authoritative answer:Name:    www.google.comAddress: 104.244.46.208Name:    www.google.comAddress: 2001::1f0d:5211[root@c7-1 ~]#cat /etc/resolv.conf    #域名解析配置檔案# Generated by NetworkManager# 一行一個 DNS,最多配置三個 DNS,優先使用第一個 DNS 伺服器nameserver 20.0.0.2[root@c7-1 ~]#cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6112.80.248.75 www.baidu.com#/etc/hosts 檔案中記錄著一份主機名與 IP 地址的對映關係表,一般用來儲存經常需要訪問的主機的資訊。當訪問一個未知的域名時,先查詢該檔案中是否有相應的對映記錄,如果找不到再去向 DNS 伺服器查詢。

10. dig

也是解析域名,同樣來自 bind-utils 包。格式:
`dig 域名`
示例:
[root@c7-1 ~]#dig www.baidu.com; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 <<>> www.baidu.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46750;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 1280;; QUESTION SECTION:;www.baidu.com.            IN    A;; ANSWER SECTION:www.baidu.com.        5    IN    CNAME    www.a.shifen.com.www.a.shifen.com.    5    IN    A    112.80.248.75www.a.shifen.com.    5    IN    A    112.80.248.76;; Query time: 2 msec;; SERVER: 20.0.0.2#53(20.0.0.2);; WHEN: 三 8月 25 16:46:53 CST 2021;; MSG SIZE  rcvd: 104

11. nmcli

nmcli 命令可以完成網絡卡上所有的配置工作,並且可以寫入配置檔案永久生效。centos7 預設安裝,沒有執行 yum -y install NetworkManager。nmcli 命令相關術語:
 - 裝置即網路介面 - 連線是對網路介面的配置,一個網路介面可有多個連線配置,但同時只有一個連線配置生效
格式:
nmcli [OPTIONS] OBJECT { COMMAND | help }
選項:
-a    詢問缺少的引數-c  是否在輸出中使用顏色  -e  轉義值中的列分隔符-f  指定要輸出的欄位-g  -m tabular -t -f 的快捷方式-m  輸出模式-o  概覽模式-p  更加友好的輸出方式-s  允許顯示密碼-t  簡潔輸出-v  顯示程式版本-w  設定等待完成操作的超時
物件:
g[eneral]       NetworkManager 的一般狀態和操作n[etworking]    整體網路控制r[adio]         NetworkManager 無線電開關c[onnection]    NetworkManager 的連線d[evice]        由 NetworkManager 管理的裝置a[gent]         NetworkManager 秘密代理或 polkit 代理m[onitor]       監控 NetworkManager 的變化
示例:
#檢視幫助nmcli con add help#顯示連線資訊nmcli con show#顯示活動連線nmcli con show --active#顯示具體的網路連線配置nmcli con show eth0#顯示裝置狀態nmcli dev status#顯示網路介面屬性nmcli dev show eth0#建立新連線 default,IP 透過 dhcp 自動獲取nmcli con add con-name default type Ethernet ifname eth0#刪除 default 連線nmcli con del default#建立新連線 static ,指定靜態 IP,不自動連線nmcti con add con-name static   ifname eth0 autoconnect no type Ethernetipv4.addresses 172.25.X.10/24 ipv4.gateway   172.25.X.254#啟用 static 連線配置nmcli con up static#啟用 default 連線配置nmcli con up default#修改連線設定nmcli con mod "static" connection.autoconnect nonmcli con mod "static" ipv4.dns 172.25.X.254nmcli con mod "static"  +ipv4.dns  8.8.8.8nmcli con mod "static"  -ipv4.dns  8.8.8.8nmcli con mod "static" ipv4.addresses “172.16.X.10/24  172.16.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
nmcli 實現 bond0:
#新增bonding介面nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup#新增從屬介面nmcli con add type bond-slave ifname ens37 master bond0nmcli con add type bond-slave ifname ens33 master bond0#注:如無為從屬介面提供連線名,則該名稱是介面名稱加型別構成#要啟動繫結,則必須首先啟動從屬介面nmcli con up bond-slave-eth0nmcli con up bond-slave-eth1#啟動繫結nmcli con up mybond0

12. tcpdump

網路資料包截獲分析工具。支援針對網路層、協議、主機、網路或埠的過濾。並提供 and、or、not 等邏輯語句幫助去除無用的資訊。格式:
tcpdump [-adeflnNOpqStvx][-c<資料包數目>][-dd][-ddd][-F<表達檔案>][-i<網路介面>][-r<資料包檔案>][-s<資料包大小>][-tt][-T<資料包型別>][-vv][-w<資料包檔案>][輸出資料欄位]
選項:
-a 嘗試將網路和廣播地址轉換成名稱-c<資料包數目> 收到指定的資料包數目後,就停止進行傾倒操作-d 把編譯過的資料包編碼轉換成可閱讀的格式,並傾倒到標準輸出-dd 把編譯過的資料包編碼轉換成C語言的格式,並傾倒到標準輸出-ddd 把編譯過的資料包編碼轉換成十進位制數字的格式,並傾倒到標準輸出-e 在每列傾倒資料上顯示連線層級的檔案頭-f 用數字顯示網際網路地址-F<表達檔案> 指定內含表達方式的檔案-i<網路介面> 使用指定的網路截面送出資料包-l 使用標準輸出列的緩衝區-n 不把主機的網路地址轉換成名字-N 不列出域名-O 不將資料包編碼最佳化-p 不讓網路介面進入混雜模式-q 快速輸出,僅列出少數的傳輸協議資訊-r<資料包檔案> 從指定的檔案讀取資料包資料-s<資料包大小> 設定每個資料包的大小-S 用絕對而非相對數值列出TCP關聯數-t 在每列傾倒資料上不顯示時間戳記-tt 在每列傾倒資料上顯示未經格式化的時間戳記-T<資料包型別> 強制將表達方式所指定的資料包轉譯成設定的資料包型別-v 詳細顯示指令執行過程-vv 更詳細顯示指令執行過程-x 用十六進位制字碼列出資料包資料-w<資料包檔案> 把資料包資料寫入指定的檔案
示例:
#不指定任何引數,監聽第一塊網絡卡上經過的資料包。主機上可能有不止一塊網絡卡,所以經常需要指定網絡卡tcpdump#監聽特定網絡卡tcpdump -i eth0#限制抓包的數量,抓到 1000 個包後,自動退出tcpdump -c 1000#監聽特定主機,監聽主機 10.0.0.100 的通訊包,出、入的包都會被監聽tcpdump host 10.0.0.100#特定來源tcpdump src host hostname#特定目標地址tcpdump dst host hostname#如果不指定 src 跟 dst,那麼來源或者目標是 hostname 的通訊都會被監聽tcpdump host hostname#特定埠tcpdump port 3000#監聽 TCP/UDP,伺服器上不同服務分別用了 TCP、UDP 作為傳輸層,假如只想監聽 TCP 的資料包tcpdump tcp#來源主機+埠+TCP,監聽來自主機 10.0.0.100 在埠 22 上的 TCP 資料包tcpdump tcp port 22 and src host 10.0.0.100#監聽特定主機之間的通訊tcpdump ip host 10.0.0.101 and 10.0.0.102#10.0.0.101 和除了 10.0.0.1 之外的主機之間的通訊tcpdump ip host 10.0.0.101 and ! 10.0.0.1#儲存到本地,tcpdump 預設會將輸出寫到緩衝區,只有緩衝區內容達到一定的大小,或者 tcpdump 退出時,才會將輸出寫到本地磁碟,可以加上 -U 強制立即寫到本地磁碟(一般不建議,效能相對較差)tcpdump -n -vvv -c 1000 -w /tmp/tcpdump_save.cap#詳細示例和解釋tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個引數的位置,用來過濾數據報的型別(2)-i eth1 : 只抓經過介面 eth1 的包(3)-t : 不顯示時間戳(4)-s 0 : 抓取資料包時預設抓取長度為 68 位元組。加上-S 0 後可以抓到完整的資料包(5)-c 100 : 只抓取 100 個數據包(6)dst port ! 22 : 不抓取目標埠是 22 的資料包(7)src net 192.168.1.0/24 : 資料包的源網路地址為 192.168.1.0/24(8)-w ./target.cap : 儲存成 cap 檔案,方便用 wireshark 分析
參考:tcpdump 使用詳解tcpdump命令

13. arp

arp 命令用於操作主機的 arp 緩衝區,可以用來顯示 arp 緩衝區中的所有條目、刪除指定的條目或者新增靜態的 ip 地址與 MAC 地址對應關係。
格式:
arp [-vn]  [<HW>] [-i <if>] [-a] [<hostname>]             <-Display ARP cachearp [-v]          [-i <if>] -d  <host> [pub]               <-Delete ARP entryarp [-vnD] [<HW>] [-i <if>] -f  [<filename>]            <-Add entry from filearp [-v]   [<HW>] [-i <if>] -s  <host> <hwaddr> [temp]            <-Add entryarp [-v]   [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub          <-''-
引數:
-a<主機>:顯示 arp 緩衝區的所有條目-H<地址型別>:指定 arp 指令使用的地址型別-d<主機>:從 arp 緩衝區中刪除指定主機的 arp 條目-D:使用指定介面的硬體地址-e:以 Linux 的顯示風格顯示 arp 緩衝區中的條目-i<介面>:指定要操作 arp 緩衝區的網路介面-s<主機><MAC地址>:設定指定的主機的 IP 地址與 MAC 地址的靜態對映-n:以數字方式顯示 arp 緩衝區中的條目-v:顯示詳細的 arp 緩衝區條目,包括緩衝區條目的統計資訊-f<檔案>:設定主機的 IP 地址與 MAC 地址的靜態對映
示例:
#顯示 ARP 表arp -n    或    ip neigh#ARP 靜態繫結 MAC 地址可以防止 ARP 欺騙arp -s 10.0.0.6 00:0c:29:32:80:38#刪除 arp 快取條目arp -d 10.0.0.6#指定回覆的 MAC 地址arp -i eth0 -Ds 10.0.0.2 eth1 pub
kali 系統透過 arp 欺騙實現網路流量劫持
#啟動路由轉發功能[root@kali ~]# echo 1 > /proc/sys/net/ipv4/ip_forward#安裝包[root@kali ~]# apt-get install dsniff#欺騙目標主機,本機是閘道器[root@kali ~]# arpspoof -i eth0 -t [被劫持的目標主機IP] [閘道器IP]#欺騙閘道器,本機是目標主機[root@kali ~]# arpspoof -i eth0 -t [閘道器IP] [被劫持的目標主機IP] 

14. nmap

nmap 是一個強大的埠掃描類安全評測工具,支援 ping 掃描、多埠檢測等多種技術。
# nmap 軟體包安裝rpm -qa | grep nmapyum -y install nmap
格式:
nmap [掃描型別] [選項] [掃描目標]
常用引數選項:
-p:指定掃描的埠-n:停用反向 DNS 解析(加快掃描速度)-sS:TCP 的 SYN 掃描(半開掃描),只向目標發出 SYN 資料包,如果收到 SYN/ACK 響應包就認為目標埠正在監聽,並立即斷開連線;否則認為目標埠並未開放-sT:TCP 連線掃描,這是完整的 TCP 掃描方式(預設掃描型別),用來建立一個 TCP 連線,如果成功則認為目標埠正在監聽服務,否則認為目標埠並未開放-sF:TCP 的 FIN 掃描,開放的埠會忽略這種資料包,關閉的埠會回應 RST 資料包。許多防火牆只對 SYN 資料包進行簡單過濾,而忽略了其他形式的 TCP 攻擊包。這種型別的掃描可間接檢測防火牆的健壯性-sU:UDP 掃描,探測目標主機提供哪些 UDP 服務,UDP 掃描的速度會比較慢-sP:ICMP 掃描,類似於 ping 檢測,快速判斷目標主機是否存活,不做其他掃描-P0:跳過 ping 檢測,這種方式認為所有的目標主機是存活的,當對方不響應 ICMP 請求時,使用這種方式可以避免因無法 ping 通而放棄掃描
TCP 控制位型別:
SYN  建立連線ACK  確認資料包傳輸狀況FIN  關閉連線PSH  推送位RST  重置URG  緊急
示例:
#分別檢視本機開放的 TCP 埠、UDP 埠nmap -sT 127.0.0.1nmap -sU 127.0.0.1#檢測 192.168.80.0/24 網段有哪些主機提供 HTTP 服務nmap -p 80 192.168.80.0/24#檢測 192.168.80.0/24 網段有哪些存活主機nmap -n -sP 192.168.80.0/24 
連結: https://blog.csdn.net/shenyuanhaojie/article/details/119899419?ops_request_misc=%257B%2522request%255Fid%2522%253A%252294c9704e0bbc2e8341ce9d025bc0345b%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=94c9704e0bbc2e8341ce9d025bc0345b&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-119899419-null-null.142^v102^pc_search_result_base6&utm_term=Linux%E7%BD%91%E7%BB%9C%E5%91%BD%E4%BB%A4&spm=1018.2226.3001.4187
(版權歸原作者所有,侵刪)
文末福利
就目前來說,傳統運維衝擊年薪30W+的轉型方向就是SRE&DevOps崗位。
為了幫助大家早日擺脫繁瑣的基層運維工作,給大家整理了一套高階運維工程師必備技能資料包,內容有多詳實豐富看下圖!
共有 20 個模組
1.38張最全工程師技能圖譜
2.面試大禮包
3.Linux書籍
4.go書籍
······
6.自動化運維工具
18.訊息佇列合集
 以上所有資料獲取請掃碼
備註:最新運維資料
100%免費領取
(後臺不再回復,掃碼一鍵領取)


相關文章