0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何验证Linux系统中网络端口通不通

jf_78858299 来源:CSDN 作者:嗨 hello world 2023-05-12 10:28 次阅读

前言

我们在 linux 系统网络调试中经常会遇到需要测试验证对应的端口是否正常的场景, 接下来讲解一下常用的方法。

相关命令详解

具体的用法

telnet serverIP port

注意事项是 serverIP 和 port 之间需要用空格分开

具体的操作:

端口不通的时候:

ggd@ubuntu:~$ telnet 192.168.70.1 20
Trying 192.168.70.1...
telnet: Unable to connect to remote host: Connection refused
ggd@ubuntu:~$

端口开启的时候:

ggd@ubuntu:~$ telnet 192.168.70.1 8080
Trying 192.168.70.1...
Connected to 192.168.70.1.
Escape character is '^]'.

需要注意的是 Connected to 192.168.70.1. 表示对应的端口是通的

telnet 测试端口连通之后, 还有惊喜

图片

大家通过上图可以了解, 当通过 telnet 命令连通对应的端口之后,可以通过终端给对应的服务器发送消息, 另外同时也可以接收服务器发送的消息

如何退出 telnet 命令

大家在测试端口的时候如果对应的端口连通之后, 此时该命令处于阻塞状态, 不知道该怎么退出

第一种方法

先按 ctrl + ]
然后再按 ctrl + D

第二种方法

先按 ctrl + ]
然后再输入quit

nc 命令

具体用法

nc -v serverIP port

-v 即为将命令执行信息详细输出

端口不通的时候:

ggd@ubuntu:~$ nc -v 192.168.70.1 20
nc: connect to 192.168.70.1 port 20 (tcp) failed: Connection refused
ggd@ubuntu:~$

端口开启的时候:

ggd@ubuntu:~$ nc -v 192.168.70.1 8080
Connection to 192.168.70.1 8080 port [tcp/http-alt] succeeded!

nc 命令连通端口之后也是具备可以发送和接收信息的功能

图片

如何退出 nc 命令

ctrl + D 或者 ctrl + C 都可以结束

nc 命令很强大

nc 命令 号称 网络工具中的瑞士军刀 , 测试端口是否通断只是牛刀小试

nc 命令 还可以 实现 端口扫描、文件传输、在线聊天、验证 UDP 端口后续有机会再出文章详细讲解

命令很强大但是有可能受环境限制

为了适应环境, 功能简配

大家看到上面针对 telnet 或者 nc 命令都是在虚拟机上执行的,但是有的时候,排查问题的时候是在开发板上进行的, 正因为在开发板上, 所以我们移植的 busybox 版本有所不同, 因此 telnet 和 nc 支持的命令参数有可能不全或者执行对应的命令之后没有相关的信息可供参考

深处逆境, 总有办法绝处逢生

虽然 telnet 和 nc 功能简配, 但是最基础的功能还是有的, 我们此时可以再结合 netstat 来实现我们的端口测试

话不多说直接上操作

端口不通的时候

图片

telnet 和 nc 都有对应的提示信息, 有这样的提醒我们感到很欣慰,因为这个信息能直观的看到端口是不通的

端口正常的时候

图片图片

通过上图可以看出, 执行完命令之后处于阻塞状态, 但是我们此时不能下结论说这个端口没问题,我们需要用真实的证据来证明, 此时就用到了netstat -atpn 命令

图片

注意看红框和黄色箭头的标注, 我们需要在 Foreign Address 和 PID/Program name 找到我们测试的 IP、端口 和对应的进程名称, 然后查看 State 状态是否是 ESTABLISHED状态,如果是ESTABLISHED 表明端口正常如果不是该状态表示端口不通

简单介绍一下 netstat 命令

该命令是是一个监控 TCP/IP 网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息

netstat 命令参数介绍

-a: 显示所有连接的 Socket

-t: 展示 TCP 连接相关的信息

-p: 就是显示指定协议的信息

-n: 直接使用 IP, 不经过域名服务器 (优点: 程序响应快, 缺点: 只能看到 IP, 看不到域名信息)

netstat 状态介绍

简单介绍一下 state 几种常见的状态 ,描述的时候 TCP 在各个时期的状态

服务器的监听状态:

LISTENING: 监听来自客户端的 TCP 的连接请求, 只有 TCP 服务器的时候才会有这样的状态

TCP 连接时候的三次握手状态时候的

  • 1.SYN-SENT: 发送连接请求后等待匹配的连接请求,客户端发送连接请求
  • 2.SYN-RECEIVED: 再收到和发送一个连接请求后等待对方对连接请求的确认,对方发送回来的确认连接信息

TCP 连接成功的状态

ESTABLISHED: 一个完整的 TCP 连接建立成功

TCP 断开连接四次挥手时候的状态

  • 1.FIN-WAIT-1: 等待 TCP 连接中断请求
  • 2.FIN-WAIT-2:TCP 等待连接中断请求信息
  • 3.CLOSE-WAIT: 等待从本地用户发来的连接中断请求信息
  • 4.CLOSING: 等待 TCP 对连接中断的确认信息
  • 5.LAST-ACK: 等待原来的发向 TCP 的连接中断请求的确认信息
  • 6.TIME-WAIT: 等待一段时间用来确保 TCP 接收到连接中断请求的确认信息
  • 7.CLOSED: 没有任何连接状态
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206736
  • 端口
    +关注

    关注

    4

    文章

    820

    浏览量

    31588
  • 系统网络
    +关注

    关注

    0

    文章

    3

    浏览量

    14526
收藏 人收藏

    评论

    相关推荐

    Linux中检查端口的方法

    无论你的服务器是用的Linux还是桌面系统,了解系统开放的端口,和正在使用的端口,在各种情况下都会有所帮助。
    发表于 11-25 15:32 4069次阅读
    <b class='flag-5'>Linux</b>中检查<b class='flag-5'>端口</b>的方法

    帮帮忙,如何在linux系统验证端口是否打开?

    如何在linux系统验证端口是否打开?
    发表于 01-02 07:23

    dm8148网络uboot环境下能ping同,进入系统却ping不通??

    不知道什么原因造成的),在文件系统内配置与主机在同一网断,但是不能ping通主机; 我的疑问是uboot下使用ping 的时候显示active;并且tftp也能加载内核,为什么进入系统中网络
    发表于 06-23 05:33

    LInux系统网络配置过程

    Internet Protocol Address 网络进程地址 ipv4 internet protocol version 4 互联网协议的第四版。目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协
    发表于 07-12 07:49

    linux系统与uboot中网卡驱动的典型工作方式有哪几种

    linux系统中网卡驱动的典型工作方式有哪几种?uboot中网卡驱动的工作方式有哪几种?
    发表于 12-24 07:52

    使用RK3399PRO-linux-ubuntu但是ping不通网络怎么解决?

    使用RK3399PRO-linux-ubuntu但是ping不通网络怎么解决?
    发表于 03-04 07:12

    IDE如何检测新的网络端口

    无法访问串行端口,所以我想到也许我可以将草图上传到网络端口。不幸的是,当我在 Linux 容器中运行 IDE 时,它无法识别网络
    发表于 02-23 06:18

    Linux系统中网络I/O性能改进方法的研究

    选择并设计高效的网络I/O模型是改善服务器性能的关键。该文通过对Linux系统中几种网络I/O模型的分析和研究,提出3种改善网络I/O性能的
    发表于 04-09 09:41 28次下载

    k冗余多播网络中网络编码算法设计与分析

    k冗余多播网络中网络编码算法设计与分析:k 冗余多播网络采用网络编码可实现最大多播速率k 的信息传输。该文利用最大距离可分码已有成果,给出k 冗余多播
    发表于 10-29 12:58 19次下载

    如何查看linux端口

    有时我们需要知道系统中某个端口的占用情况,以便于解除程序对端口的占用,那么怎么查看Linux系统中的端口
    发表于 05-17 09:45 1702次阅读

    Linux开放端口和关闭端口的方法

    Linux开放端口和关闭端口的方法如下
    发表于 05-18 09:14 1w次阅读
    <b class='flag-5'>Linux</b>开放<b class='flag-5'>端口</b>和关闭<b class='flag-5'>端口</b>的方法

    linux系统该如何查看端口,具体方法的介绍

    ; 2、【n】网络IP地址的形式,显示当前建立的有效连接和端口; 3、【r】显示路由表信息; 4、【s】显示按协议的统计信息; 5、【v】显示当前有效的连接。 linux查看端口的命令
    的头像 发表于 07-02 17:46 7314次阅读

    如何修改Linux系统的SSH端口

    SSH 是一种网络协议,用于与 Linux 系统进行远程安全通信。默认情况下,SSH 服务使用端口 22。
    的头像 发表于 03-20 16:46 1835次阅读

    Linux或类Unix系统下如何确定端口是否正在使用?

    验证哪些端口正在服务器网络接口上侦听非常重要。您需要注意开放端口以检测入侵。除了入侵之外,出于故障排除的目的,可能有必要检查端口是否已被服务
    的头像 发表于 09-14 16:22 981次阅读
    在<b class='flag-5'>Linux</b>或类Unix<b class='flag-5'>系统</b>下如何确定<b class='flag-5'>端口</b>是否正在使用?

    linux查看端口占用情况

    细致地查看和处理端口占用情况。 引言: 在计算机网络中,端口是用于标识应用程序之间通信的逻辑地址。在Linux系统中,每个应用程序都会占用一
    的头像 发表于 11-17 09:39 923次阅读