本文檔概述了網(wǎng)絡(luò)管理中的關(guān)鍵命令,如ifconfig配置網(wǎng)絡(luò)接口,ip管理路由,ping測試連通性,以及nmap進行安全掃描。還介紹了nslookup和dig用于域名解析,tcpdump抓包分析,以及arp操作和nmap的深入應(yīng)用。
前言
#網(wǎng)絡(luò)配置查看 ifconfig ip a #測試網(wǎng)絡(luò)連通性 ping #顯示正確的路由表 ip route #跟蹤路由 traceroute tracepath mtr #確定名稱服務(wù)器使用 nslookup host dig #抓包工具 tcpdump wireshark #安全掃描工具 nmap netcat :網(wǎng)絡(luò)界的瑞士軍刀,即 nc #流量控制工具 tc #查看或修改網(wǎng)卡配置 mii-tool ethtool modprobe dmesg rmmod ......
網(wǎng)絡(luò)管理命令有很多,下面會介紹一些比較常用的。
1. ifconfig
ifconfig命令用于顯示或設(shè)置網(wǎng)絡(luò)設(shè)備,來源于 net-tools 工具包
格式:
ifconfig [網(wǎng)絡(luò)設(shè)備][down up -allmulti -arp -promisc][add<地址>][del<地址>][<硬件地址>][io_addr][irq ][media<網(wǎng)絡(luò)媒介類型>][mem_start<內(nèi)存地址>][metric<數(shù)目>][mtu<字節(jié)>][netmask<子網(wǎng)掩碼>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
參數(shù)說明:
add<地址> 設(shè)置網(wǎng)絡(luò)設(shè)備IPv6的IP地址 del<地址> 刪除網(wǎng)絡(luò)設(shè)備IPv6的IP地址 down 關(guān)閉指定的網(wǎng)絡(luò)設(shè)備<硬件地址> 設(shè)置網(wǎng)絡(luò)設(shè)備的類型與硬件地址 io_addr 設(shè)置網(wǎng)絡(luò)設(shè)備的I/O地址 irq 設(shè)置網(wǎng)絡(luò)設(shè)備的IRQ media<網(wǎng)絡(luò)媒介類型> 設(shè)置網(wǎng)絡(luò)設(shè)備的媒介類型 mem_start<內(nèi)存地址> 設(shè)置網(wǎng)絡(luò)設(shè)備在主內(nèi)存所占用的起始地址 metric<數(shù)目> 指定在計算數(shù)據(jù)包的轉(zhuǎn)送次數(shù)時,所要加上的數(shù)目 mtu<字節(jié)> 設(shè)置網(wǎng)絡(luò)設(shè)備的MTU netmask<子網(wǎng)掩碼> 設(shè)置網(wǎng)絡(luò)設(shè)備的子網(wǎng)掩碼 tunnel<地址> 建立IPv4與IPv6之間的隧道通信地址 up 啟動指定的網(wǎng)絡(luò)設(shè)備 -broadcast<地址> 將要送往指定地址的數(shù)據(jù)包當成廣播數(shù)據(jù)包來處理 -pointopoint<地址> 與指定地址的網(wǎng)絡(luò)設(shè)備建立直接連線,此模式具有保密功能 -promisc 關(guān)閉或啟動指定網(wǎng)絡(luò)設(shè)備的promiscuous模式 [IP地址] 指定網(wǎng)絡(luò)設(shè)備的IP地址 [網(wǎng)絡(luò)設(shè)備] 指定網(wǎng)絡(luò)設(shè)備的名稱
示例:
#顯示網(wǎng)絡(luò)設(shè)備信息 ifconfig #啟動關(guān)閉指定網(wǎng)卡 ifconfig eth0 down/up 等于 ifdown/ifup eth0 #設(shè)置最大傳輸單元 ifconfig eth0 mtu 1500 #臨時修改 IP ifconfig ens33 192.168.10.20/24 #建立虛擬網(wǎng)卡(網(wǎng)卡別名),流量走主網(wǎng)卡 ifconfig ens33:0 192.168.10.21 ifconfig ens33:1 192.168.10.22 #單獨顯示某網(wǎng)卡 ifconfig eth0
2. ip
ip 命令和 ifconfig 類似,但前者功能更強大,并旨在取代后者。使用 ip 命令,只需一個命令,你就能很輕松地執(zhí)行一些網(wǎng)絡(luò)管理任務(wù)。ifconfig 是 net-tools 中已被廢棄使用的一個命令,許多年前就已經(jīng)沒有維護了。iproute2 套件里提供了許多增強功能的命令,ip 命令即是其中之一。 在這里插入圖片描述
示例:
#顯示網(wǎng)卡設(shè)備信息 ip a 或者 ip addr show #查看鏈路層的狀態(tài),但是看不到 ip 地址 iplink ip -slink #顯示更全面,顯示不同網(wǎng)絡(luò)接口的統(tǒng)計數(shù)據(jù) #查看接入你所在的局域網(wǎng)的設(shè)備的 MAC 地址 ip neighbour #開啟/關(guān)閉 eth0 iplinkseteth0 up/down #臨時修改網(wǎng)卡名稱 iplinkseteth1 name syhjnet #設(shè)置網(wǎng)卡別名(虛擬網(wǎng)卡) 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 網(wǎng)卡上的 IP ip addr del 20.0.0.19/24 dev eth0 ip addr flush dev eth0 #設(shè)置 eth0 默認網(wǎng)關(guān)為 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 #監(jiān)控 netlink 消息 ip monitor all
參考:試試 Linux 下的 ip 命令
3. ping
Linux ping 命令用于檢測主機,執(zhí)行 ping 指令會使用 ICMP 傳輸協(xié)議,發(fā)出要求回應(yīng)的信息,若遠端主機的網(wǎng)絡(luò)功能沒有問題,就會回應(yīng)該信息,因而得知該主機運作正常。
格式:
ping [參數(shù)選項] [主機名或IP地址]
參數(shù) | 含義 |
-c | 設(shè)置完成要求回應(yīng)的次數(shù) |
-i | 指定收發(fā)信息的間隔時間 |
-s | 設(shè)置數(shù)據(jù)包的大小 |
-w | 在設(shè)定的秒后退出 |
示例:
[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] [網(wǎng)域或主機] netmask [mask] [gw|dev] route del [-net|-host] [網(wǎng)域或主機] netmask [mask] [gw|dev]
選項說明:
add 添加一條路由規(guī)則 del 刪除一條路由規(guī)則 -net 目的地址是一個網(wǎng)絡(luò) -host 目的地址是一個主機 target 目的網(wǎng)絡(luò)或主機 netmask 目的地址的網(wǎng)絡(luò)掩碼 gw 路由數(shù)據(jù)包通過的網(wǎng)關(guān) dev 為路由指定的網(wǎng)絡(luò)接口
??要實現(xiàn)兩個不同的子網(wǎng)之間的通信,需要一臺連接兩個網(wǎng)絡(luò)的路由器或者同時位于兩個網(wǎng)絡(luò)的網(wǎng)關(guān)。在 Linux 系統(tǒng)中,設(shè)置路由通常是為了解決以下問題:該 Linux 系統(tǒng)在一個局域網(wǎng)中,局域網(wǎng)中有一個網(wǎng)關(guān),能夠讓機器訪問 internet,那么就需要將這臺機器的 IP 地址設(shè)置為 Linux 機器的默認路由。要注意的是,直接在命令行下執(zhí)行 route 命令來添加路由,不會永久保存,當網(wǎng)卡重啟或者機器重啟之后,該路由就失效了。要想永久保存,有如下方法:
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 目標網(wǎng)段或者主機 Gateway 網(wǎng)關(guān)地址,”*” 表示目標是本主機所屬的網(wǎng)絡(luò),不需要路由 Genmask 網(wǎng)絡(luò)掩碼 Flags 標記。一些可能的標記如下: U — 路由是活動的 H — 目標是一個主機 G — 路由指向網(wǎng)關(guān) R — 恢復(fù)動態(tài)路由產(chǎn)生的表項 D — 由路由的后臺程序動態(tài)地安裝 M — 由路由的后臺程序修改 ! — 拒絕路由 Metric 路由距離,到達指定網(wǎng)絡(luò)所需的中轉(zhuǎn)數(shù)(linux 內(nèi)核中沒有使用) Ref 路由項引用次數(shù)(linux 內(nèi)核中沒有使用) Use 此路由項被路由軟件查找的次數(shù) Iface 該路由表項對應(yīng)的輸出接口
示例:
[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 #路由主要有三種:主機路由,網(wǎng)絡(luò)路由,默認路由 #添加到主機的路由,目標 192.168.1.3 網(wǎng)關(guān) 172.16.0.1 route add -host 192.168.1.3 gw 172.16.0.1 dev eth0 #添加到網(wǎng)絡(luò)的路由,目標 192.168.0.0 網(wǎng)關(guān) 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 #添加默認路由,網(wǎng)關(guān) 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)協(xié)議 :端口 @ip ) -p<進程號>:列出指定進程號所打開的文件 -n: 不反向解析網(wǎng)絡(luò)名字
具體示例參考:Linux 進程和計劃任務(wù)管理
6. netstat
netstat 用來查看當前操作系統(tǒng)的網(wǎng)絡(luò)連接狀態(tài)、路由表、接口統(tǒng)計等信息,來自于 net-tools 工具包,ss 是 netstat 的升級版。
參數(shù) | 含義 |
-a | 顯示主機中所有活動的網(wǎng)絡(luò)連接信息 (包括監(jiān)聽、非監(jiān)聽狀態(tài)的服務(wù)端口) |
-n | 以數(shù)字的形式顯示相關(guān)的主機地址、端口等信息 |
-p | 顯示與網(wǎng)絡(luò)連接相關(guān)聯(lián)的進程號、進程名稱信息 (該選項需要 root 權(quán)限) |
-l | 顯示處于監(jiān)聽 (Listen) 狀態(tài)的網(wǎng)絡(luò)連接及端口信息 |
-t | 查看 TCP (Transmission Control Protocol,傳輸控制協(xié)議) 相關(guān)的信息 |
-u | 顯示 UDP (User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議) 協(xié)議相關(guān)的信息 |
-r | 顯示路由表信息 |
-i | 顯示網(wǎng)卡列表 |
-g | 顯示組播組的關(guān)系 |
-s | 顯示網(wǎng)絡(luò)統(tǒng)計信息 |
常用命令選項:
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 與內(nèi)核 tcp_diag 模塊通信獲取 socket 信息。
格式:
ss [OPTION]... [FILTER]
選項:
-t: tcp協(xié)議相關(guān) -u: udp協(xié)議相關(guān) -w: 裸套接字相關(guān) -x:unix sock 相關(guān) -l: listen 狀態(tài)的連接 -a: 所有 -n: 數(shù)字格式 -p: 相關(guān)的程序及 PID -e: 擴展的信息 -m:內(nèi)存用量 -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 命令可以用于測試從當前主機到目的主機之間經(jīng)過了哪些網(wǎng)絡(luò)結(jié)點,并顯示各個中間結(jié)點的連接狀態(tài)(響應(yīng)時間)。對于無法響應(yīng)的結(jié)點,連接狀態(tài)將顯示為 “*”,預(yù)設(shè)數(shù)據(jù)包大小是 40Bytes,用戶可另行設(shè)置。如果沒有 traceroute 命令可執(zhí)行 yum -y install traceroute 安裝。
格式:
traceroute [參數(shù)] [主機|IP]
參數(shù):
-d 使用 Socket 層級的排錯功能 -f 設(shè)置第一個檢測數(shù)據(jù)包的存活數(shù)值 TTL 的大小 -F 設(shè)置勿離斷位 -g 設(shè)置來源路由網(wǎng)關(guān),最多可設(shè)置 8 個 -i 使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包 -I 使用 ICMP 回應(yīng)取代 UDP 資料信息 -m 設(shè)置檢測數(shù)據(jù)包的最大存活數(shù)值 TTL 的大小 -n 直接使用 IP 地址而非主機名稱 -p 設(shè)置 UDP 傳輸協(xié)議的通信端口 -r 忽略普通的 Routing Table,直接將數(shù)據(jù)包送到遠端主機上 -s 設(shè)置本地主機送出數(shù)據(jù)包的 IP 地址 -t 設(shè)置檢測數(shù)據(jù)包的 TOS 數(shù)值 -v 詳細顯示指令的執(zhí)行過程 -w 設(shè)置等待遠端主機回報的時間 -x 開啟或關(guān)閉數(shù)據(jù)包的正確性檢驗
示例:
[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 #可以看到這兩臺機器之間沒有經(jīng)過路由,是直連或連著交換機的狀態(tài) [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
域名解析工具,執(zhí)行 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,優(yōu)先使用第一個 DNS 服務(wù)器 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 地址的映射關(guān)系表,一般用來保存經(jīng)常需要訪問的主機的信息。當訪問一個未知的域名時,先查找該文件中是否有相應(yīng)的映射記錄,如果找不到再去向 DNS 服務(wù)器查詢。
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 命令可以完成網(wǎng)卡上所有的配置工作,并且可以寫入配置文件永久生效。centos7 默認安裝,沒有執(zhí)行 yum -y install NetworkManager。
nmcli 命令相關(guān)術(shù)語:
- 設(shè)備即網(wǎng)絡(luò)接口 - 連接是對網(wǎng)絡(luò)接口的配置,一個網(wǎng)絡(luò)接口可有多個連接配置,但同時只有一個連接配置生效
格式:
nmcli [OPTIONS] OBJECT { COMMAND |help}
選項:
-a 詢問缺少的參數(shù) -c 是否在輸出中使用顏色 -e 轉(zhuǎn)義值中的列分隔符 -f 指定要輸出的字段 -g -m tabular -t -f 的快捷方式 -m 輸出模式 -o 概覽模式 -p 更加友好的輸出方式 -s 允許顯示密碼 -t 簡潔輸出 -v 顯示程序版本 -w 設(shè)置等待完成操作的超時
對象:
g[eneral] NetworkManager 的一般狀態(tài)和操作 n[etworking] 整體網(wǎng)絡(luò)控制 r[adio] NetworkManager 無線電開關(guān) c[onnection] NetworkManager 的連接 d[evice] 由 NetworkManager 管理的設(shè)備 a[gent] NetworkManager 秘密代理或 polkit 代理 m[onitor] 監(jiān)控 NetworkManager 的變化
示例:
#查看幫助 nmcli con addhelp #顯示連接信息 nmcli con show #顯示活動連接 nmcli con show --active #顯示具體的網(wǎng)絡(luò)連接配置 nmcli con show eth0 #顯示設(shè)備狀態(tài) nmcli dev status #顯示網(wǎng)絡(luò)接口屬性 nmcli dev show eth0 #創(chuàng)建新連接 default,IP 通過 dhcp 自動獲取 nmcli con add con-name defaulttypeEthernet ifname eth0 #刪除 default 連接 nmcli con del default #創(chuàng)建新連接 static ,指定靜態(tài) 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 #修改連接設(shè)置 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設(shè)置存放在 /etc/resolv.conf,PEERDNS=no 表示當 IP 通過 dhcp 自動獲取時,dns 仍是手動設(shè)置, 不自動獲取等價于下面命令 nmcli con mod"system eth0"ipv4.ignore-auto-dnsyes
nmcli 實現(xiàn) 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 #注:如無為從屬接口提供連接名,則該名稱是接口名稱加類型構(gòu)成 #要啟動綁定,則必須首先啟動從屬接口 nmcli con up bond-slave-eth0 nmcli con up bond-slave-eth1 #啟動綁定 nmcli con up mybond0
12. tcpdump
網(wǎng)絡(luò)數(shù)據(jù)包截獲分析工具。支持針對網(wǎng)絡(luò)層、協(xié)議、主機、網(wǎng)絡(luò)或端口的過濾。并提供 and、or、not 等邏輯語句幫助去除無用的信息。
格式:
tcpdump [-adeflnNOpqStvx][-c<數(shù)據(jù)包數(shù)目>][-dd][-ddd][-F<表達文件>][-i<網(wǎng)絡(luò)界面>][-r<數(shù)據(jù)包文件>][-s<數(shù)據(jù)包大小>][-tt][-T<數(shù)據(jù)包類型>][-vv][-w<數(shù)據(jù)包文件>][輸出數(shù)據(jù)欄位]
選項:
-a 嘗試將網(wǎng)絡(luò)和廣播地址轉(zhuǎn)換成名稱 -c<數(shù)據(jù)包數(shù)目> 收到指定的數(shù)據(jù)包數(shù)目后,就停止進行傾倒操作 -d 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成可閱讀的格式,并傾倒到標準輸出 -dd把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成C語言的格式,并傾倒到標準輸出 -ddd 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成十進制數(shù)字的格式,并傾倒到標準輸出 -e 在每列傾倒資料上顯示連接層級的文件頭 -f 用數(shù)字顯示網(wǎng)際網(wǎng)絡(luò)地址 -F<表達文件> 指定內(nèi)含表達方式的文件 -i<網(wǎng)絡(luò)界面> 使用指定的網(wǎng)絡(luò)截面送出數(shù)據(jù)包 -l 使用標準輸出列的緩沖區(qū) -n 不把主機的網(wǎng)絡(luò)地址轉(zhuǎn)換成名字 -N 不列出域名 -O 不將數(shù)據(jù)包編碼最佳化 -p 不讓網(wǎng)絡(luò)界面進入混雜模式 -q 快速輸出,僅列出少數(shù)的傳輸協(xié)議信息 -r<數(shù)據(jù)包文件> 從指定的文件讀取數(shù)據(jù)包數(shù)據(jù) -s<數(shù)據(jù)包大小> 設(shè)置每個數(shù)據(jù)包的大小 -S 用絕對而非相對數(shù)值列出TCP關(guān)聯(lián)數(shù) -t 在每列傾倒資料上不顯示時間戳記 -tt 在每列傾倒資料上顯示未經(jīng)格式化的時間戳記 -T<數(shù)據(jù)包類型> 強制將表達方式所指定的數(shù)據(jù)包轉(zhuǎn)譯成設(shè)置的數(shù)據(jù)包類型 -v 詳細顯示指令執(zhí)行過程 -vv 更詳細顯示指令執(zhí)行過程 -x 用十六進制字碼列出數(shù)據(jù)包資料 -w<數(shù)據(jù)包文件> 把數(shù)據(jù)包數(shù)據(jù)寫入指定的文件
示例:
#不指定任何參數(shù),監(jiān)聽第一塊網(wǎng)卡上經(jīng)過的數(shù)據(jù)包。主機上可能有不止一塊網(wǎng)卡,所以經(jīng)常需要指定網(wǎng)卡 tcpdump #監(jiān)聽特定網(wǎng)卡 tcpdump -i eth0 #限制抓包的數(shù)量,抓到 1000 個包后,自動退出 tcpdump -c 1000 #監(jiān)聽特定主機,監(jiān)聽主機 10.0.0.100 的通信包,出、入的包都會被監(jiān)聽 tcpdump host 10.0.0.100 #特定來源 tcpdump src host hostname #特定目標地址 tcpdump dst host hostname #如果不指定 src 跟 dst,那么來源或者目標是 hostname 的通信都會被監(jiān)聽 tcpdump host hostname #特定端口 tcpdump port 3000 #監(jiān)聽 TCP/UDP,服務(wù)器上不同服務(wù)分別用了 TCP、UDP 作為傳輸層,假如只想監(jiān)聽 TCP 的數(shù)據(jù)包 tcpdump tcp #來源主機+端口+TCP,監(jiān)聽來自主機 10.0.0.100 在端口 22 上的 TCP 數(shù)據(jù)包 tcpdump tcp port 22 and src host 10.0.0.100 #監(jiān)聽特定主機之間的通信 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 默認會將輸出寫到緩沖區(qū),只有緩沖區(qū)內(nèi)容達到一定的大小,或者 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這些選項等都要放到第一個參數(shù)的位置,用來過濾數(shù) 據(jù)報的類型 (2)-i eth1 : 只抓經(jīng)過接口 eth1 的包 (3)-t : 不顯示時間戳 (4)-s 0 : 抓取數(shù)據(jù)包時默認抓取長度為 68 字節(jié)。加上-S 0 后可以抓到完整的數(shù)據(jù)包 (5)-c 100 : 只抓取 100 個數(shù)據(jù)包 (6)dst port ! 22 : 不抓取目標端口是 22 的數(shù)據(jù)包 (7)src net 192.168.1.0/24 : 數(shù)據(jù)包的源網(wǎng)絡(luò)地址為 192.168.1.0/24 (8)-w ./target.cap : 保存成cap文件,方便用 wireshark 分析
參考:
tcpdump 使用詳解
tcpdump命令
13. arp
arp 命令用于操作主機的 arp 緩沖區(qū),可以用來顯示 arp 緩沖區(qū)中的所有條目、刪除指定的條目或者添加靜態(tài)的 ip 地址與 MAC 地址對應(yīng)關(guān)系。
格式:
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 <-''-
參數(shù):
-a<主機>:顯示 arp 緩沖區(qū)的所有條目 -H<地址類型>:指定 arp 指令使用的地址類型 -d<主機>:從 arp 緩沖區(qū)中刪除指定主機的 arp 條目 -D:使用指定接口的硬件地址 -e:以 Linux 的顯示風(fēng)格顯示 arp 緩沖區(qū)中的條目 -i<接口>:指定要操作 arp 緩沖區(qū)的網(wǎng)絡(luò)接口 -s<主機>:設(shè)置指定的主機的 IP 地址與 MAC 地址的靜態(tài)映射 -n:以數(shù)字方式顯示 arp 緩沖區(qū)中的條目 -v:顯示詳細的 arp 緩沖區(qū)條目,包括緩沖區(qū)條目的統(tǒng)計信息 -f<文件>:設(shè)置主機的 IP 地址與 MAC 地址的靜態(tài)映射
示例:
#顯示 ARP 表 arp -n 或 ip neigh #ARP 靜態(tài)綁定 MAC 地址可以防止 ARP 欺騙 arp -s 10.0.0.6 002980:38 #刪除 arp 緩存條目 arp -d 10.0.0.6 #指定回復(fù)的 MAC 地址 arp -i eth0 -Ds 10.0.0.2 eth1 pub
kali 系統(tǒng)通過 arp 欺騙實現(xiàn)網(wǎng)絡(luò)流量劫持
#啟動路由轉(zhuǎn)發(fā)功能 [root@kali ~]#echo1 > /proc/sys/net/ipv4/ip_forward #安裝包 [root@kali ~]# apt-get install dsniff #欺騙目標主機,本機是網(wǎng)關(guān) [root@kali ~]# arpspoof -i eth0 -t [被劫持的目標主機IP] [網(wǎng)關(guān)IP] #欺騙網(wǎng)關(guān),本機是目標主機 [root@kali ~]# arpspoof -i eth0 -t [網(wǎng)關(guān)IP] [被劫持的目標主機IP]
14. nmap
nmap 是一個強大的端口掃描類安全評測工具,支持 ping 掃描、多端口檢測等多種技術(shù)。
# nmap 軟件包安裝 rpm -qa | grep nmap yum -y install nmap
格式:
nmap [掃描類型] [選項] [掃描目標]
常用參數(shù)選項:
-p:指定掃描的端口 -n:禁用反向 DNS 解析(加快掃描速度) -sS:TCP 的 SYN 掃描(半開掃描),只向目標發(fā)出 SYN 數(shù)據(jù)包,如果收到 SYN/ACK 響應(yīng)包就認為目標端口正在監(jiān)聽,并立即斷開連接;否則認為目標端口并未開放 -sT:TCP 連接掃描,這是完整的 TCP 掃描方式(默認掃描類型),用來建立一個 TCP 連接,如果成功則認為目標端口正在監(jiān)聽服務(wù),否則認為目標端口并未開放 -sF:TCP 的 FIN 掃描,開放的端口會忽略這種數(shù)據(jù)包,關(guān)閉的端口會回應(yīng) RST 數(shù)據(jù)包。許多防火墻只對 SYN 數(shù)據(jù)包進行簡單過濾,而忽略了其他形式的 TCP 攻擊包。這種類型的掃描可間接檢測防火墻的健壯性 -sU:UDP 掃描,探測目標主機提供哪些 UDP 服務(wù),UDP 掃描的速度會比較慢 -sP:ICMP 掃描,類似于 ping 檢測,快速判斷目標主機是否存活,不做其他掃描 -P0:跳過 ping 檢測,這種方式認為所有的目標主機是存活的,當對方不響應(yīng) ICMP 請求時,使用這種方式可以避免因無法 ping 通而放棄掃描
TCP 控制位類型:
SYN 建立連接 ACK 確認數(shù)據(jù)包傳輸狀況 FIN 關(guān)閉連接 PSH 推送位 RST 重置 URG 緊急
示例:
#分別查看本機開放的 TCP 端口、UDP 端口 nmap -sT 127.0.0.1 nmap -sU 127.0.0.1 #檢測 192.168.80.0/24 網(wǎng)段有哪些主機提供 HTTP 服務(wù) nmap -p 80 192.168.80.0/24 #檢測 192.168.80.0/24 網(wǎng)段有哪些存活主機 nmap -n -sP 192.168.80.0/24
鏈接:https://blog.csdn.net/shenyuanhaojie/article/details/119899419
-
Linux
+關(guān)注
關(guān)注
87文章
11506瀏覽量
213463 -
網(wǎng)絡(luò)管理
+關(guān)注
關(guān)注
0文章
124瀏覽量
28139 -
命令
+關(guān)注
關(guān)注
5文章
737瀏覽量
22821
原文標題:緊急!服務(wù)器網(wǎng)絡(luò)故障?這14個Linux命令能救急
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論