未修改前
我通过mysql数据库进行实验
首先在本地开启mysql服务,可通过phpstudy
在kali上用nmap进行扫描,因为是实验,为了效率,可以通过以下参数
nmap -sV x.x.x.(本机IP) -p 3306
发现可以扫描到端口及服务,并且是可以扫到版本号
修改后
进行默认端口更改,修改my.ini (mysql配置文件),将client和mysqld下的3306改为65533(改为动态端口即可),此处引入一个小知识点端口分类-附在文章末尾
再次进行nmap扫描,可以看到仍然能够识别到mysql服务,但是没有版本信息
nmap -sV x.x.x.(本机IP) -p 65533
端口分类
公认端口(熟知) 0-1023 ,为服务的默认端口,像面试时问到的说出你所知道的默认端口,一般就是说这一类的
注册端口 1024-49151 一般是应用程序所用的端口,从分类规则上来讲使用这些端口号的应用程序需要向IANA注册,但实际情况下用户程序可以使用,只要保证其端口没有被进程占用。
动态/私有端口 49152-65535
分配给用户应用程序进程的动态使用的端口号,因为是动态的,理论上来说是识别不到服务的,或者说需要很长的时间,比如扫到这范围内的某一个端口是开放的,需要去利用所有库里的已知服务特征去匹配识别