如何确定远程服务器上的端口是否打开以及服务是否正在侦听?

use*_*428 0 linux firewall port-scanning

我想检查在某些远程服务器上是否打开或关闭了一组端口。我对这个主题进行了各种讨论,大多数人建议使用nmap,nctelnet <server-ip-address> <port-no>。我如何区分这三种情况:

  • 该端口在防火墙上关闭
  • 端口已打开但没有服务在该端口上侦听
  • 端口是开放的,一些服务也在监听它

小智 7

好吧,如果您使用 telnet 命令检查端口连接,它将显示

  • 如果端口被防火墙阻止,则“连接超时”
  • 如果服务关闭/未侦听指定端口,但端口可访问,则“连接被拒绝”。
  • “connected to server_ip”如果连接成功


mid*_*n k 5

有用的工具:

  • 1.远程登录

  • 2.数控

  • 3.nmap

场景:用于检查远程系统 tcp 80 端口状态

用法 :

telnet myserver.com 80 
nc -v myserver.com 80
nmap myserver.com 80 
Run Code Online (Sandbox Code Playgroud)

响应分析:

如果您超时或拒绝:端口未打开

假设如果您收到“连接被拒绝”:则端口已打开但进程未在侦听

如果连接成功:端口已打开且进程正在侦听

解决方案:

启动/重启监听进程(如果连接被拒绝)

要求网络团队监控连接我们可以确认它是否被中间网络防火墙或服务器防火墙/iptables阻止

笔记 :

  • 假设防火墙配置为拒绝数据包而不是丢弃,那么您将收到“连接被拒绝”错误,因此在这种情况下,我们无法确保进程是否正在侦听。

要检查 udp 端口​​(如 ntp),您可以使用下面的 nc 选项

nc -uzv yourserver.com 123