在 Linux 系统中,ping
命令只能用于测试网络连通性(基于 ICMP 协议),不能直接用于测试端口。若需要测试远程主机的特定端口是否开放,可以使用以下替代工具:
telnet
命令(简单测试 TCP 端口)telnet <IP或域名> <端口号>
示例:测试 example.com
的 80 端口
telnet example.com 80
结果说明:
- 连接成功 → 端口开放。
- 连接失败(如超时或拒绝) → 端口不可达或防火墙拦截。
注意:若系统未安装 telnet,需先安装:
- Ubuntu/Debian:sudo apt install telnet
- CentOS/RHEL:sudo yum install telnet
nc
(netcat) 命令(支持 TCP/UDP)nc -zv <IP或域名> <端口号>
选项说明:
- -z
:扫描模式(不发送数据)。
- -v
:显示详细输出。
- -u
:测试 UDP 端口(需加此参数)。
示例:
- 测试 TCP 端口 443:
bash
nc -zv example.com 443
- 测试 UDP 端口 53:
bash
nc -zuv example.com 53
安装 netcat:
- Ubuntu/Debian:sudo apt install netcat
- CentOS/RHEL:sudo yum install nc
nmap
命令(高级端口扫描)nmap -p <端口号> <IP或域名>
示例:扫描 example.com
的 22 端口
nmap -p 22 example.com
优势:支持批量端口扫描、协议检测等高级功能。
安装 nmap:
- Ubuntu/Debian:sudo apt install nmap
- CentOS/RHEL:sudo yum install nmap
curl
或 wget
(测试 HTTP/HTTPS 服务)curl -I http://example.com:80
wget --spider http://example.com:80
适用场景:快速检查 Web 服务是否响应。
工具 | 协议支持 | 常用场景 | 安装命令 |
---|---|---|---|
telnet |
TCP | 简单端口测试 | sudo apt/yum install telnet |
nc |
TCP/UDP | 灵活测试 | sudo apt/yum install netcat |
nmap |
TCP/UDP | 专业扫描 | sudo apt/yum install nmap |
curl |
HTTP(S) | Web 服务检查 | 通常预装 |
选择工具时,根据协议类型(TCP/UDP)和需求(简单测试/详细扫描)决定即可。