HoRain云--使用ICMP协议来判断UDP端口的存活状态

🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
|
专栏名称 |
专栏介绍 |
|
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
|
|
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
|
|
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
|
|
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
|
|
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
|
|
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录

让我来给你讲讲正确的做法:
🌟 为什么会有这个误解?
很多人看到"ICMP"和"UDP"都和网络有关,就以为ICMP能直接检测UDP端口。但实际上,ICMP是网络层的"交通警察",而UDP是传输层的"快递员",它们的工作层次不一样。
✅ 正确做法:UDP端口扫描
要判断UDP端口是否存活,你需要使用UDP端口扫描技术,比如:
-
Nmap工具(最常用):
nmap -sU -p 53 192.168.1.100这会发送UDP数据包到53端口(DNS),然后根据响应判断端口状态。
-
Netcat(nc):
nc -uzv 192.168.1.100 53
📌 为什么UDP端口扫描这么"难"?
因为UDP是"无连接"的,就像你往信箱里扔个纸条,对方可能不回你。所以:
- 如果端口开放:可能收到响应(但不一定)
- 如果端口关闭:通常会收到"端口不可达"的ICMP报文(Type=3, Code=3)
- 如果被防火墙过滤:可能什么也收不到
💡 一个实用技巧
从知识库中看到,当收到ICMP Type=3, Code=3("端口不可达")时,可以确定目标主机是存活的,只是该端口没开放。这其实是我们判断UDP端口状态的关键依据!
🌈 举个生活化的例子
想象你在找一个朋友(UDP端口):
- 你发个短信(UDP包)给他
- 如果他在线(端口开放):可能会回你消息
- 如果他不在家(端口关闭):手机会提示"无法送达"(ICMP端口不可达)
- 如果他关机了(主机不在线):短信根本发不出去
所以啊,ICMP不是"直接"判断UDP端口,而是通过UDP端口扫描后收到的ICMP响应来间接判断。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
更多推荐


所有评论(0)