使用 telnet
命令
原理:通过TCP协议模拟客户端连接目标端口。
安装(如未预装):
sudo apt install telnet # Debian/Ubuntu sudo yum install telnet # CentOS/RHEL
命令格式:
telnet <目标IP> <端口号>
示例:
telnet 192.168.1.100 80
结果解读:
- 连接成功 → 显示
Connected to 192.168.1.100
(按Ctrl+]
退出)。 - 连接失败 → 显示
Connection refused
(端口关闭)或超时(防火墙拦截)。
使用 nc
(netcat) 命令
原理:多功能网络工具,支持TCP/UDP端口测试。
安装:
sudo apt install netcat # Debian/Ubuntu sudo yum install nc # CentOS/RHEL
命令格式:
nc -zv <目标IP> <端口号> # -z: 扫描模式, -v: 详细输出
示例:
nc -zv example.com 443
结果解读:
- 成功 →
Connection to example.com 443 port [tcp/https] succeeded!
- 失败 →
Connection timed out
或Connection refused
。
使用 nmap
命令
原理:专业端口扫描工具,可检测端口状态及服务类型。
安装:
sudo apt install nmap # Debian/Ubuntu sudo yum install nmap # CentOS/RHEL
命令格式:
nmap -p <端口号> <目标IP>
示例:
nmap -p 22 192.168.1.100
结果解读:
- 开放 →
STATE: open
- 关闭 →
STATE: closed
- 过滤 →
STATE: filtered
(被防火墙拦截)。
使用 curl
测试HTTP/HTTPS端口
原理:通过HTTP协议检测Web服务端口。
命令格式:
curl -I http://<目标IP>:<端口> # -I: 仅显示响应头 curl -I https://<目标IP>:<端口> --insecure # 忽略SSL证书验证
示例:
curl -I http://example.com:8080
结果解读:
- 成功 → 返回HTTP状态码(如
200 OK
)。 - 失败 →
Connection refused
或超时。
使用Bash内置 /dev/tcp
原理:无需额外工具,利用Bash的虚拟设备文件。
命令格式:
timeout 3 bash -c "echo > /dev/tcp/<目标IP>/<端口>" && echo "Open" || echo "Closed"
示例:
timeout 3 bash -c "echo > /dev/tcp/192.168.1.100/3306" && echo "Open" || echo "Closed"
结果解读:
- 输出
Open
表示端口可达,Closed
表示不可达。
使用 ssh
测试SSH端口
原理:专用于检测SSH服务(默认22端口)。
命令格式:
ssh -v -p <端口> user@<目标IP> # -v: 详细模式
示例:
ssh -v -p 2222 user@192.168.1.100
结果解读:
- 成功 → 显示密钥交换信息。
- 失败 →
Connection refused
或超时。
总结与建议
场景 | 推荐工具 | 优势 |
---|---|---|
快速TCP端口检查 | telnet 或 nc |
轻量级、结果直观 |
批量扫描或服务探测 | nmap |
功能全面、支持协议识别 |
HTTP/HTTPS服务检测 | curl |
模拟真实请求、验证应用层响应 |
无外部工具的简易检查 | Bash /dev/tcp |
无需安装、脚本友好 |
SSH服务专项检测 | ssh -v |
直接验证登录流程 |
注意:
- 连接失败时,需排查:
- 目标服务是否运行(
systemctl status <服务名>
)。- 防火墙规则(
sudo ufw status
或iptables -L
)。- 云服务器安全组策略。
- 部分工具需
root
权限才能扫描特权端口(1-1024)。
引用说明:
telnet
和nc
用法参考自 GNU Netcat 文档。nmap
参数规范依据 Nmap 官方手册。- Bash
/dev/tcp
实现原理详见 Bash 参考手册 “Redirection” 章节。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7882.html