综艺
开放端口扫描(什么是端口扫描,如何查看服务器哪些端口开放的?)
什么是端口扫描,如何查看服务器哪些端口开放的?nerror="javascript:errorimg.call(this);">

什么是端口扫描,如何查看服务器哪些端口开放的?

端口扫描是网络安全和管理中的一种常见技术,它用于检测目标服务器或设备上有哪些端口处于开放状态。了解服务器开放的端口可以帮助管理员检测潜在的安全风险,同时也可以用于排查服务异常问题。

以下是关于端口扫描的详细介绍,以及如何查看服务器开放的端口。


1. 什么是端口扫描?

1.1 定义

  • 端口扫描是通过向目标服务器的多个端口发送请求,检查哪些端口处于开放(Listening)状态的过程。
  • 一个端口的状态通常有以下三种: 开放(Open):目标端口正在监听,可能有服务正在运行。 关闭(Closed):目标端口未监听任何服务。 过滤(Filtered):端口被防火墙或其他安全设备屏蔽,无法确定状态。

1.2 端口的作用

  • 端口用于标识服务器上的具体服务或应用程序。
  • 常见的端口和服务: 80:HTTP(网站服务)。 443:HTTPS(加密网站服务)。 22:SSH(远程登录)。 3306:MySQL 数据库。 3389:Windows 远程桌面。

1.3 端口扫描的用途

  • 网络管理:检查服务器上运行的服务。
  • 安全审计:识别未授权或不必要的开放端口,防止攻击。
  • 故障排查:确认服务是否正常监听对应端口。

2. 如何查看服务器开放的端口?

以下是几种常用方法,可以在服务器上查看开放的端口。


2.1 使用 netstat 查看开放的端口

netstat 是一个常用工具,可以显示网络连接、监听的端口等信息。

(1) 查看监听的端口

运行以下命令:

bash

netstat -tuln
  • 参数说明
    • -t:显示 TCP 端口。
    • -u:显示 UDP 端口。
    • -l:只显示监听状态的端口。
    • -n:显示数字格式的 IP 地址和端口。
  • 输出示例
  • bash
  • Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:123 0.0.0.0:*
    • 0.0.0.0:22 表示 SSH 服务正在监听 22 端口。
    • 0.0.0.0:80 表示 HTTP 服务正在监听 80 端口。
    • 0.0.0.0:123 表示 NTP 服务正在监听 123 端口。

2.2 使用 ss 命令

ss 是 netstat 的替代工具,速度更快,功能更强大。

(1) 查看监听的端口

运行以下命令:

bash

ss -tuln
  • 参数说明
    • -t:显示 TCP 端口。
    • -u:显示 UDP 端口。
    • -l:只显示监听状态的端口。
    • -n:显示数字格式的 IP 地址和端口。
  • 输出示例
  • bash
  • Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:123 0.0.0.0:*

2.3 使用 lsof 查看端口

lsof 是一个文件和端口管理工具,可以查看哪些程序正在使用端口。

(1) 查看所有监听端口

运行以下命令:

bash

sudo lsof -i -n -P
  • 参数说明
    • -i:显示网络相关的文件(包括端口)。
    • -n:不将 IP 地址解析为主机名。
    • -P:不将端口号解析为服务名。
  • 输出示例
  • bash
  • COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN) nginx 5678 root 6u IPv4 67890 0t0 TCP *:80 (LISTEN)

2.4 使用 nmap 进行端口扫描

nmap 是一款功能强大的网络扫描工具,可以扫描本地或远程服务器的开放端口。

(1) 安装 nmap

在 CentOS 上:

bash

sudo yum install nmap -y

在 Ubuntu 上:

bash

sudo apt install nmap -y

(2) 扫描本地服务器

运行以下命令扫描本机所有开放端口:

bash

nmap localhost

(3) 扫描特定端口范围

扫描 1 到 1000 端口:

bash

nmap -p 1-1000 localhost

(4) 输出示例

bash

Starting Nmap 7.91 ( https://nmap.org ) at 2025-09-19 15:30 CSTNmap scan report for localhost (127.0.0.1)Host is up (0.00012s latency).Not shown: 998 closed portsPORT   STATE SERVICE22/tcp open  ssh80/tcp open  http
  • 表示 22 端口(SSH)和 80 端口(HTTP)处于开放状态。

2.5 使用 firewalld 查看允许的端口

如果系统启用了防火墙,可以通过以下命令查看防火墙允许的端口。

(1) 查看开放端口

bash

sudo firewall-cmd --list-ports

(2) 输出示例

bash

80/tcp 443/tcp 22/tcp
  • 表示 80、443 和 22 端口被防火墙放行。

3. 如何应对未授权的端口开放?

3.1 检查必要性

  • 确认是否有不必要的端口开放,关闭无用端口以减少被攻击的可能性。

3.2 关闭不必要的端口

(1) 使用 firewalld 关闭端口

  • 关闭 8080 端口:
  • bash
  • sudo firewall-cmd --remove-port=8080/tcp --permanent sudo firewall-cmd --reload

(2) 停止对应服务

  • 找到对应的服务并停止:
  • bash
  • sudo systemctl stop <服务名> sudo systemctl disable <服务名>

3.3 限制访问

  • 使用防火墙规则限制特定 IP 的访问:
  • bash
  • sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port=22 protocol=tcp accept' --permanent sudo firewall-cmd --reload

4. 总结

  1. 什么是端口扫描?
  2. 端口扫描用于检测目标服务器上哪些端口处于开放状态,通常用于网络管理和安全审计。
  3. 如何查看服务器开放的端口?
  4. 使用工具如 netstat、ss、lsof 查看监听端口。
  5. 使用 nmap 扫描本地或远程服务器的端口。
  6. 使用防火墙工具(如 firewalld)查看允许的端口。
  7. 如何处理未授权的端口?
  8. 关闭不必要的端口。
  9. 停止对应服务或限制访问范围。

通过以上方法,可以有效管理和保护服务器的端口,提升安全性,防止潜在的攻击。


顶一下()     踩一下()

热门推荐

发表评论
0评