查看服务器开了哪些端口命令

问答查看服务器开了哪些端口命令
王利头 管理员 asked 2 年 ago
3 个回答
Mark Owen 管理员 answered 2 年 ago

在服务器运维中,掌握如何查看服务器开启的端口至关重要。无论是为了安全考虑,还是为了进行端口转发或故障排除,了解哪些端口正在监听网络连接都是必不可少的。

以下是一些常用的命令,可用于在不同操作系统上查看服务器开启的端口:

Linux

  • netstat -tulpn:此命令显示每个端口上正在监听的进程以及该端口的状态。选项“-t”和“-u”指定只显示TCP和UDP套接字,“-l”指定只显示监听的端口,“-p”指定显示进程名称,“-n”指定使用数字地址而不是主机名。

bash
netstat -tulpn

  • ss -ltun:此命令是netstat的更高级版本,提供有关网络连接和进程的更详细的信息。选项“-l”指定只显示监听的端口,“-t”和“-u”指定只显示TCP和UDP套接字,“-n”指定使用数字地址而不是主机名。

bash
ss -ltun

  • lsof -i:此命令列出所有打开的文件描述符,包括网络套接字。选项“-i”指定只显示网络连接。

bash
lsof -i

Windows

  • netstat -aon:此命令显示网络连接和开放端口的列表。选项“-a”指定显示所有连接和端口,“-o”指定显示拥有每个连接或端口的进程的PID,“-n”指定使用数字地址而不是主机名。

bash
netstat -aon

  • tasklist /svc:此命令列出所有正在运行的服务,包括它们的PID和端口号。

bash
tasklist /svc

  • Powershell Get-NetTCPConnection:此命令返回TCP连接和端口的列表。

powershell
Get-NetTCPConnection

MacOS

  • lsof -iTCP -sTCP:LISTEN:此命令列出所有TCP端口,并指定它们处于侦听状态。

bash
lsof -iTCP -sTCP:LISTEN

  • nc -zv localhost :此命令可以检查特定的端口是否正在侦听。如果端口正在侦听,它将返回“成功”。

bash
nc -zv localhost 80

  • netstat -anp tcp:此命令显示所有TCP连接和端口的列表。选项“-a”指定显示所有连接和端口,“-n”指定使用数字地址而不是主机名,“-p”指定显示进程名称。

bash
netstat -anp tcp

除了这些命令之外,还有一些第三方工具可以帮助您查看服务器开启的端口,例如:

  • nmap:一个强大的端口扫描工具,可以扫描主机并检测开放端口。
  • Wireshark:一个网络数据包分析工具,可以捕获和分析网络流量,确定开放端口。
  • Angry IP Scanner:一个多平台的IP地址和端口扫描工具,可以快速发现网络上的开放端口。

提示:

  • 查看服务器开启的端口对于安全性至关重要,因为它可以帮助您识别未经授权的连接和潜在的安全漏洞。
  • 定期检查服务器开启的端口并关闭不需要的端口非常重要,以减少攻击面。
  • 使用防火墙或入侵检测系统来监控和阻止未经授权的端口连接。
  • 考虑使用端口转发或映射将外部端口映射到内部服务器端口,以提高安全性。
seoer788 管理员 answered 2 年 ago

各位朋友,大家好。今天和大家讨论一个经常遇到的问题,那就是查看服务器开了哪些端口。这是一个看似简单的问题,但其实背后涉及到不少技术细节。今天就来给大家好好聊聊这个问题。

首先,我们了解一下端口的概念。端口是一个逻辑上的概念,它代表了网络通信中的一个端点。通俗点说,端口就好比是服务器上的一个窗口,通过这个窗口,不同的应用程序可以对外界进行通信。

知道了端口的概念,我们就可以开始介绍查看服务器开了哪些端口的命令了。在 Linux 系统中,最常用的命令是 netstat。这个命令可以显示网络连接、端口等信息。我们可以在命令行中输入如下命令:


netstat -anp | grep LISTEN

这个命令会列出所有正在监听端口的进程。其中,-a选项表示显示所有连接,-n选项表示显示数字地址,-p选项表示显示进程信息,LISTEN表示只显示监听状态的端口。

例如,如果我们执行这个命令,可能会得到以下输出


tcp 0 0 192.168.1.100:22 0.0.0.0:* LISTEN 2115/sshd
tcp6 0 0 :::22 :::* LISTEN 2115/sshd
tcp 0 0 192.168.1.100:80 0.0.0.0:* LISTEN 2222/nginx
tcp6 0 0 :::80 :::* LISTEN 2222/nginx

从输出中我们可以看到,这台服务器监听了两个端口,分别是 22 端口和 80 端口。其中 22 端口是 SSH 服务的端口,80 端口是 HTTP 服务的端口。

除了 netstat 命令,我们还可以使用其他一些命令来查看端口信息。例如,lsof 命令可以显示所有打开的文件和端口,包括正在监听的端口。我们可以输入如下命令:


lsof -i -P -n | grep LISTEN

这个命令会列出所有正在监听端口的进程。其中,-i选项表示只显示网络连接,-P选项表示显示进程 ID,-n选项表示显示数字地址。

例如,如果我们执行这个命令,可能会得到以下输出:


COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 2115 root 6u IPv4 0x7f3c3492f080 0t0 TCP *:ssh (LISTEN)
nginx 2222 www 7u IPv4 0x7f3c3492b840 0t0 TCP *:http (LISTEN)

从输出中我们可以看到,这台服务器监听了两个端口,分别是 22 端口和 80 端口。其中 22 端口是 SSH 服务的端口,80 端口是 HTTP 服务的端口。

以上就是查看服务器开了哪些端口的常用命令。大家可以根据自己的需要选择使用。希望这些信息对大家有所帮助。

ismydata 管理员 answered 2 年 ago

服务器开放哪些端口对保障系统安全至关重要,我们可以通过一系列命令来查看服务器开放端口的情况。

Linux 系统

1. netstat 命令

netstat 命令可以显示网络连接、端口和网络统计信息。使用以下命令:


netstat -tulpn

输出结果中,”-tulpn” 选项表示:

  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。
  • -l:仅显示处于监听状态的连接(即开放的端口)。
  • -p:显示进程信息。
  • -n:不解析 IP 地址。

2. ss 命令

ss 命令是 netstat 的增强版,提供了更丰富的网络连接信息。使用以下命令:


ss -tulpn

3. lsof 命令

lsof 命令可以列出所有打开的文件和网络连接。使用以下命令:


lsof -i

Windows 系统

1. netstat 命令

netstat 命令在 Windows 系统中也有类似的功能。使用以下命令:


netstat -ano

输出结果中,”-ano” 选项表示:

  • -a:显示所有连接。
  • -n:不解析 IP 地址。
  • -o:显示进程 ID。

2. tasklist 命令

tasklist 命令可以列出正在运行的进程。我们可以结合 netstat 命令来查看进程开放的端口。使用以下命令:


tasklist /svc

输出结果中,”/svc” 选项表示显示带有网络服务名称的进程。

其他命令

1. nmap 命令

nmap 是一款强大的网络扫描工具,可以扫描服务器上开放的端口。使用以下命令:


nmap <服务器 IP 地址>

2. OpenVAS 命令

OpenVAS 是一款开源漏洞扫描工具,可以检测服务器上的安全漏洞,包括开放的端口。使用以下命令:


openvas-scanner -v <服务器 IP 地址>

总结

通过使用上述命令,我们可以全面了解服务器上开放的端口信息。了解开放端口对于保障服务器安全非常重要,我们可以据此采取措施关闭不必要的端口,防止网络攻击者利用这些端口入侵服务器。

公众号