我编写了一个程序,该程序应该可以实现 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 427
或nmap -sU -p 427
(对于 UDP)。
答案3
答案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