如何才能知道远程服务器上的端口是否打开以及是否有服务正在监听该端口?

如何才能知道远程服务器上的端口是否打开以及是否有服务正在监听该端口?

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

  • 防火墙已关闭端口
  • 端口已开放,但没有服务正在监听该端口
  • 端口已开放并且某些服务正在监听

答案1

如果你使用 telnet 命令检查端口连通性,它会显示

  • 如果端口被防火墙阻止,则会出现“连接超时”
  • 如果服务关闭或未监听指定端口但端口可访问,则会出现“连接被拒绝”的情况。
  • 如果连接成功则显示“已连接到 server_ip”

答案2

有用的实用程序:

  • 1.Telnet

  • 2.数控

  • 3.nmap

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

用法 :

telnet myserver.com 80 
nc -v myserver.com 80
nmap myserver.com 80 

响应分析:

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

假设你收到“连接被拒绝”:那么端口是开放的,但进程没有监听

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

解决方案:

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

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

笔记 :

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

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

nc -uzv yourserver.com 123

答案3

虽然远程登录或者网猫可用于确定端口可达性,nmap是标准的端口扫描工具。

nmap 默认选项(TCP SYN 扫描)确定给定端口是否被防火墙过滤。

nmap -sS <host> -p <port> 

如果您想要可靠地区分打开、关闭和过滤状态,请使用 -sY 选项(SCTP INIT 扫描)

nmap -sY <host> -p <port>

相关内容