linux系统中如何验证网络端口通不通
前言
我们在linux系统网络调试中经常会遇到需要测试验证对应的端口是否正常的场景,接下来讲解一下常用的方法。
相关命令详解
telnet命令
具体的用法
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-v192.168.70.1 20
nc: connect to 192.168.70.1 port 20(tcp) failed: Connection refused
ggd@ubuntu:~$
端口开启的时候:
ggd@ubuntu:~$ nc-v192.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:没有任何连接状态
版权归原作者 嗨 hello world 所有, 如有侵权,请联系我们删除。