如何检查 Red Hat Linux/CentOS 上的端口是否打开

如何检查 Red Hat Linux/CentOS 上的端口是否打开

我编写了一个程序,该程序应该可以实现 SLP (rfc2608),但在测试它时遇到了麻烦。我不确定端口是否已关闭,或者是否有什么东西丢失了我的多播数据报。是否有命令可以从 redhat 终端运行,以告诉我该机器上的端口是否已打开?

我看过一些关于简单地远程登录到端口等的帖子,但这只适用于 TCP 端口,对吗?我还读到过有些网站可以从外部测试这种事情。但我真的不想这么做,因为我对完整的端口扫描不感兴趣,该盒子位于私人网络上,即使不是,我也不想让它看起来像是发生了安全事件。我只是想查询并查看端口 427 是否打开。

答案1

嗯。多播,所以 telnet 不起作用。

我认为您可以运行 tcpdump 来查看流量是否到达您的服务器。在您的服务器上运行如下命令:

tcpdump -i eth0 port 427看看是否有东西出现。

如果什么也没发生,那么一定是其他地方出现了某种阻碍。

检查您当地的防火墙,以iptables -L -n确保 INPUT 链允许您的流量。

为了进一步诊断,您可能需要从笔记本电脑开始运行跟踪路由,指定协议和端口(否则,它将默认为 ICMP)。

答案2

嗯,netstat -anp | grep 427可以。也许lsof -i | grep 427也行。

要从外部 Linux 主机进行检查,您可以使用nmap。或许nmap -sT -p 427nmap -sU -p 427(对于 UDP)。

答案3

网络状态本地和nmap在远程主机上。

我经常使用

netstat -plunt

netstat -ant

了解正在发生的事情。

答案4

从我的经验来看,最好的方法是使用nmap

nmap 10.0.0.1 -Pn -p 427 

显然,如果从另一台机器进行测试,则用公共 IP 替换 10.0.0.1;如果在该特定机器上进行测试,则用 127.0.0.1 替换。

将输出如下内容:

PORT    STATE    SERVICE
427/tcp filtered https

Nmap done: 1 IP address (1 host up) scanned in 2.14 seconds

以上选项的含义是:

-Pn: Treat all hosts as online -- skip host discover

-p <port ranges>: Only scan specified ports
               Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9

如果你还没有nmap

yum install nmap

由于在这种情况下是经过过滤的,因此,要查看它是否在服务所在的框中经过过滤,一种方法是尝试从两台不同的计算机进行检查。

或者在该盒子上运行 nmap

nmap 127.0.0.1 -Pn -p 427 

您可以添加--reason以查看被过滤的原因

nmap 10.0.0.1 -Pn -p 427 --reason

相关内容