栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux网络通信调试命令

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux网络通信调试命令

1 telnet命令

telnet可以检测指定的IP和端口号的监听服务是否存在。

$ telnet 127.0.0.1 6000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

监听本地回环和6000端口是否开启了监听。

如果不指定端口号,默认是23

使用telnet命令还可以正常和服务器进行交互,比如163邮箱

使用的是stmp协议端口25,网上很多教程,可以通过stmp协议实现发送邮件,不过多赘述。

2 netstat命令
  1. -a 表示列出所有选项
  2. -t 仅显示tcp
  3. -u 仅显示udp
  4. -n 不显示别名
  5. -l 列出处于监听状态的服务
  6. -r 显示路由
  7. -e 显示拓展,uid
  8. -s 按各个协议统计
  9. -c 间隔时间去执行netstat

跟windows的任务管理器差不多

$ netstat -at
3 lsof 命令

列出已经打开的文件描述符

$lsof -i |grep myserver
$lsof -i -p 1723

用grep和|过滤一下其他程序

也可以筛选指定进程号

4 nc命令

nc可以模拟一个客户端和服务器端

模拟服务器端需要加-l选项

$ nc -v -l 0.0.0.0 6000 
[chen@iZbp1ag455gf8liyw1axvfZ ~]$ nc -v -l 0.0.0.0 6000
Listening on 0.0.0.0 6000
Connection received on localhost 40594

客户端连接

chen@iZbp1ag455gf8liyw1axvfZ ~]$ nc -v -l 0.0.0.0 6000
Listening on 0.0.0.0 6000
Connection received on localhost 40598
哈哈哈哈哈哈哈哈哈

按ctrl+Backspace才能回退

nc命令用n做结尾,如果加-C参数就是用rn结尾

5 curl命令

类似于Posman工具

[chen@iZbp1ag455gf8liyw1axvfZ ~]$ curl www.baidu.com

 

百度一下,你就知道       
新闻 hao123 地图 视频 贴吧 更多产品

关于百度 about Baidu

©2017 Baidu 使用百度前必读  意见反馈 京ICP证030173号 

[chen@iZbp1ag455gf8liyw1axvfZ ~]$

-o选项,将内容保存到本地

HTTP请求常用的POST和GET,默认是GET,加-X参数是POST请求

如果采用POST请求还需要用-d选项指定POST数据内容

[root@iZbp1ag455gf8liyw1axvfZ cpp]# curl -X POST -d 'somepostdata' 'www.somesite.com/api/vi/chat'
www.somesite.com

www.somesite.com

Coming soon.

[root@iZbp1ag455gf8liyw1axvfZ cpp]#

-i选项可以显示HTTP协议应答的头部信息

-I选项只显示应答头部信息

[chen@iZbp1ag455gf8liyw1axvfZ ~]$ curl -I http://www.baidu.com
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 277
Content-Type: text/html
Date: Tue, 09 Nov 2021 14:25:53 GMT
Etag: "575e1f60-115"
Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
6 tcpdump命令

顾名思义,tcp的抓包工具

-w将抓取的包信息存入文件中

[root@iZbp1ag455gf8liyw1axvfZ cpp]# tcpdump -i any -w filename
dropped privs to tcpdump
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes

any抓取所有网卡的包

ens33抓取ens33网卡的包

[root@iZbp1ag455gf8liyw1axvfZ cpp]# tcpdump -i any 'port 8888'

抓取tcp::8888端口的数据

[root@iZbp1ag455gf8liyw1axvfZ cpp]# tcpdump -i any 'tcp src port 8888'

抓取tcp::8888源端口的数据

[root@iZbp1ag455gf8liyw1axvfZ cpp]# tcpdump -i any 'tcp src port 8888 or udp dst port 9999'

抓取源端口是888的且目标端口是9999的udp包

使用nc命令模拟服务器和客户端通信

server

[chen@iZbp1ag455gf8liyw1axvfZ ~]$ nc -v -l 127.0.0.1 12345
Listening on localhost 12345
Connection received on localhost 57360

client

[chen@iZbp1ag455gf8liyw1axvfZ ~]$ nc -v 127.0.0.1 12345
Connection to 127.0.0.1 12345 port [tcp/italk] succeeded!

抓包

[root@iZbp1ag455gf8liyw1axvfZ chen]# tcpdump -i any 'port 12345' -XX -nn -vv

-XX选项以ASCLL码值实现和十六进制输出数据包内容

-vv选项显示详细的抓包数据

可以看见确认序列号是递增的

也与《TCP/IP网络编程》这本书的图一致对应

如果三次握手已经建立成功了

那么在抓包工具中会显示

ack=1,seq=1

这是因为使用的是相对序列号,如果-S选项,就会显示实际序列

如果连接到一个没有开启监听的端口

客户端发起SYN请求,由服务器返回一个ack+RST,这个应答会导致客户端连接失败。

最后,如果用防火墙工具阻挡某些IP的连接,或者一个IP很遥远,网络繁忙。

TCP会间隔1,2,4,8,16重复六次,连接超时退出。

这是因为使用的是相对序列号,如果-S选项,就会显示实际序列号

如果连接到一个没有开启监听的端口

[外链图片转存中…(img-dyOmcFX1-1636469725544)]

客户端发起SYN请求,由服务器返回一个ack+RST,这个应答会导致客户端连接失败。

最后,如果用防火墙工具阻挡某些IP的连接,或者一个IP很遥远,网络繁忙。

TCP会间隔1,2,4,8,16重复六次,连接超时退出。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/456974.html

Linux相关栏目本月热门文章

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号