我有一个与端口号及其相关服务的概念相关的问题。
鉴于端口号是一种识别特定进程的方法,当互联网或其他网络消息到达服务器时,该消息将被转发到该特定进程(例如:Web 服务器应该在端口 80 和 8080...等上找到) )
简而言之,我的问题是:
如果 nmap 扫描显示:
======================================
host: 10.0.xxx.xx
port state service reason
20000 open dnp syn-ack ttl 56
======================================
我是否真的找到了 SCADA 系统? (DNP3 作为分布式网络协议由 SCADA 主站使用)
好吧,我自己的意见是肯定的!...但不幸的是,一旦我与服务器的所有者取得联系,他告诉我我完全错了,因为他安装了一个使用端口 20000 的基于 java 的应用程序(https://babelfish.arc.nasa.gov/trac/jpf/wiki/user/output)
我是否正确地说,这家伙应该选择另一个端口,因为端口 20000 被认为是 DNP 协议的官方端口号(https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers)?
多谢
答案1
没有硬性要求特定端口只能由特定服务使用。我可以在端口 1234 而不是端口 80 上运行 Web 服务器,除了很难找到它之外,没有什么可以阻止我这样做。 (在我的家庭网络面向公众的一侧,我确实在非标准端口上运行一两个服务,只是为了防止脚本小子。)
端口可以由 IANA 保留(例如 tcp/22 用于ssh
),甚至还有一个“用户定义的服务”范围,但如今在我们更加肮脏和不太友好的互联网上,其中大部分通常被忽略。当然,除了许多互联网用户根本不知道这一事实之外。