发布于8月21日8月21日 你是不是偶尔也遇到过这种情况:想检测某个服务端口(比如打印机 9100、数据库 3306)是不是通了,结果发现—— telnet 没装,nc(netcat)也没有,如果暂时没有互联网不方便下载这些工具,连最基本的端口探测都干不了?不会的!今天我们一起来练习几招——无 telnet、无 nc 也能测试端口的实用方法,全部都不依赖第三方工具!场景复现:连不上打印机、数据库、Web服务……比如你有一个设备 IP 是 192.168.1.123,你想确认它的端口通不通:端口说明9100HP 打印机的原始 RAW 打印端口3306MySQL 数据库端口80 / 443Web 管理界面第一次尝试:telnet 192.168.1.123 9100系统告诉你:command not found: telnet换个办法试试:nc -zv 192.168.1.123 9100又提示:command not found: nc这时候不要慌,换招!方法一:curl 测试 Web 服务(80/443)适用于 Web 服务端口检测:curl -I http://192.168.1.123:80如果端口通,并且服务正常,curl 会返回 HTTP 响应头;否则会提示超时或拒绝连接。方法二:bash 的 /dev/tcp 魔法如果你用的是 bash(而不是默认的 zsh),可以直接用这种方式测试任意端口是否开放:echo > /dev/tcp/192.168.1.123/9100 && echo "Port Open" || echo "Port Closed"📌 Tips• macOS 默认是 zsh,可以先切换:bash• 然后再执行上述命令。方法三:用 Python 一行搞定!macOS 和多数 Linux 都自带 Python,可以直接检测端口是否开放:python3 -c "import socket; s=socket.socket(); s.settimeout(3); print('Open' if s.connect_ex(('192.168.1.123', 9100))==0 else 'Closed')"快速、精准、不依赖任何外部命令!方法四:网页访问法(适用于支持管理页面的设备)比如访问:http://192.168.1.123如果能打开网页,说明:• IP 地址没错• HTTP(80)端口是开放的• 网络没有拦截适用于打印机、NAS、摄像头、路由器等设备。总结一下即使 telnet 和 nc 不在身边,我们依然有不少“原生工具”可以用:方法适合场景是否推荐curl检测 Web 服务端口✅ 推荐/dev/tcp任意端口(bash 限定)✅ 推荐Python socket任意端口、通用方式✅ 强烈推荐网页访问有 Web 管理界面的设备✅ 简单实用📌 特定的服务还可以用对应的客户端命令进行测试,比如 22 端口对应的 SSH 服务,可以通过ssh 123.45.67.89 来尝试连接,根据返回的结果基本可以判断该端口是否正常开放! 日常排查中,最怕的不是工具不在,而是不会“就地取材”。学会这几招让我们在没有安装任何工具的情况下,依然轻松判断端口通不通。快快收藏起来,下次再碰到“端口连不上”的问题,就知道从哪下手了!
参与讨论
你可以现在发布并稍后注册. 如果你有帐户,现在就登录发布帖子.