网络诊断工具的使用

2021-04-08
1.测试网络连通性
ping
示例:
# ping 223.6.6.6
PING 223.6.6.6 (223.6.6.6) 56(84) bytes of data.
64 bytes from 223.6.6.6: icmp_seq=3 ttl=128 time=14.2 ms
64 bytes from 223.6.6.6: icmp_seq=4 ttl=128 time=14.2 ms
2.显示正确的路由表
ip route
示例:
# ip route
default via 10.0.0.2 dev ens33 proto static metric 100 
10.0.0.0/24 dev ens33 proto kernel scope link src 10.0.0.101 metric 100
3.跟踪路由
traceroute
tracepath
mtr

示例:
#traceroute 223.6.6.6
traceroute to 223.6.6.6 (223.6.6.6), 30 hops max, 60 byte packets
 1  gateway (10.0.0.2)  0.137 ms  0.041 ms  0.058 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *

4.确定名称服务器使用
nslookup
host
dig
5.抓包工具
tcpdump
wireshark
6.安全扫描工具
nmap
netcat:网络界的瑞士军刀,即nc
7.流量控制工具
tc

具体来说一说tcpdump使用

网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not,等逻辑语句帮助去除无用的信息。

命令参数说明:
参数说明:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。

示例:
#不指定任何参数,监听默认第一块网卡经过的数据包,主机上可能不止一块网卡,所以经常指定网卡。
# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bluetooth0, link-type BLUETOOTH_HCI_H4_WITH_PHDR (Bluetooth HCI UART transport layer plus pseudo-header), capture size 262144 bytes

#监听特定网卡
# tcpdump -i ens33
14:58:21.278295 IP localhost.localdomain.ssh > 10.0.0.1.64891: Flags [P.], seq 1706844:1707136, ack 345, win 274, length 292
14:58:21.282246 IP localhost.localdomain.ssh > 10.0.0.1.64891: Flags [P.], seq 1707136:1707316, ack 345, win 274, length 180
14:58:21.282338 IP 10.0.0.1.64891 > localhost.localdomain.ssh: Flags [.], ack 1707136, win 4106, length 0

#监听特定主机,监听主机192.168.2.186的通信包,注意:出入的包都会被监听。
# tcpdump host 192.168.2.186
#特定来源,目标地址的通信
# tcpdump src host 10.0.0.101
#特定目标地址
# tcpdump dst host 10.0.0.53
#特定端口
tcpdump port 3000
#监听TCP/UDP,服务器上不同服务分别用了TCP、UDP作为传输层,假如只想监听TCP的数据包
tcpdump tcp



nmap
扫描远程主机工具,功能远超ping工具发送的ICMP回声请求报文

格式:nmap [Scan Type(s)] [Options] {target specification}

命令选项
-sT   TCP connect() 扫描,这是最基本的 TCP 扫描方式。这种扫描很容易被检测到,在目标主机的
日志中会记录大批的连接请求以及错误信息    
-sS   TCP 同步扫描 (TCP SYN),因为不必全部打开一个 TCP 连接,所以这项技术通常称为半开扫描
(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志   
-sF,-sX,-sN   秘密 FIN 数据包扫描、圣诞树 (Xmas Tree)、空 (Null) 扫描模式。这些扫描方式
的理论依据是:关闭的端口需要对你的探测包回应 RST 包,而打开的端口必需忽略有问题的包    
-sP   ping 扫描,用 ping 方式检查网络上哪些主机正在运行。当主机阻塞 ICMP echo 请求包是
ping 扫描是无效的。nmap 在任何情况下都会进行 ping 扫描,只有目标主机处于运行状态,才会进行后
续的扫描    
-sU   UDP 的数据包进行扫描,想知道在某台主机上提供哪些 UDP 服务,可以使用此选项    
-sA   ACK 扫描,这项高级的扫描方法通常可以用来穿过防火墙。    
-sW   滑动窗口扫描,非常类似于 ACK 的扫描    
-sR   RPC 扫描,和其它不同的端口扫描方法结合使用。    
-b     FTP 反弹攻击 (bounce attack),连接到防火墙后面的一台 FTP 服务器做代理,接着进行端口
扫描。
-P0   在扫描之前,不 ping 主机。    
-PT   扫描之前,使用 TCP ping 确定哪些主机正在运行    
-PS   对于 root 用户,这个选项让 nmap 使用 SYN 包而不是 ACK 包来对目标主机进行扫描。    
-PI   设置这个选项,让 nmap 使用真正的 ping(ICMP echo 请求)来扫描目标主机是否正在运行。
   
-PB   这是默认的 ping 扫描选项。它使用 ACK(-PT) 和 ICMP(-PI) 两种扫描类型并行扫描。如果
防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。  
-O   这个选项激活对 TCP/IP 指纹特征 (fingerprinting) 的扫描,获得远程主机的标志,也就是操
作系统类型
-I   打开 nmap 的反向标志扫描功能。    
-f   使用碎片 IP 数据包发送 SYN、FIN、XMAS、NULL。包增加包过滤、入侵检测系统的难度,使其无
法知道你的企图    
-v   冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。    
-S <IP>   在一些情况下,nmap 可能无法确定你的源地址 。在这种情况使用这个选项给出指定 IP 地
址   
-g port   设置扫描的源端口
-oN   把扫描结果重定向到一个可读的文件 logfilename 中  
-oS   扫描结果输出到标准输出。    
--host_timeout   设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制    
--max_rtt_timeout   设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者
超时。默认值是大约 9000 毫秒    
--min_rtt_timeout   设置 nmap 对每次探测至少等待你指定的时间,以毫秒为单位    
-M count   置进行 TCP connect() 扫描时,最多使用多少个套接字进行并行的扫描

示例:
#Tcp ack扫描,并发2000,速度快
# nmap -n -PA --min-parallelism 2000 192.168.2.186
Warning: Your --min-parallelism option is pretty high!  This can hurt reliability.

Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-01 15:10 CST
Nmap scan report for 192.168.2.186
Host is up (0.0059s latency).
Not shown: 998 filtered ports
PORT     STATE SERVICE
22/tcp   open  ssh

#仅列出指定网段上的每台主机,不发生任何报文到目标主机
# nmap -sL 10.0.0.2/16
Nmap scan report for 10.0.63.253
Nmap scan report for 10.0.63.254
Nmap scan report for 10.0.63.255

#可以指定一个IP地址范围
# nmap -sP 10.0.0.1-10

Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-01 15:14 CST
Nmap scan report for 10.0.0.1
Host is up (0.00018s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 10.0.0.2
Host is up (0.00019s latency).
MAC Address: 00:50:56:FC:59:3D (VMware)
Nmap done: 10 IP addresses (2 hosts up) scanned in 0.38 seconds

#批量扫描一个网段的主机存活数
# nmap -sP -v  10.0.0.2/16
# nmap -v -sn ip/24

#有哪些主机关闭了ping检测,所以可以使用-p0跳过ping的探测,可以加快扫描速度
# nmap -P0 10.0.0.2

Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-01 15:19 CST
Nmap scan report for 10.0.0.2
Host is up (0.00010s latency).
Not shown: 999 closed ports
PORT   STATE    SERVICE
53/tcp filtered domain

#一次性扫描多台目标主机
# nmap 192.168.1.176 192.168.1.178

#使用SYN半开放扫描
nmap -sS 10.0.0.101

Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-01 15:23 CST
Nmap scan report for 10.0.0.101
Host is up (0.0000050s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
111/tcp  open  rpcbind
2049/tcp open  nfs

#扫描开放了TCP端口的设备
# nmap -sT 10.0.0.101

Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-01 15:24 CST
Nmap scan report for 10.0.0.101
Host is up (0.00029s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
111/tcp  open  rpcbind
2049/tcp open  nfs

Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

#扫描开放了UDP端口的设备
# nmap -sU 10.0.0.2

Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-01 15:27 CST
Nmap scan report for 10.0.0.2
Host is up (0.00019s latency).
All 1000 scanned ports on 10.0.0.2 are open|filtered
MAC Address: 00:50:56:FC:59:3D (VMware)

Nmap done: 1 IP address (1 host up) scanned in 21.84 seconds

#扫描TCP和UDP端口
# nmap -sTU -O 192.168.2.186

Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-01 15:29 CST
Nmap scan report for 192.168.2.186
Host is up (0.0020s latency).
Not shown: 999 open|filtered ports, 997 filtered ports
PORT     STATE SERVICE
22/tcp   open  ssh
111/tcp  open  rpcbind
1521/tcp open  oracle
111/udp  open  rpcbind

#用于扫描目标主机服务版本号

# nmap -sV 10.0.0.2

Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-01 15:31 CST
Stats: 0:00:04 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 99.99% done; ETC: 15:31 (0:00:00 remaining)
Stats: 0:00:07 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 99.99% done; ETC: 15:31 (0:00:00 remaining)
Nmap scan report for 10.0.0.2
Host is up (0.00017s latency).
Not shown: 999 closed ports
PORT   STATE    SERVICE VERSION
53/tcp filtered domain
MAC Address: 00:50:56:FC:59:3D (VMware)

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.10 seconds

#查看主机当前开放的端口
# nmap localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-01 15:32 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000012s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 995 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
25/tcp   open  smtp
111/tcp  open  rpcbind
2049/tcp open  nfs

Nmap done: 1 IP address (1 host up) scanned in 1.94 seconds

#探测目标主机操作系统类型
nmap -O 10.0.0.1
#探测目标主机操作系统类型
nmap -A 10.0.0.1