当前位置: 首页 > news >正文

linux命令-网络工具-3

大纲

命令功能常用示例
ping测试网络连通性ping -c 4 google.com
netstat网络连接统计netstat -tulnp(监听端口)
ss网络连接统计ss -tnlp
traceroute跟踪数据包路径traceroute -n 8.8.8.8
scp安全远程拷贝scp file user@remote:/path/
tcpdump网络抓包分析tcpdump -i eth0 port 80

ping

检查网络是否通畅或网络连接速度

  • 参数

    参数作用示例
    -c <次数>指定发送请求包的数量ping -c 5 192.168.1.1(发送5次请求)
    -i <间隔秒数>设置包发送间隔(默认1秒)ping -i 0.5 www.baidu.com (每0.5秒发送1个包)
    -s <字节数>自定义数据包大小(默认56字节,总64字节含ICMP头)ping -s 1024 172.17.0.254(发送1024字节数据包)
    -fFlood模式(快速发送包,仅root可用)ping -f example.com (每秒最多发送100个包,用于压力测试)
    -n仅显示IP地址,不解析主机名ping -n www.csdn.net (避免DNS查询延迟)
  • 示例

    • 指定 0.4秒一个包, 每包大小18字节, 默认64

      [root@localhost cc]# ping -i 0.4 -c 3 www.baidu.com
      PING www.baidu.com (183.2.172.17) 56(84) bytes of data.
      64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=1 ttl=128 time=43.4 ms
      64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=2 ttl=128 time=38.6 ms
      64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=3 ttl=128 time=65.8 ms
      
    • ping 3次

      # 过程跟上面一样,但如果不通可能就要很长时间,加上-i更方便一些
      [root@localhost cc]# ping -c 3 www.baidu.com
      
    • Flood模式(快速发送包,仅root可用) 如果不ctrl+c会一直ping

      # Flood模式(快速发送包,仅root可用) 如果不ctrl+c会一直ping
      # 压测时使用
      cc]# ping -f -c3 www.baidu.com
      PING www.baidu.com (183.2.172.177) 56(84) bytes of data.
      
    • 只显示最终的结果, 需要跟上 -c 这个参数,不加-c就需要手动 ctrl+c

      [root@localhost cc]# ping -c 2 -q www.baidu.com
      PING www.baidu.com (183.2.172.17) 56(84) bytes of data.--- www.baidu.com ping statistics ---
      2 packets transmitted, 2 received, 0% packet loss, time 1002ms
      rtt min/avg/max/mdev = 33.335/34.682/36.030/1.360 ms
      # 仅显示最终的结果,不会有打印过程 
      

netstat

netstat 是监控 TCP/IP 网络的控制台命令,能提供网络连接、路由表、接口状态等关键信息,常用于网络问题诊断和连接监控

  • cenos7已废弃, 推荐使用ss , 需要使用 yum -y install net-tools

  • 参数

    参数组合功能描述典型用途
    netstat -a显示所有网络连接(含 LISTEN 状态)全面了解系统网络活动
    netstat -t / -u仅显示 TCP / UDP 连接过滤特定协议连接
    netstat -l显示监听状态的端口检查服务器端口是否正常开放
    netstat -p显示连接关联的进程 ID 和名称定位占用端口的进程
    netstat -r显示系统路由表分析网络数据包转发路径
    netstat -tlpn组合参数:TCP + 监听 + 进程 + 数字IP快速排查服务端口占用
    netstat -c 3
  • 示例

    • 以数字形式显示建立tcp的连接

      [root@localhost cc]# netstat -tn
      Proto Recv-Q Send-Q Local Address           Foreign Address         State
      tcp        0     36 192.168.189.129:22      192.168.189.1:3185  ESTABLISHED
      tcp        0      0 192.168.189.129:22      192.168.189.1:3199  ESTABLISHED
      
    • 显示本地监听以及建立tcp连接

      [root@localhost cc]# netstat -tna
      Proto Recv-Q Send-Q Local Address           Foreign Address      State
      tcp        0      0 0.0.0.0:22              0.0.0.0:*            LISTEN
      ...
      tcp6       0      0 :::22                   :::*            LISTEN
      tcp6       0      0 ::1:25                  :::*            LISTEN  
      
    • 上面的都有,只是多了个pid跟程序名

      [root@localhost cc]# netstat -tnap
      Proto Recv-Q Send-Q Local Address      ..  PID/Program name    
      tcp        0      0 0.0.0.0:22         ..  9275/sshd           
      tcp        0      0 127.0.0.1:25       ..  9422/master         
      tcp        0     36 192.168.189.129:22 ..  9534/sshd: root@pts 
      tcp        0      0 192.168.189.129:22 ..  9540/sshd: root@not 
      tcp6       0      0 :::22              ..  9275/sshd           
      tcp6       0      0 ::1:25             ..  9422/master         
      
    • 列出所有端口的统计信息

      ~]# netstat -s
      Ip:29993749 total packets received0 forwarded0 incoming packets discarded29993749 incoming packets delivered30489738 requests sent out7 outgoing packets dropped
      Icmp:283312 ICMP messages received53210 input ICMP message failed.ICMP input histogram:destination unreachable: 264212echo requests: 735echo replies: 18365
      
    • 显示核心路由信息

      [root@localhost cc]# netstat -rn
      Kernel IP routing table
      Destination     Gateway         Genmask    Flags   MSS Window  irtt Iface
      0.0.0.0         192.168.189.2   0.0.0.0    UG        0 0          0 ens33
      192.168.189.0   0.0.0.0    255.255.255.0   U         0 0          0 ens33
      
    • 统计连接的状态

       ~]# netstat -nat |awk '{print $6}' |sort| uniq -c1 established)1 ESTABLISHED1 Foreign9 LISTEN~]# netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn  # 倒序查看9 LISTEN5 TIME_WAIT1 Foreign1 ESTABLISHED1 established)
      

ss

ss(Socket Statistics)用于显示系统套接字统计信息,相较于传统的 netstat,它能提供更详细的 TCP 状态信息,且因直接读取内核 tcp_diag 模块数据,在高并发场景下速度更快.

  • 参数

    选项组合功能描述示例命令
    -t -a显示所有 TCP 连接(监听+非监听)ss -t -a
    -u -a显示所有 UDP 连接ss -u -a
    -l -p显示监听状态的套接字及对应进程ss -l -p
    -n -a -s以数字格式显示所有连接及统计摘要ss -n -a -s
    -o显示套接字内存使用信息ss -o
    -r解析服务名为主机名ss -r
  • 示例-netstat差不多

  • 与netstat对比

    特性ss 命令netstat 命令
    数据来源内核 tcp_diag 模块(直接高效)/proc 文件系统(开销较大)
    TCP 状态细节支持显示更丰富的状态(如 SYN-RECV)状态展示较基础
    高并发表现处理大量连接时速度更快连接数多时卡顿明显

traceroute

traceroute 是网络诊断工具,通过发送不同协议的数据包,记录途经路由器的 IP 地址和响应时间,帮助定位网络延迟或故障节点其主要协议及对应选项如下:

  • 参数

    协议类型选项端口/说明适用场景
    UDP(默认)30000 以上随机端口常规路径追踪,多数场景适用
    TCP-T -p <端口>指定端口(如 80、443)需穿透防火墙或检测特定服务端口可达性
    ICMP-I使用 ICMP 回显请求(类似 ping)需模拟 ping 路径追踪,部分网络仅允许 ICMP
  • 示例: 使用前需要先安装:yum -y install traceroute

    • 默认 UDP 追踪(带域名解析)

       ~]# traceroute www.badui.com
      traceroute to www.badui.com (67.23.129.4), 30 hops max, 60 byte packets1  gateway (网关)  4.951 ms  5.575 ms  6.347 ms2  路由器 (路由器)  0.217 ms  0.217 ms  0.206 ms3  外网出口地址 (外网出口地址)  76.053 ms  76.996 ms  77.922 ms4  172.30.20.1 (172.30.20.1)  2.323 ms  2.624 ms  2.893 ms....
      10  202.127.113.253 (202.127.113.253)  48.204 ms  48.171 ms  47.916 ms....# 我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果用 traceroute -q 4 www.baidu.com ,表示向每个网关发送4个数据包
      ~]# traceroute -q 4 www.badui.com
      traceroute to www.badui.com (67.23.129.4), 30 hops max, 60 byte packets1  gateway (网关) 6.338 ms  7.019 ms  7.697 ms  8.370 ms2  路由器 (路由器)   0.179 ms  0.412 ms  0.398 ms  0.383 ms3  外网出口地址 (外网出口地址) 8.532 ms  9.393 ms  11.872 ms  12.895 ms。。。。
      
    • 禁用 DNS 解析(仅显示 IP)

       ~]# traceroute -n www.jd.com  
      # 直接输出 IP 地址,减少 DNS 查询耗时,适合快速定位网络节点
      
    • ICMP 协议追踪

       ~]# traceroute -I -n www.jd.com  
      # 使用 ICMP 协议,结果与 ping 路径更接近,部分网络中响应更稳定
      
    • TCP 协议追踪(指定端口 80)

      traceroute -T -p 80 -n www.jd.com  
      # 模拟 TCP 连接请求,可检测目标服务器 80 端口的可达性,中间节点可能因防火墙显示 ***(超时)
      
    • 跳数设置

      ~]# traceroute -m 4 www.baidu.com  # 只显示4跳
      traceroute to www.badui.com (67.23.129.4), 4 hops max, 60 byte packets1  gateway (网关)  4.951 ms  5.575 ms  6.347 ms2  路由器 (路由器)  0.217 ms  0.217 ms  0.206 ms3  外网出口地址 (外网出口地址)  76.053 ms  76.996 ms  77.922 ms4  172.30.20.1 (172.30.20.1)  2.323 ms  2.624 ms  2.893 ms
      
    • 把对外发探测包的等待响应时间设置为3秒

      # 超过3秒就直接返回  ***
      ~]# traceroute -w 3 www.baidu.com 
      

tcpdump

Linux抓包工具tcpdump详解

tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息

  • 关键字&选项

    • 指定地址

      参数说明
      hosthost 210.27.48.2, 指明 210.27.48.2是一台主机
      netnet 202.0.0.0指明202.0.0.0是一个网络地址
      portport 23 指明端口号是23, 如果没有指定类型,缺省的类型是host
    • 指定源或目标

      参数说明
      src指定IP包的源地址
      dst指定IP包的目标地址
      dst or src源地址或目标地址中的其中一个, 不指定默认就是这种
      dst and src源地址或目标地址 需要同时满足
    • 协议类型

      参数说明
      ip指定ip地址
      arparp协议
      tcp指定协议为tcp
      udp指定协议为udp
    • 常用表达式

      逻辑关系符号形式英文形式功能说明使用示例
      (不等于)!not排除指定条件的数据包tcpdump not port 22 tcpdump ! host 192.168.1.1
      (同时满足)&&and需同时满足两个条件的数据包tcpdump port 80 and src 10.0.0.1 tcpdump udp && dst port 53
      (满足其一)``or
  • 基本语法

    • 过滤主机

      # 抓取所有经过eth1,目的或源地址是192.168.1.1的网络数据
      ~]# tcpdump  -i ens160 host 192.168.2.22# 指定源地址  host可不要 默认
      ~]# tcpdump  -i ens160 src host 192.168.2.22# 指定目标地址
      ~]# tcpdump  -i ens160 dst 192.168.2.22
      
    • 过滤端口

      # 抓取经过ens160, 目的或源端口是10050 并源地址是192.168.2.18的地址
      ~]# tcpdump  -i ens160 port 22 and src 192.168.2.18# 指定源端口是22的包,  源=自已
      ~]# tcpdump  -i ens160 src port 22# 抓取目标端口是22的包   目标=谁在连接
      ~]# tcpdump  -i ens160 dst port 22
      
    • 网络过滤

      # 过滤源或目标是 192.168的网络段
      ~]# tcpdump -i eth1 net 192.168     # 过滤源的网段是192.168的
      ~]# tcpdump -i eth1 src net 192.168# 过滤目标的网段是192.168的
      ~]# tcpdump -i eth1 dst net 192.168
      
    • 协议过滤

      tcpdump -i eth1 arp
      tcpdump -i eth1 ip
      tcpdump -i eth1 tcp
      tcpdump -i eth1 udp
      tcpdump -i eth1 icmp
      
    • 运算符过滤

      # 过滤 tcp 端口为999  并且目标是 2.18或2.22的主机, 注意括号 
      ~]# tcpdump -i ens160 '(tcp and port 999 and (dst host 192.168.9.18 or dst host 192.168.2.22))'
      
http://www.dtcms.com/a/544382.html

相关文章:

  • Android 通信机制简析
  • C++ 虚函数的使用开销以及替代方案
  • 椒江网站建设百度手机助手app安卓版官方下载
  • 柯桥做网站的公司怎么查网站是用什么语言做的
  • Unity功能篇:UI和模型高亮
  • Rust | 不只是 async:Actix-web 请求生命周期与 Actor 模型的并发艺术
  • 如何选择专业网站开发商丰台建站推广
  • Kotlin List扩展函数使用指南
  • 重组蛋白与传统蛋白的区别:从来源到特性的全面解析
  • Ubuntu24.04 最小化发布 需要删除的内容
  • 深入理解 Rust 的 LinkedList:双向链表的实践与思考
  • 将一个List分页返回的操作方式
  • 使用Storage Transfer Service 事件驱动型 — 将AWS S3迁移到 GCP Cloud Storage
  • 苏州外贸网站建设赣州网上银行登录
  • Blender动画笔记
  • python学习之正则表达式
  • SCRM平台对比推荐:以企业微信私域运营需求为核心的参考
  • 廊坊网站搭建别墅装修案例
  • select/poll/epoll
  • VTK开发笔记(八):示例Cone5,交互器的实现方式,在Qt窗口中详解复现对应的Demo
  • k8s——资源管理
  • 【QML】001、QML与Qt Quick简介
  • 从0到1学习Qt -- 信号和槽(一)
  • 怎么给网站添加站点统计线上推广怎么做
  • k8s网络通信
  • 【仿RabbitMQ的发布订阅式消息队列】--- 前置技术
  • 在 Vue3 项目中使用 el-tree
  • JVM 字节码剖析
  • 乌兰浩特建设网站WordPress 任务悬赏插件
  • Docker篇3-app.py放在docker中运行的逻辑