本文檔概述了網絡管理中的關鍵命令,如ifconfig配置網絡接口,ip管理路由,ping測試連通性,以及nmap進行安全掃描。還介紹了nslookup和dig用于域名解析,tcpdump抓包分析,以及arp操作和nmap的深入應用。
前言
#網絡配置查看 ifconfig ip a #測試網絡連通性 ping #顯示正確的路由表 ip route #跟蹤路由 traceroute tracepath mtr #確定名稱服務器使用 nslookup host dig #抓包工具 tcpdump wireshark #安全掃描工具 nmap netcat :網絡界的瑞士軍刀,即 nc #流量控制工具 tc #查看或修改網卡配置 mii-tool ethtool modprobe dmesg rmmod ......
網絡管理命令有很多,下面會介紹一些比較常用的。
1. ifconfig
ifconfig命令用于顯示或設置網絡設備,來源于 net-tools 工具包
格式:
ifconfig [網絡設備][down up -allmulti -arp -promisc][add<地址>][del<地址>][<硬件地址>][io_addr][irq ][media<網絡媒介類型>][mem_start<內存地址>][metric<數目>][mtu<字節>][netmask<子網掩碼>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
參數說明:
add<地址> 設置網絡設備IPv6的IP地址 del<地址> 刪除網絡設備IPv6的IP地址 down 關閉指定的網絡設備<硬件地址> 設置網絡設備的類型與硬件地址 io_addr 設置網絡設備的I/O地址 irq 設置網絡設備的IRQ media<網絡媒介類型> 設置網絡設備的媒介類型 mem_start<內存地址> 設置網絡設備在主內存所占用的起始地址 metric<數目> 指定在計算數據包的轉送次數時,所要加上的數目 mtu<字節> 設置網絡設備的MTU netmask<子網掩碼> 設置網絡設備的子網掩碼 tunnel<地址> 建立IPv4與IPv6之間的隧道通信地址 up 啟動指定的網絡設備 -broadcast<地址> 將要送往指定地址的數據包當成廣播數據包來處理 -pointopoint<地址> 與指定地址的網絡設備建立直接連線,此模式具有保密功能 -promisc 關閉或啟動指定網絡設備的promiscuous模式 [IP地址] 指定網絡設備的IP地址 [網絡設備] 指定網絡設備的名稱
示例:
#顯示網絡設備信息 ifconfig #啟動關閉指定網卡 ifconfig eth0 down/up 等于 ifdown/ifup eth0 #設置最大傳輸單元 ifconfig eth0 mtu 1500 #臨時修改 IP ifconfig ens33 192.168.10.20/24 #建立虛擬網卡(網卡別名),流量走主網卡 ifconfig ens33:0 192.168.10.21 ifconfig ens33:1 192.168.10.22 #單獨顯示某網卡 ifconfig eth0
2. ip
ip 命令和 ifconfig 類似,但前者功能更強大,并旨在取代后者。使用 ip 命令,只需一個命令,你就能很輕松地執行一些網絡管理任務。ifconfig 是 net-tools 中已被廢棄使用的一個命令,許多年前就已經沒有維護了。iproute2 套件里提供了許多增強功能的命令,ip 命令即是其中之一。 在這里插入圖片描述
示例:
#顯示網卡設備信息 ip a 或者 ip addr show #查看鏈路層的狀態,但是看不到 ip 地址 iplink ip -slink #顯示更全面,顯示不同網絡接口的統計數據 #查看接入你所在的局域網的設備的 MAC 地址 ip neighbour #開啟/關閉 eth0 iplinkseteth0 up/down #臨時修改網卡名稱 iplinkseteth1 name syhjnet #設置網卡別名(虛擬網卡) 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 #給 eth0 添加 IP 地址 ip addr add 20.0.0.19/24 dev eth0 #刪除 eth0 網卡上的 IP ip addr del 20.0.0.19/24 dev eth0 ip addr flush dev eth0 #設置 eth0 默認網關為 192.168.0.2 ip 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.com PING 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=128time=25.0 ms 64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=2 ttl=128time=25.8 ms 64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=3 ttl=128time=25.9 ms 64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=4 ttl=128time=24.9 ms 64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=5 ttl=128time=25.8 ms --- www.a.shifen.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss,time4039ms rtt 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 -nee Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt 0.0.0.0 20.0.0.2 0.0.0.0 UG 100 0 0 eth0 0 0 0 20.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.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 route add -net 192.168.8.0/24 dev eth1 metric 200 #添加默認路由,網關 172.16.0.1 route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1 route add -net 0.0.0.0/0 gw 172.16.0.1 route 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 -anpt Active 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 :25 :::* LISTEN 3631/master tcp6 0 0 :::22 :::* LISTEN 3421/sshd [root@c7-1 ~]#netstat -anpt | grep sshd 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 :::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 #顯示每個進程具體打開的 socket ss -pl #顯示所有 tcp socket ss -at #顯示所有的 udp socket ss -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.25 traceroute 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.com traceroute 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.com Server: 20.0.0.2 Address: 20.0.0.2#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 112.80.248.75 Name: www.a.shifen.com Address: 112.80.248.76 [root@c7-1 ~]#nslookup www.google.com Server: 20.0.0.2 Address: 20.0.0.2#53 Non-authoritative answer: Name: www.google.com Address: 104.244.46.208 Name: www.google.com Address: 2001:5211 [root@c7-1 ~]#cat/etc/resolv.conf #域名解析配置文件 # Generated by NetworkManager # 一行一個 DNS,最多配置三個 DNS,優先使用第一個 DNS 服務器 nameserver 20.0.0.2 [root@c7-1 ~]#cat/etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 112.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.75 www.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 1653 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 addhelp #顯示連接信息 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 defaulttypeEthernet ifname eth0 #刪除 default 連接 nmcli con del default #創建新連接 static ,指定靜態 IP,不自動連接 nmcti con add con-name static ifname eth0 autoconnect notypeEthernet ipv4.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 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.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-dnsyes
nmcli 實現 bond0:
#添加bonding接口 nmcli con addtypebond con-name mybond0 ifname bond0 mode active-backup #添加從屬接口 nmcli con addtypebond-slave ifname ens37 master bond0 nmcli con addtypebond-slave ifname ens33 master bond0 #注:如無為從屬接口提供連接名,則該名稱是接口名稱加類型構成 #要啟動綁定,則必須首先啟動從屬接口 nmcli con up bond-slave-eth0 nmcli 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] [] [-i ] [-a] [ ] <-Display ARP cache arp [-v] ? ? ? ? ?[-i ] -d [pub] <-Delete ARP entry arp [-vnD] [ ] [-i ] -f [ ] <-Add entry from file arp [-v] ? [ ] [-i ] -s [temp] <-Add entry arp [-v] ? [ ] [-i ] -Ds [netmask ] pub <-''-
參數:
-a<主機>:顯示 arp 緩沖區的所有條目 -H<地址類型>:指定 arp 指令使用的地址類型 -d<主機>:從 arp 緩沖區中刪除指定主機的 arp 條目 -D:使用指定接口的硬件地址 -e:以 Linux 的顯示風格顯示 arp 緩沖區中的條目 -i<接口>:指定要操作 arp 緩沖區的網絡接口 -s<主機>:設置指定的主機的 IP 地址與 MAC 地址的靜態映射 -n:以數字方式顯示 arp 緩沖區中的條目 -v:顯示詳細的 arp 緩沖區條目,包括緩沖區條目的統計信息 -f<文件>:設置主機的 IP 地址與 MAC 地址的靜態映射
示例:
#顯示 ARP 表 arp -n 或 ip neigh #ARP 靜態綁定 MAC 地址可以防止 ARP 欺騙 arp -s 10.0.0.6 002980:38 #刪除 arp 緩存條目 arp -d 10.0.0.6 #指定回復的 MAC 地址 arp -i eth0 -Ds 10.0.0.2 eth1 pub
kali 系統通過 arp 欺騙實現網絡流量劫持
#啟動路由轉發功能 [root@kali ~]#echo1 > /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 nmap yum -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.1 nmap -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
-
Linux
+關注
關注
87文章
11508瀏覽量
213615 -
網絡管理
+關注
關注
0文章
125瀏覽量
28171 -
命令
+關注
關注
5文章
737瀏覽量
22864
原文標題:緊急!服務器網絡故障?這14個Linux命令能救急
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論