插件窝 干货文章 linux 怎么查看远程服务器端口是否开放

linux 怎么查看远程服务器端口是否开放

端口 telnet example 示例    来源:    2025-05-01

在 Linux 中查看远程服务器端口是否开放,有以下几种常用方法:


1. telnet 命令

telnet <远程IP或域名> <端口号>
  • 示例:telnet example.com 80
  • 结果:
    • 连接成功 → 端口开放
    • Connection refused → 端口关闭或拒绝访问
  • 注意:若未安装 telnet,需先执行 yum install telnet(CentOS)或 apt install telnet(Ubuntu)。

2. nc(netcat)命令

nc -zv <远程IP或域名> <端口号>
  • 示例:nc -zv example.com 22
  • 参数:
    • -z:只检测端口,不发送数据。
    • -v:显示详细信息。
  • 结果:
    • succeeded → 端口开放
    • 无响应或报错 → 端口关闭或网络不通。

3. nmap 工具

nmap -p <端口号> <远程IP或域名>
  • 示例:nmap -p 443 example.com
  • 结果:显示端口状态为 open/closed/filtered。
  • 注意:需安装 nmap(yum install nmap 或 apt install nmap)。

4. curl 测试 HTTP/HTTPS 端口

curl -I http://<域名>:<端口>
curl -I https://<域名>:<端口>
  • 示例:curl -I http://example.com:80
  • 结果:
    • 返回 HTTP 头 → 端口开放
    • Connection refused → 端口关闭。

5. ssh 测试 SSH 端口(默认22)

ssh -v -p <端口号> user@<远程IP或域名>
  • 示例:ssh -v -p 22 root@example.com
  • 结果:debug1: Connection established 表示端口开放。

6. ping + 端口扫描工具

如果目标禁用了 ICMP(ping),可结合 ping 和端口工具:

ping -c 4 example.com  # 先测试网络连通性
nc -zv example.com 80  # 再测端口

常见问题排查

  1. 连接超时:
    • 检查防火墙(iptables/firewalld)是否放行端口。
    • 确认远程服务器是否监听该端口(netstat -tuln 或 ss -tuln)。
  2. 命令不存在:
    • 安装对应工具(如 telnet、nc、nmap)。

总结推荐

  • 快速测试:telnet 或 nc。
  • 详细扫描:nmap。
  • HTTP服务:curl。

根据实际需求选择合适的方法即可。