Linux网络工具简介

2023-05-16

Linux网络工具简介

学习计算机网络不能只学习理论知识,同时必须学会网络工具的使用,用网络工具来快速判断自己程序的网络状态并发现问题。第一次使用网络工具前需要先下载安装:

  • 安装网络工具包net-tools

    网络工具包包含很多常用的网络命令,其中最常用的是ifconfig和netstat

    apt-get install net-tools//Ubuntu
    yum -y install net-tools//centos
    
  • 安装tcpdump

    apt-get install tcpdump//Ubuntu
    yum -y install tcpdump//centos
    

    tcpdump是一个可以按照自己的筛选和逻辑抓取网络包的工具,使我们可以查看到网络程序与外界网络环境 的交互细节。

  • 安装wireshark(windows)

    wireshark是一个可以在windows、macos上进行网络包可视化查看的GUI工具,比tcpdump更加直观地看到网络包的各种详细信息。

    安装也很简单,去官网下载适合自己的版本按提示安装使用即可。

    wireshark官网:https://www.wireshark.org/

一、ifconfig

可以**查看并配置网络接口(网卡接口)**的工具。

  • 查看本机网卡信息:

    LAPTOP-OHBI7I8S% ifconfig
    //以太网卡0的IPv4地址,子网掩码,广播地址,网卡状态等信息
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 172.18.190.147  netmask 255.255.240.0  broadcast 172.18.191.255
            inet6 fe80::215:5dff:fe9c:b6d9  prefixlen 64  scopeid 0x20<link>
            ether 00:15:5d:9c:b6:d9  txqueuelen 1000  (Ethernet)
            RX packets 873  bytes 665646 (665.6 KB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 631  bytes 373033 (373.0 KB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    //本地回环信息,使用此IP可以在访问本机上的网络程序
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
  • 关闭/开启网卡:

    LAPTOP-OHBI7I8S% ifconfig eth0 down
    LAPTOP-OHBI7I8S% ifconfig eth0 up
    

除了以上的常用功能外,ifconfig还可以设置网卡MAC地址、设置网络设备IP地址、发送广播数据包等功能:

Linux下ifconfig工具使用方法详解 (baidu.com)

二、netstat

ifconfig更多的是起到查看设置底层网络设备的作用;而netstat更偏向查看和设置网络协议的状态

  • 查看当前网络设备中存在的协议详细信息:

    LAPTOP-OHBI7I8S% netstat
    //当前设备网络环境中存在的外部套接字
    Active Internet connections (w/o servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp6       0      0 ip6-localhost:36757     ip6-localhost:50758     ESTABLISHED
    tcp6       0      0 ip6-localhost:50756     ip6-localhost:36757     ESTABLISHED
    tcp6       0      0 ip6-localhost:36757     ip6-localhost:50756     ESTABLISHED
    tcp6       0      0 ip6-localhost:50758     ip6-localhost:36757     ESTABLISHED
    
    //当前设备存在的Unix域套接字
    Active UNIX domain sockets (w/o servers)
    Proto RefCnt Flags       Type       State         I-Node   Path
    unix  3      [ ]         STREAM     CONNECTED     20562    
    unix  3      [ ]         STREAM     CONNECTED     20561    
    unix  3      [ ]         STREAM     CONNECTED     20560  
    
    //还可以利用grep命令在输出结果中筛选指定协议、指定状态、指定IP、Port的条目
    LAPTOP-OHBI7I8S% netstat | grep tcp | ESTABLISHED
    tcp6       0      0 ip6-localhost:36757     ip6-localhost:50758     ESTABLISHED
    tcp6       0      0 ip6-localhost:50756     ip6-localhost:36757     ESTABLISHED
    tcp6       0      0 ip6-localhost:36757     ip6-localhost:50756     ESTABLISHED
    tcp6       0      0 ip6-localhost:50758     ip6-localhost:36757     ESTABLISHED
    
    //-n参数:禁用DNS协议解析IP地址,查找速度会很快,但看不到域名了
    LAPTOP-OHBI7I8S% netstat -n | grep tcp
    tcp6       0      0 ::1:36757               ::1:50758               ESTABLISHED
    tcp6       0      0 ::1:50756               ::1:36757               ESTABLISHED
    tcp6       0      0 ::1:36757               ::1:50756               ESTABLISHED
    tcp6       0      0 ::1:50758               ::1:36757               ESTABLISHED
    
    //-p参数:查看使用该协议的进程(列出进程ID和进程名)
    LAPTOP-OHBI7I8S% netstat -np | grep tcp
    //宽度不够,展示会破坏格式
    
  • 查看路由表:

    //-r参数:查看路由表
    LAPTOP-OHBI7I8S% netstat -r
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    172.18.176.0    0.0.0.0         255.255.240.0   U         0 0          0 eth0
    
  • 打印所有协议的网络包情况:

    //-s参数:查看所有协议网络包的情况
    LAPTOP-OHBI7I8S% netstat -s
    Ip:
        Forwarding: 2
        1052 total packets received
        0 forwarded
        0 incoming packets discarded
        836 incoming packets delivered
        824 requests sent out
        159 dropped because of missing route
    Icmp:
        0 ICMP messages received
        0 input ICMP message failed
        ICMP input histogram:
        7 ICMP messages sent
        0 ICMP messages failed
        ICMP output histogram:
        destination unreachable: 7
    Tcp:
        11 active connection openings
        5 passive connection openings
        0 failed connection attempts
        2 connection resets received
        4 connections established
        9764 segments received
        10050 segments sent out
        28 segments retransmitted
        0 bad segments received
        2 resets sent
    //and more...
    
  • 查看网络接口(网卡接口)的情况:

    //-i参数:查看网络接口情况,类似ifconfig的功能
    LAPTOP-OHBI7I8S% netstat -i
    Kernel Interface table
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    eth0      1500     1416      0      0 0           863      0      0      0 BMRU
    lo       65536     9621      0      0 0          9621      0      0      0 LRU
    

三、tcpdump+wireshark

从底层网络硬件(ifconfig)到上层各种协议(netsat),最后一个层面就是要查看网络中的各种数据包了。这也是tcpdump+wireshark要帮助我们做的事情。

经过前面的介绍我们知道,tcpdump只支持命令行形式,而wireshark是具有GUI界面的抓包工具。

同时,wireshark还可以解析tcpdump抓取的数据包,以界面的形式帮助我们看清楚tcpdump抓取的包。

因此,我们在调试网络程序时,就可以根据自己情况来选择不同的抓包工具:

如果使用只支持命令行的服务器,可以先用tcpdump抓包到.pcap文件,然后到开发机用wireshark打开观察数据包;

如果使用开发机(windows或macos)进行网络编程,那么也可以直接使用wireshark抓包。

1. tcpdump使用

  • tcpdump选项:
    在这里插入图片描述

  • tcpdump的高级过滤功能:
    在这里插入图片描述

  • 举例:

    //抓取eth0接口相关的,tcp协议的,指定主机和端口号上的包,并将抓到的数据保存在netdata.pcap中
    LAPTOP-OHBI7I8S% tcpdump -i eth0 tcp and host 127.0.0.1 and port 50002 -w netdata.pcap
    //抓取特定TCP状态的包
    LAPTOP-OHBI7I8S% tcpdump -i eth0 "tcp[tcpflags&tcp-syn!=0]" and host 1127.0.0.1 and port 50002
    

2. wireshark使用

wireshark的使用相对容易一些,可以直接使用它抓取数据包,也可以打开tcpdump获得的.pcap文件,以查看数据包详细信息。以下是上面tcpdump抓取到的数据包在wireshark里的显示:

在这里插入图片描述

可以直观的看到不同来自不同协议的数据包用不同的颜色区分开。仔细观察上图可以清晰的看到TCP建立三次握手的SYN、SYN+ACK、ACK报文段;发送搭载应用层数据的TCP报文段和对应的ACK;浏览器向我的服务器发送的HTTP GET报文;还有黑色的报文丢失警告报文段(其他端口发来)。

双击某一条记录可以查看详细信息,比如点开服务器向浏览器发送数据的TCP报文段:

在这里插入图片描述

可以看到TCP头信息和TCP运载的数据,由于没有加密协议,所以可以直接看到应用层的发出的HTTP报文。

总结

本文简要介绍了常见网络工具的基本用法,包括ifconfig, netstat, tcpdump, wireshark。

一定还得在实际项目中熟练运用,发挥这些工具的效用啊!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux网络工具简介 的相关文章

  • SAP-PI/PO ICO中增加过滤条件

  • 今日头条笔试之手串问题

    一 问题描述 题目摘自牛客网 xff0c 可以到牛客网直接查找 xff0c 现直接贴上原题目描述 作为一个手串艺人 xff0c 有金主向你订购了一条包含n个杂色串珠的手串 每个串珠要么无色 xff0c 要么涂了若干种颜色 为了使手串的色彩看
  • VS2015对WDK10驱动程序进行双机调试

    1 设置Visual Studio 2015调试方式 xff1a 主计算机 xff1a WIN7 64位 虚拟机 xff1a WIN7 64位 调试器 xff1a VS2015 调试的软件 xff1a 内核驱动程序 一 主计算机和虚拟机两台
  • Node.js下载及安装步骤

    一 安装环境 1 本机系统 xff1a Windows 11 xff08 64位 xff09 2 Node js xff1a v16 14 2LTS xff08 64位 xff09 二 安装Node js步骤 1 下载对应系统的Node j
  • IDEA中设置默认Maven配置

    一 每次打开项目时修改maven配置 xff08 默认的maven地址可能不是我们想要的 xff0c 可以通过下面方法修改 xff09 二 配置默认的地址 第一种方法太麻烦 xff0c 每次打开项目都需要配置maven xff0c 我们可以
  • sql server 2014下载及安装步骤—图解

    注意 xff1a 1 Win10之后的系统 xff0c 在安装之前需要安装 net framework 3 5 sp1 xff0c 以免后续安装报错 2 Express版本为缩减版 xff0c 无SSMS xff0c 需自行下载 xff0c
  • win11安装IIS步骤—图解

    1 使用快捷键win 43 r 输入control 打开控制面板 xff0c 然后点击程序 xff0c 选择启用或关闭Windows功能 xff0c 勾选Internet Information Services 默认安装IIS 2 通过
  • SqlServer怎么计算两个日期之差,精确到毫秒计算

    DateTime xff1a 字段类型对应的时间格式是 yyyy MM dd HH mm ss fff xff0c 3个f xff0c 精确到1毫秒 ms xff0c 示例 2023 01 07 10 06 15 433 DateTime2
  • 直接在浏览器中访问程序无问题,在IIS中点击浏览网站无反应

    问题 xff1a 直接在浏览器中访问程序无问题 xff0c 在IIS中点击浏览网站无反应 解决方案 xff1a 在设置中点击应用后设置默认的浏览器
  • 在IIS中发布NetCore程序

    需安装的软件 xff0c 如下图所示 软件下载地址 xff1a https dotnet microsoft com en us download dotnet 注意 xff1a 发布的程序版本必须和本地安装的一致 xff0c 否则会报错
  • PotPlayer优化与最高画质设置(最强本地播放器)

    一 前言 软件 xff1a PotPlayer 描述 xff1a 被誉为本地视频最好用的播放器 xff01 PotPlayer下载地址参考 xff1a https potplayer org 推荐Potplayer论坛 xff1a http
  • 基于51单片机定时器计数+74HC595移位寄存器+8位数码管时钟

    基于51单片机 74HC595移位寄存器 8位数码管时钟 Proteus仿真 实例代码 span class token macro property span class token directive hash span span cl
  • 51单片机外部中断使用示例程序

    51单片机外部中断使用示例程序 本实例来源以STC89演示示例 xff0c 为了方便初学者更好的阅读 xff0c 直接将其贴出来 首先分享一份 STC单片机资源一览表 你也可以从https www stcisp com 下载到 xff0c
  • 使用kubeadm部署kubernetes集群

    一 安装环境准备 1 安装环境 xff1a centos7 5 xff0c 一个master节点 xff0c 两个node节点 CentOS Linux release 7 5 1804 Core 2 设置 etc hosts文件的IP和主
  • 【Proteus仿真】51单片机自定义倒计时

    Proteus仿真 51单片机自定义倒计时 Proteus仿真 类似一个时间闹铃的一个功能 只不过这是只是一个用来倒计时的 程序源码 span class token comment 实验说明 实验接线 1 动态数码管模块 gt 单片机管脚
  • 微信小程序云开发之数据库操作

    一 初始化 xff1a 在做数据的操作 xff08 增删改查 xff09 之前 xff0c 先要获取数据库的对象 xff0c 可以通过wx cloud database函数来获取到 xff0c 这个函数默认会使用wx cloud init方
  • QT中QTablewidget表格常用操作

    QTabwidget常用操作 0 QTableWidget初始化示例1 列设置 xff08 表头 xff09 1 1 添加表头1 2 设置表头样式 xff08 颜色和字体 xff09 1 3 设置表头宽度1 4 自适应表头宽度1 5 设置表
  • qt获取天气代码

    qt显示天气信息 1 发送网络请求获取天气数据1 1 需要包含的头文件1 2 创建QNetworkAccessManager对象1 3 发送请求1 4 获取数据并解析 2 天气JSON格式数据3 demo代码4 最终效果 1 发送网络请求获
  • qt弹窗界面模态设置

    1 模态说明 模态 xff1a 启动模态界面时 xff0c 例如弹出对话框强制用户从其他正在进行的业务中聚焦到当前对话框 xff0c 除了该对话框整个应用程序窗口都无法接受用户响应 xff0c 无法切换界面 xff0c 无法切换当前Qt应用
  • QTabWidget常用样式设置

    1 前言 个人使用qt xff0c 感觉QTabwidget是个非常好用的控件 xff0c 但有时候总是感觉其tab样式不好控制或说不够灵活 xff0c 从而导致放弃使用该控件 比如说 xff0c 标签横向显示的时候 xff0c 文字随之也

随机推荐

  • qt环形进度条控件设计

    上效果 推荐文章 xff1a qt电池控件设计 xff1a https blog csdn net weixin 42887343 article details 113932145QWidget控件拖动 xff1a https blog
  • GPL协议认识

    图片链接 xff1a https www runoob com w3cnote open source license html GPL协议 1 GPL GNU General Public License xff0c GNU通用公共许可协
  • C++中的Lambda函数

    Lambda函数也叫匿名函数 xff0c 是自定义函数的一种 专指用关键字 lambda 定义的无名短函数 xff0c 所以也有Lambda表达式这种说法 这种函数得名于省略了用def声明函数的标准步骤 xff0c 是C 43 43 11中
  • go语言判断文件是否为UTF8编码

    一 思路 xff1a 1 UTF8编码规则 xff1a 对于单字节字符 xff0c 8个比特位最高位为0 对于多字节字符 xff0c 若字符由n个字节组成 xff0c 则第一个字节8个比特中最高n位都是1 xff0c 剩下n 1字节中最高位
  • qtcreator调试经常断点导致卡死问题解决

    一 问题描述 在qt开发中 xff0c 使用debuging进行调试 xff08 点击下面按钮 xff09 总会出现 xff0c 软件运行还好 xff0c 就是运行到断点的时候 xff0c 软件一直在等待卡死 在windows上面没有遇到过
  • python+opencv读取摄像头并显示

    解释看注释 xff0c 直接上代码 xff01 span class token keyword import span cv2 span class token comment 打开本地摄像头 span cap span class to
  • python+opencv拉流(串流)

    解释看注释 xff0c 直接上代码 xff01 span class token keyword import span cv2 span class token comment 流链接 span url span class token
  • python+opencv做一个视频录制器(mp4)

    1 功能说明 代码的功能就是读取摄像头视频显示 xff0c 并同时保存为mp4文件 xff0c 示例代码为1小时保存一个视频 2 代码 解释看注释 xff0c 直接上代码 xff01 span class token keyword imp
  • [Python] Pandas 中 read_csv 与 read_hdf 速度对比

    1 read csv VS read hdf 一般情况下 我们习惯使用 Pandas 中的 read csv 函数来读取 CSV 文件 但当 CSV 文件比较大时 read csv 的速度会显得有点慢 这时可以考虑使用 HDF5 格式来存储
  • inode节点(详解)

    首先 xff0c 要明确理解inode是理解Linux Unix文件系统和硬盘存储的基础 1 什么是inode xff1f 理解inode xff0c 要从文件存储说起 文件存储在硬盘上 xff0c 硬盘的最小存储单位叫做 扇区 每个扇区能
  • 8b/10b编码技术系列(一):Serdes、CDR、K码

    和大家分享一下关于8b 10b编码的知识点 xff0c 如有什么错误之处或大家有什么额外的见解欢迎大家公众号后台留言 xff01 一 Serdes高速收发器 在传统的源同步传输中 xff0c 数据和时钟分离 xff0c 在速率较低 lt 1
  • Java处理文件时常用的文件类型及对应的contentType

    2023 3 02 项目管理系统中对项目文档的处理 本来全部设置的是二进制流 xff0c 发现下载后没有文件类型和文件名称 对应的解决办法 xff1a 上传 下载的时候对文件类型进行说明 上传 span class token keywor
  • 51单片机入门-点亮第一个LED灯

    前期准备 keil软件的安装 可以参考我的另一篇文章 https blog csdn net weixin 42911200 article details 81590158 安装烧录软件和添加单片机 由于笔者所用的芯片为STC89C52
  • 基于Docker的容器集群调度机制的设计与实现

    本文来自于北京邮电大学2018年硕士论文的整理 xff0c 作者李战 论文主要分为如下四部分 一 集群调度架构总结 1 xff09 中央式架构 最原始 xff0c k8s xff0c swarm均是该调度方式 由于所有任务都由唯一的调度器处
  • Linux版的Mysql基本操作命令整理

    1 更改密码 SET PASSWORD 61 PASSWORD 39 123456 39 ALTER USER 39 root 39 64 39 localhost 39 PASSWORD EXPIRE NEVER flush privil
  • 关于MySQL5.7 密码策略/审计日志开启详细步骤

    一 配置密码策略 登录mysql xff1a mysql u root p 输入密码 xff1a xxxxxx xff08 以实际情况为例 xff0c 例如 xff1a 123456 xff09 目标密码策略 xff1a 至少一个大写 至少
  • 软件测试的基本理论-黑盒测试-1

    黑盒测试方法 一 黑盒测试方法1 xff0c 等价类划分法a 等价类划分概述等价类划分 b xff1a 设计测试用例等价类划分demo 2 边界值分析法边界值分析法概述边界值分析法demo 3 因果图方法因果图设计方法因果图设计demo 4
  • Python二维插值(scipy.interpolate.interp2d)注意输入参数维度问题

    问题描述 SGLI将数据的经纬度进行了重采样 xff0c 例如本来是10001000的图像重采样到了100100像元 xff0c 这导致在对影像插值时需要先把经 纬度重采样到1000 1000 xff0c 本文主要记录在重采样中遇到的输入数
  • 深度学习传统CV算法——边缘检测算法综述

    边缘检测 边缘概述认识边缘定义轮廓和边缘的关系边缘的类型 边缘检测的概念概念 边缘检测方法基本方法图像滤波图像增强图像检测图像定位 边缘检测算子的概念常见的边缘检测算子用梯度算子实现边缘检测的原理梯度算子边缘点梯度梯度算子 梯度如何衡量使用
  • Linux网络工具简介

    Linux网络工具简介 学习计算机网络不能只学习理论知识 xff0c 同时必须学会网络工具的使用 xff0c 用网络工具来快速判断自己程序的网络状态并发现问题 第一次使用网络工具前需要先下载安装 xff1a 安装网络工具包net tools