netstat命令输出结果分析「建议收藏」

netstat命令输出结果分析「建议收藏」netstat命令一般用来查看IP/Port占用情况,在网络程序员那里就可以用于检测数据发送/接收的端口是否正确。比如最近在做“视频实时传输”项目时就是用它发现问题的。所以有必要看懂netstat命令输出结果的含义,下面给出三个典型的结果:说明:Tserver01为一个UDP服务器测试程序,用于接收客户端的请求数据,然后回传另一组数据到客户端。UDP——传输协议为UDP协

大家好,又见面了,我是你们的朋友全栈君。

netstat命令一般用来查看IP/Port占用情况,在网络程序员那里就可以用于检测数据发送/接收的端口是否正确。比如最近在做“视频实时传输”项目时就是用它发现问题的。所以有必要看懂netstat命令输出结果的含义,下面给出三个典型的结果:

netstat命令输出结果分析「建议收藏」

说明:Tserver01为一个UDP服务器测试程序,用于接收客户端的请求数据,然后回传另一组数据到客户端。

UDP ——传输协议为UDP协议

0.0.0.0:1234 ——本地IP/Port信息。

其中0.0.0.0有两种解释:

1、0.0.0.0代表本机上可用的任意地址。 比如0.0.0.0:1234表示本机上所有地址的1234端口,这样多ip计算机就不用重复显示了。
2、0.0.0.0为默认路由,即要到达不在路由表里面的网段的包都走0.0.0.0这条规则。

其实,我们可以“通用”理解为代表“本机地址”,1234在程序中体现为绑定的1234端口号

0.0.0.0:*——目的地址IP/Port信息。

其中0.0.0.0:*依然有两种解释:

1、此程序只作了绑定套接字操作,没有发送数据到目的地址,也就是没有目的地址。(此时可以是客户端已经发起并建立了与本服务器的通讯,也可以是客户端没有开启。总之是服务器没有向外部发出数据)

2、有目的地址,且发送了数据,但是由于是UDP传输,没有用connect函数建立两端连接。

而作为此测试程序就是:采用UDP协议,并在回传数据时采用了connect绑定客户端地址,但是客户端并没有开启,导致并没有建立连接。

netstat命令输出结果分析「建议收藏」

由上述的知识,可以直接得到如下信息:

解释:

Tserver01程序采用UDP协议传输数据,绑定本地115.28.183.194:1234地址信息,并调用connect函数绑定目的地址221.212.116.50:9781建立了本地—>目的的连接。(至于是否发送数据并不知晓)

 netstat命令输出结果分析「建议收藏」

解释:

videoserver程序绑定本地套接字接受客户端X的连接(0.0.0.0:1234—>0.0.0.0:*),同时绑定了另一个套接字(IP/Port),并调用connnect函数与客户端Y建立连接并通信(X 和Y可以是同一个客户端)。

(PS:程序问题也就是在这里发现的,我们明明通过客户端2与服务器建立端口号是1234的NAT穿透,但是实际程序却用另一个没有被“穿透的”44268随机端口向客户端2发送数据,导致数据传输到内网后被丢弃。)

此命令此时简单的做一下本地/目的地址间是否正确的测试,而且是本地—>目的的单向测试,即目的客户端是否向本地服务器发起了连接是看不出来的(需要在客户端运行的主机进行测试。)如果需要更为详细的数据发送问题的测试,可以运行tcpdump命令进行抓包查看。推荐博客:http://blog.chinaunix.net/uid-11140746-id-2903933.html

最近手残,搞了个公众号,主要闲暇时间随便聊一些程序圈的一些事,也会分享一些技术面试的资料,感兴趣的可以关注一波。关注后,后台发送 面试指南,可以获取2021最新JAVA面试总结,基本看完后,JAVA八股文这些应该不在话下了。

netstat命令输出结果分析「建议收藏」

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163308.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月23日 下午9:00
下一篇 2022年7月23日 下午9:16


相关推荐

  • Linux 日志服务器

    Linux 日志服务器

    2021年8月19日
    67
  • 使用决策树实现分类

    使用决策树实现分类决策树是一种树形结构 为人们提供决策依据 决策树可以用来回答 yes 和 no 问题 它通过树形结构将各种情况组合都表示出来 每个分支表示一次选择 选择 yes 还是 no 直到所有选择都进行完毕 最终给出正确答案

    2026年2月9日
    5
  • Java中Calendar类的常用方法

    Java中Calendar类的常用方法Calendar类常用方法的记录:获取时间//使用默认时区和语言环境获得一个日历Calendarcal=Calendar.getInstance();//赋值时年月日时分秒常用的6个值,注意月份下标从0开始,所以取月份要+1System.out.println(“年:”+cal.get(Calendar.YEAR));System.ou

    2022年6月12日
    36
  • discuz php接口文档,Discuz二次开发技术文档[通俗易懂]

    discuz php接口文档,Discuz二次开发技术文档[通俗易懂]点评:Discuz二次开发基本知识总结,需要对discuz进行二次开发的朋友可以参考下。一)Discuz!的文件系统目录注:想搞DZ开发,就得弄懂DZ中每个文件的功能。a)Admin:后台管理功能模块b)Api:DZ系统与其它系统之间接口程序c)Archiver:DZ中,用以搜索引擎优化的无图版d)Attachments:DZ中,用户上传附件的存放目录e)Customavatars…

    2022年5月12日
    41
  • 动手强化学习(六):DQN 算法

    动手强化学习(六):DQN 算法动手强化学习 五 时序差分算法 TemporalDiff 1 简介 2 CartPole 环境 3 DQN1 简介 在前面讲解讲解的 Q learning 算法中 我们以矩阵的方式建立了一张存储每个状态下所有动作 Q 值的表格 表格中的每一个动作价值 Q s a Q s a Q s a 表示在状态 sss 下选择动作 aaa 然后继续遵循某一策略预期能够得到的期望回报 然而 这种用表格存储动作价值的做法只在环境的状态和动作都是离散的 并且空间都比较小的情况下适用 我们之

    2026年3月16日
    1
  • 绿色自适应网址发布页html源码

    绿色自适应网址发布页html源码绿色自适应网址发布页源码如图所示 十分简洁 大气好看 自适应手机 pc 复制下面的代码就可以使用了 DOCTYPE tml html head metacharset utf 8 metaname Author content Noah metaname Keywords content metaname Keywords content metaname Author content Noah metacharset utf 8 head html

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号