网络管理

一、IP地址分类和TCP/IP四层模型

1、什么是网络

通过通信介质和通信设备 将分布不同地点的两台或多台计算机,经过相应的程序实现通信。

网络的功能:

数据通信:利用网络传播各种信息和数据。

资源共享:计算机中有很多大型的高级的计算机,每个用户可能都没有

硬件资源共享: 远程桌面连接: 将自己的本地磁盘分享给其他用户。

软件资源共享: 将文件上传到FTP :用户可以共同下载

2.、OSI七层参考模型,TCP/IP四层参考模型

image-20230817145044093

七层模型,称OSI(Open System Interconnection)参考模型,是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系

OSI—(Open System Interconnection)开放式系统互联

ISO—(International Organization for Standardization)国际标准化组织

IOS—(Internetwork Operating System)思科网络设备的操作维护系统

分层作用:方便管理,方便排错

image-20230817145228894

物理层:

电气信号涉及介质:蓝牙、无线、光纤、网线

七层模型优点:

1、把复杂的网络划分成为更容易管理的层(将整个庞大而复杂的问题划分为若干个容易处理的小问题)

2、没有一个厂家能完整的提供整套解决方案和所有的设备,协议.

3、独立完成各自该做的任务,互不影响

分工明确,上层不关心下层具体细节

分层同样有益于网络排错

功能与代表设备

分层 名字 功能 工作在该层的设备
7 应用层 提供用户界面 QQ,IE 。应用程序
6 表示层 表示数据,进行加密等处理  
5 会话层 将不同应用程序的数据分离  
4 传输层 提供可靠或不可靠的传输,在重传前执行纠错 防火墙
3 网络层 提供逻辑地址,路由器使用它们来选择路径 三层交换机、路由器
2 数据链路层 将分组拆分为字节,并讲字节组合成帧,使用MAC地址提供介质访问,执行错误检测,但不纠错 二层交换机,网卡
1 物理层 在设备之间传输比特,指定电平,电缆速度和电缆针脚 集线器

3、 IP地址

IPV4----32bit 40亿

IPV6---128bit 无限

MAC---48bit 唯一 00:0c:29:04:58:d9

子网掩码--- 255.255.255.255

ip地址:192.168.52.160

路由:查看路由表,选路过程

路由器:实现路由的功能,它的主要功能是连接不同的网段

网关:大门---》出口

4、 ABCDE网络地址分类

1. A类(广域网)

A`类范围:`0.0.0.0` ~ `127.255.255.255`
`00000000 00000000 00000000 00000000` ~ `01111111 11111111 11111111 11111111

A类理论上总共可以给21亿台设备分配,给广域网用(公网IP),公网IP是不能重复的, 由于公IP网是全球唯一的,因此现在讨论的IP不够用,说的是公网IP不够用的问题, 因为现在有大量的设备,因为各种的原因想直接接入公网,而不是屈居在局域网和城域网下,所以导致了A类地址的紧张

2. B类(城域网,就是大型局域网)

B`类范围:`128.0.0.0` ~ `191.255.255.255`
`10000000 00000000 00000000 00000000` ~ `10111111 11111111 11111111 11111111

B类理论上,可以给10亿台设备分配IPB类是给城域网用的,而且可以重复使用,不担心不够的问题。

3. C类(局域网)

C`类范围:`192.0.0.0` ~ `223.255.255.255`
`11000000 00000000 00000000 00000000` ~ `11011111 11111111 11111111 11111111

由于局域网地址可以被不同局域网复用,因此也不需要担心不够用的问题。

4. D、E类(特殊地址)

  • D类,广播地址:后面介绍什么是广播地址

  • E类,科教使用的特殊IP:使用的是很多保留IP地址,前面讲ABC类时, 事实上在ABC类里有很多的保留地址,这些保留留给了E类来使用。

A类

A`类实际可用范围:`1.0.0.0` ~ `9.255.255.255` 和 `11.0.0.0` ~ `126.255.255.255

保留地址 0.0.0.0 ~ 0.255.255.255:保留,用作特殊用途。 10.0.0.0 ~ 10.255.255.255:保留,用作私有地址。 127.0.0.0 ~ 127.255.255.255:保留,用于做本机回环测试。

B类

B类实际可用范围:

128.0.0.0 ~ 191.255.255.255

保留地址:

172.16.0.0 ~ 172.31.255.255:保留,用于私有网络(私有IP地址范围)

169.254.0.0 ~ 169.254.255.255:保留,用于自动配置(例如 DHCP 失败时的自动分配)

二、网络协议

1、 常用协议

  1. ARP (Address Resolution Protocol):地址解析协议,将IP地址映射到MAC地址,用于在局域网中查找设备的物理地址。

  2. DNS (Domain Name System):域名解析系统,将域名转换为IP地址,使得人们可以通过可读的域名访问互联网资源。

  3. SNMP (Simple Network Management Protocol):简单网络管理协议,用于管理和监控网络设备,收集设备状态信息。

  4. DHCP (Dynamic Host Configuration Protocol):动态主机配置协议,自动分配IP地址、子网掩码、网关等网络配置给设备,简化网络管理。

  5. FTP (File Transfer Protocol):文件传输协议,用于在客户端和服务器之间传输文件。

  6. HTTP (Hypertext Transfer Protocol):超文本传输协议,用于在Web浏览器和Web服务器之间传输超文本。

  7. HTTPS (Secure Hypertext Transfer Protocol):安全超文本传输协议,对HTTP的加密和安全版本,用于保护数据传输安全。

  8. ICMP (Internet Control Message Protocol):Internet控制消息协议,用于传输网络错误消息和控制信息,如 ping 命令。

  9. SMTP (Simple Mail Transfer Protocol):简单邮件传输协议,用于发送和传递电子邮件。

  10. TELNET Protocol:虚拟终端协议,远程登录协议,允许用户通过网络登录到远程主机并执行操作。

  11. TFTP (Trivial File Transfer Protocol):简单文件传输协议,用于小文件传输,常用于网络设备的固件更新。

  12. UDP (User Datagram Protocol):用户数据报协议,无连接的传输协议,适用于需要快速传输的应用。

  13. TCP (Transmission Control Protocol):传输控制协议,面向连接的可靠传输协议,提供错误检测和数据重传等机制,用于大部分应用层通信。

2、TCP/IP簇

TCP/IP协议是一个协议的集合,它包括了多个子协议,每个子协议都有特定的功能和用途。以下是你提到的各个子协议的简要解释:

  1. HTTP (Hypertext Transfer Protocol):用于在Web浏览器和Web服务器之间传输超文本,支持网页浏览。

  2. FTP (File Transfer Protocol):用于在客户端和服务器之间传输文件,支持文件上传和下载。

  3. TFTP (Trivial File Transfer Protocol):用于小文件传输,常用于网络设备的固件更新。

  4. Telnet:远程登录协议,允许用户通过网络登录到远程主机并执行操作。

  5. SNMP (Simple Network Management Protocol):用于管理和监控网络设备,收集设备状态信息。

  6. TCP (Transmission Control Protocol):面向连接的传输协议,提供可靠的、有序的数据传输。

  7. UDP (User Datagram Protocol):非连接的传输协议,适用于需要快速传输的应用,不保证数据的可靠性。

  8. IP (Internet Protocol):Internet协议,用于在网络中传输数据包,是TCP/IP协议族的核心。

  9. ICMP (Internet Control Message Protocol):用于传输网络错误消息和控制信息,如 ping 命令。

  10. ARP (Address Resolution Protocol):地址解析协议,将IP地址映射到MAC地址。

  11. RARP (Reverse Address Resolution Protocol):反向地址解析协议,将MAC地址映射到IP地址。

这些子协议共同构成了TCP/IP协议族,支持了现代互联网通信的各种功能和需求。不同的子协议在不同的层次上工作,协同完成了数据传输、网络管理、远程访问等多种任务。

3、TCP和UDP

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,

image-20230817151731818

第一次对话: 主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”第二次对话: 主机B向主机A发送同意连接和要求同步的数据包:“可以,你什么时候发?第三次对话: 主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”总结:三次“对话”的目的是使数据包的发送和接收同步(同步就是两台主机一个在发送,一个在接收,协调工作),经过三次“对话”之后,主机A才向主机B正式发送数据。

UDP(User Data Protocol,用户数据报协议)UDP是一个非连接的协议,传输数据之前源端和终端不建立连接.UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表;例如:我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息能够及时反馈回来,那么网络就是通的。总结:UDP传输的速度很快,但是不会保障是否被成功接收

总结--TCP与UDP的区别:

1.基于连接与无连接;

2.对系统资源的要求(TCP较多,UDP少);

3.UDP程序结构较简单;

4.TCP保证数据正确性,UDP可能丢包;TCP保证数据顺序,UDP不保证。

4、端口号

TCP和UDP 采用16位的端口号来识别应用程序

TCP/IP协议簇里面的临时分配1024-5000之间的

端口号大于50000以上的是为其他服务保留的

部分TCP端口号

21 ftp 文件传输服务
22 ssh 安全远程连接服务
23 telnet 远程连接服务
25 smtp 电子邮件服务
53 DNS 域名解析服务
80 http web服务
443 https 安全web服务

部分UDP端口号

69 tftp 简单文件传输协议
123 ntp 时间同步服务
161 snmp 简单网络管理

/etc/services文件可以查看所有的端口号

5、netstat

netstat 命令用于显示网络连接状态和统计信息。以下是常用的 netstat 命令参数和语法:

netstat [OPTIONS]

常用参数:

  • -t, --tcp: 显示TCP连接信息。

  • -u, --udp: 显示UDP连接信息。

  • -n, --numeric: 显示IP地址和端口号而不进行名称解析。

  • -a, --all: 显示所有连接(监听和非监听)。

  • -l, --listening: 只显示监听状态的连接。

  • -r, --route: 显示路由表。

  • -s, --statistics: 显示各种网络统计信息。

  • -p, --programs: 显示与连接关联的程序/进程信息。

  • -c, --continuous: 连续显示,类似于实时更新。

  • -i, --interfaces: 显示网络接口信息。

  • -h, --help: 显示帮助信息。

示例用法:

  1. 显示所有TCP连接:

    netstat -t
  2. 显示所有UDP连接:

    netstat -u
  3. 显示监听状态的端口:

    netstat -l
  4. 显示所有网络接口信息:

    netstat -i
  5. 显示路由表:

    netstat -r
  6. 显示网络统计信息:

    netstat -s
  7. 显示每个连接对应的进程信息:

    netstat -p
  8. 连续显示网络状态:

    netstat -c

例:显示所有出于监听的tcp和udp端口

netstat -tuln

 

image-20230817153016769

  • Proto: 连接协议的种类,通常是TCP(Transmission Control Protocol)或UDP(User Datagram Protocol)。

  • Recv-Q: 从远程主机发来的数据字节数,表示等待发送给本地应用程序的数据量。

  • Send-Q: 不是由本地产生的字节数,表示等待本地应用程序读取的数据量。

  • Local Address: 本地的IP地址,可以是IP,也可以是主机名。

  • Foreign Address: 远程主机的IP地址。

  • STATE:

    • CLOSED: 初始(无连接)状态。

    • LISTEN: 侦听状态,等待远程机器的连接请求。

    • SYN_SEND: 在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包。

    • SYN_RECV: 在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态。

    • ESTABLISHED: 完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。

    • FIN_WAIT_1: 在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态。

    • FIN_WAIT_2: 在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态。

    • TIME_WAIT: 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。

    • CLOSING: 在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包,此时,进入CLOSING状态。

    • CLOSE_WAIT: 在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。

    • LAST_ACK: 在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。

      9a54acfea1cfdbc263a725f5e5f53574_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ljZWJlcmdsaXUxMjM0,size_16,color_FFFFFF,t_70

      0a6ad204f1ab90e7125ffae3ba1e6aa0_UNrMr2

扩展:MSL(Maximum Segment Lifetime)是指在TCP协议中,数据分段(segment)在网络中的最长存活时间。每个TCP分段都包含一个生存时间(TTL,Time to Live)字段,表示数据在网络中能够存在的时间。一旦一个TCP分段的TTL字段的值减为0,它将被路由器丢弃。

MSL是一个连接的最大持续时间,即在连接中,一个TCP分段在网络中最多存在的时间,通常用于防止已关闭的连接的分段在网络中永远不会消失。在TCP的四次握手中,一旦最后一个ACK包被发送,连接的一方会进入TIME_WAIT状态,该状态将会持续2 * MSL的时间,以确保在网络中的所有分段都已消失。这有助于确保连接正常关闭,同时防止在网络中出现残留的分段。

MSL的值通常由操作系统设置,一般默认是30秒左右

案例:服务器上有大量的TIME_WAIT链接,如何优化TCP,快速释放TCP连接?

1692672098608

修改MSL时间:

[root@fishman-160 ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout 
60#默认60秒
[root@localhost ~]# echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout    #修改为30秒
[root@localhost ~]# cat !$
cat /proc/sys/net/ipv4/tcp_fin_timeout
30

 

6、ping命令

ping 命令用于测试主机之间的连通性,并且可以测量往返时间(Round-Trip Time,RTT)。下面是 ping 命令的常用参数和用法:

ping [options] host

常用选项:

  • -c count: 指定发送的 ping 包数量。

  • -i interval: 指定发送 ping 包的间隔时间(以秒为单位)。

  • -s packetsize: 设置 ping 包的大小(字节)。

  • -t ttl: 设置 TTL(Time To Live),即数据包的生存时间。

  • -W timeout: 指定等待响应的超时时间(以秒为单位)。

  • -q: 静默模式,只显示汇总信息,不显示详细输出。

  • -4: 仅使用 IPv4 地址。

  • -6: 仅使用 IPv6 地址。

用法示例:

  1. 发送指定数量的 ping 包并显示详细信息:

    ping -c 5 google.com
  2. 设置 ping 包的间隔时间为 1 秒,并显示汇总信息:

    ping -i 1 -q google.com
  3. 发送小包并显示 TTL 信息:

    ping -c 3 -s 56 -t 10 google.com
  4. 仅使用 IPv4 进行 ping 测试:

    ping -4 google.com
  5. 仅使用 IPv6 进行 ping 测试:

    ping -6 ipv6.google.com

ping 命令在网络故障排除和测试主机连通性时非常有用。请注意,一些网络环境可能会限制或过滤 ICMP 流量,因此在某些情况下,ping 命令可能无法正常工作。

7、配置网络和ip

  1. 使用 NetworkManager 工具

    NetworkManager 是 CentOS 8 默认的网络管理工具,提供了图形界面和命令行方式来配置网络。以下是一些常用的 NetworkManager 命令:

    • 查看网络连接列表:

      nmcli connection show
    • 创建一个以太网连接:

      nmcli connection add type ethernet con-name "MyEthernet" ifname eth0
    • 设置静态 IP 地址:

      nmcli connection modify "MyEthernet" ipv4.method manual ipv4.addresses "192.168.1.10/24" ipv4.gateway "192.168.1.1"
    • 启用连接:

      nmcli connection up "MyEthernet"
    • 关闭连接:

      nmcli connection down "MyEthernet"
    • 显示网络设备状态

      nmcli device status

       

    你也可以使用 nmtui 命令进入文本界面的网络配置工具。

  2. 修改配置文件

    CentOS 8 的网络配置文件位于 /etc/sysconfig/network-scripts/ 目录下。可以手动编辑这些文件来配置网络。

    • 配置以太网连接的 IP 地址: 编辑文件 /etc/sysconfig/network-scripts/ifcfg-eth0,将其中的配置项修改为你需要的值,例如:

      DEVICE=eth0
      BOOTPROTO=static
      IPADDR=192.168.1.10
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
      ONBOOT=yes
    • 配置 DNS 服务器: 编辑文件 /etc/sysconfig/network-scripts/ifcfg-eth0,添加以下行:

      DNS1=8.8.8.8
      DNS2=8.8.4.4
    • 启用或禁用网络接口: 编辑文件 /etc/sysconfig/network-scripts/ifcfg-eth0,将 ONBOOT 设置为 yesno

    配置文件修改后,你需要重启网络服务或重启计算机以使更改生效:

    sudo systemctl restart NetworkManager

    这只是网络配置的基本方法,实际操作中可能涉及更多细节和设置。需根据你的网络环境和需求进行相应的配置。

8、修改主机名

[root@fishman-160 ~]# vim /etc/hostname

9、查看DNS

[root@fishman-160 ~]# vim /etc/resolv.conf  #CentOS6后都在网卡配置文件中配置

10、hosts配置

[root@fishman-160 ~]# vim /etc/hosts

11、查看路由表

[root@fishman-160 ~]# route -n

1692682941867 这是一个经典的Linux网络路由表。每一行表示一个路由规则,以下是每列的解释:

  1. Destination: 目标地址,表示要到达的目标网络或主机。0.0.0.0 表示默认路由,即匹配不上其他规则时的走向。

  2. Gateway: 网关地址,表示该目标地址应该通过哪个网关进行访问。在这里,192.168.52.2 是默认路由的网关。

  3. Genmask: 子网掩码,用于确定网络地址和主机地址的部分。255.255.255.0 表示一个典型的/24 子网掩码,表示前24位为网络地址,后8位为主机地址。

  4. Flags: 表示一些标志,如 UG 表示这是一个网关的规则,U 表示路由是有效的,G 表示这是一个网关路由,H 表示目标为主机。

  5. Metric: 表示该规则的优先级,值越小越优先。

  6. Ref: 表示该规则被引用的次数。

  7. Use: 表示该规则被使用的次数。

  8. Iface: 表示出站数据应该通过哪个网络接口发送。

根据上述的路由表,可以看到:

  • 所有发送到目标为 192.168.52.0/24 的数据都将通过 ens33 网络接口发送。

  • 所有发送到目标为 192.168.122.0/24 的数据都将通过 virbr0 虚拟网络接口发送。

  • 默认路由(0.0.0.0)的数据将通过网关 192.168.52.2(你的主机的默认网关)发送。

  1. 增加路由规则

    sudo ip route add <目标地址/子网掩码> via <网关地址> dev <网络接口>

    例如:

    sudo ip route add 192.168.100.0/24 via 192.168.1.1 dev eth0
  2. 删除路由规则

    sudo ip route del <目标地址/子网掩码>

    例如:

    sudo ip route del 192.168.100.0/24
  3. 修改路由规则: 删除原有的路由规则,然后重新添加修改后的规则。

  4. 查询路由表

    • 使用 ip route 命令显示完整的路由表。

    • 使用 ip route list 等效于 ip route

    • 使用 ip route show 等效于 ip route

12、路由跟踪

可以使用 traceroute 命令来跟踪数据包在网络中的路由路径。traceroute 会显示数据包从本地主机到目标主机的传输路径,以及在每一跳的延迟时间。

使用方法如下:

traceroute <目标主机名或IP地址>

例如:

traceroute www.google.com

该命令会输出每一跳的IP地址、主机名、延迟时间等信息

1692761967369

13、arping

arping 是一种网络工具,用于发送ARP 请求和接收 ARP 响应,从而确定本地网络上的主机是否可达。ARP(Address Resolution Protocol)用于将 IP 地址解析为 MAC 地址,以便在局域网中进行通信,和ping的最大区别是arping用于局域网。

arping 的作用在于:

  1. 主机可达性检测:通过发送 ARP 请求并等待响应,可以检测局域网中其他主机是否在线和可达。

  2. 解决 IP 地址与 MAC 地址的映射arping 通过 ARP 请求来获取目标主机的 MAC 地址,从而解决 IP 地址到 MAC 地址的映射关系。

  3. 网络故障排除:当出现网络通信问题时,可以使用 arping 来验证本地网络上是否存在主机不可达的情况。

基本的 arping 语法如下:

arping -c <次数> -I <网络接口> <目标IP>

其中:

  • -c:指定发送 ARP 请求的次数。

  • -I:指定要发送 ARP 请求的网络接口。

  • <目标IP>:指定目标主机的 IP 地址。

arping 发送 ARP 请求后,目标主机如果可达,会回复一个 ARP 响应,然后 arping 会显示响应时间。如果目标主机不可达,arping 会显示一些相关信息,如请求超时等。

1692762510664

通过arping命令可以发现是否存在arp欺骗

例:有主机冒充网关192.168.52.2

1692763288120

14、tcpdump

tcpdump 是一个强大的网络抓包工具,用于捕获网络流量并进行分析。它可以用于监控、调试和分析网络问题。

以下是一些 tcpdump 常用的命令参数:

  1. -i <interface>: 指定要捕获数据包的网络接口。例如,-i eth0 表示在接口 eth0 上捕获数据包。

  2. -n: 不进行主机名解析,只显示 IP 地址。

  3. -nn: 不进行主机名和端口号的解析,只显示数字形式的 IP 地址和端口号。

  4. -c <count>: 指定捕获的数据包数量,达到指定数量后会自动停止捕获。

  5. -s <snaplen>: 设置每个数据包捕获的最大长度(以字节为单位)。默认情况下,数据包会完整捕获,但你可以使用该参数限制捕获的数据包长度。

  6. -X: 显示数据包的十六进制和 ASCII 格式内容。

  7. -v, -vv, -vvv: 增加显示详细程度的级别,多个 v 会增加详细程度。

  8. -A: 显示数据包的 ASCII 内容。

  9. -q: 以更安静的方式显示输出,只显示关键信息。

  10. -r <file>: 从指定的文件中读取数据包进行分析,而不是实时捕获。

  11. -w <file>: 将捕获的数据包写入到指定文件中,可以后续使用 -r 参数进行分析。

  12. -F <file>: 从指定的文件中读取过滤规则。

  13. -f <expression>: 使用指定的 BPF 过滤表达式来过滤捕获的数据包。

  14. port <port>: 指定捕获特定目标或源端口号的数据包。

  15. host <host>: 指定捕获特定目标或源主机的数据包。

  16. src <host>: 指定捕获特定源主机的数据包。

  17. dst <host>: 指定捕获特定目标主机的数据包

下面是一些基本的 tcpdump 使用示例:

  1. 捕获所有流量:

    sudo tcpdump -i <interface>

    这会捕获指定接口(如eth0)上的所有网络流量。

  2. 捕获特定端口的流量:

    sudo tcpdump -i <interface> port <port_number>

    例如,要捕获80端口(HTTP)的流量:

    sudo tcpdump -i eth0 port 80
  3. 保存到文件:

    sudo tcpdump -i <interface> -w <output_file>

    这将捕获指定接口上的流量并将其保存到指定的输出文件中。

  4. 捕获特定源/目标IP的流量:

    sudo tcpdump -i <interface> host <ip_address>

    例如,要捕获与特定IP地址通信的流量:

    sudo tcpdump -i eth0 host 192.168.1.1
  5. 指定数据包数量:

    sudo tcpdump -i <interface> -c <packet_count>

    这将捕获指定数量的数据包后停止。

  6. 显示数据包内容(16进制和ASCII):

    sudo tcpdump -i <interface> -X

    这将以16进制和ASCII形式显示捕获的数据包内容。

  7. 指定过滤器:

    sudo tcpdump -i <interface> <filter_expression>

    你可以使用过滤表达式来捕获特定条件下的数据包,如源/目标IP、端口等。

  8. 显示IP地址解析:

    sudo tcpdump -ni <interface> -nn

例:抓取tcp握手的前三次包

1692769682918

  1. IP 192.168.52.1.51473 > 192.168.52.160.ssh:源IP地址 192.168.52.1 的主机通过端口 51473 向目标IP地址 192.168.52.160 的 SSH 服务发起连接。

  2. Flags [S]:这是TCP标志位,表示这是一个建立连接请求(SYN)的数据包。

  3. seq 3851921429, win 64248:序列号和窗口大小,表示数据包的序列号和窗口大小。

  4. options [mss 1460, nop, uscale 8, nop, nop, sackOK]:TCP选项字段,包括最大报文段长度(MSS)、窗口缩放选项等。

  5. length:数据包长度。

  6. IP 192.168.52.160,ssh > 192.168.52.1.51473:这是对应的响应数据包,从目标IP地址 192.168.52.160 的 SSH 服务回复给源IP地址 192.168.52.1 的主机。

  7. Flags [S.]:这是一个建立连接应答(SYN/ACK)的数据包。

  8. seq 3488015611, ack 3851921430, win 29200:序列号、确认号和窗口大小。

  9. options [mss 1460, nop, nop, sackOK, nop, wscale ?]:TCP选项字段,与前一个数据包类似。

  10. ack 1, win 4186:这是一个确认应答(ACK)的数据包,确认号为1,窗口大小为4186。

  11. 3 packets captured:捕获了3个数据包。

15、watch

watch 命令用于周期性地执行指定的命令,并在终端上显示其输出。这对于监视命令的实时输出非常有用,例如查看日志文件、监视系统性能、跟踪文件变化等。

watch 命令的基本语法如下:

watch [选项] 命令

常见选项:

  • -n--interval:指定刷新间隔的秒数,即多长时间执行一次命令,默认为 2 秒。

  • -d--differences:高亮显示输出中发生变化的部分,非常适用于监视日志文件。

  • -t--no-title:不在顶部显示标题信息。

  • -b--beep:当命令输出发生变化时,发出蜂鸣声。

示例用法:

  1. 查看系统每隔 2 秒的负载情况:

    watch -n 2 uptime
  2. 查看指定日志文件的更新情况:

    watch -n 1 tail /var/log/syslog
  3. 监视文件系统空间使用情况:

    watch df -h
  4. 监视正在运行的进程:

    watch ps aux
  5. 监视磁盘读写情况:

    watch iostat -d 1

请注意,你可以通过按下 Ctrl+C 来停止 watch 命令的执行。watch 命令通常在需要实时监视命令输出的情况下非常有用,因为它能够反复执行命令并将结果显示在终端上,帮助你及时了解命令输出的变化。

posted @   墨香清梦  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
点击右上角即可分享
微信分享提示