当我 ping 时,有回复。
$ ping 10.26.14.16
64 bytes from 10.26.140.160: icmp_seq=1 ttl=63 time=0.525 ms
当我 ping 端口时,没有回复。
$ nmap -p 5016 10.26.14.16
5016/tcp closed unknown
问:如何打开5016端口?
答案1
正如@ucarus 在这篇文章中所说评论:
您可以通过让服务侦听端口来“打开”端口。
E,g: 用于在机器nc
上启动端口监听器 5016 10.26.14.16
:
nc -l 5016 &
然后:
nmap -p 5016 10.26.14.16
答案2
为此,netcat 不是保持端口打开的正确工具。原因是 netcat 侦听器是一个原始套接字工具,需要您发出进一步的命令。例如,您在服务器端保持 TCP 5016 打开。然后,您对服务器运行 nmap 扫描。在扫描期间,客户端发送 TCP SYN 数据包。服务器不知道如何响应,因为您没有告诉它如何响应。换句话说,您应该对其如何响应进行编程(就像在 TCP 协议中一样)。结果,服务器向客户端发送 RST 以响应 SYN,并且连接断开。当端口上没有运行任何服务时发生这种情况,从客户端的角度来看,该端口看起来像是关闭的。
为了轻松满足您的需求,我建议您使用 python,因为它已预安装在大多数类 Unix 操作系统中。您可以使用 HTTP 模块(无需额外安装)。在这种情况下,当在客户端执行 nmap 扫描时,服务器(现在充当简单的 HTTP 服务器)将知道如何响应 TCP SYN 数据包。首先,取决于 Python v2 或 v3:
Python 2(服务器端):
$ python -V
$ cd /tmp
$ python -m SimpleHTTPServer 5016
Python 3(服务器端):
$ python -V
$ cd /tmp
$ python3 -m http.server 5016
Nmap(客户端):
$ nmap -p 5016 10.26.14.16
该命令$ cd /tmp
不是必需的,但要小心,因为 Web 服务器将为您的当前目录建立索引。然而,/tmp
这是运行测试的安全位置。