端口与服务

一 端口的概念

在Linux系统下,系统共定义了65535个可用端口。这些端口又分为两部分,以1024作为分割点,分别是“只有root用户才能启动的端口”和“客户端的端口”。
  • 只有root用户才能启动的端口
Linux提供下,对于0到1023端口,都需要以root身份才能启动,这些端口用于系统一些常见的通信服务。这些端口都是预留给服务来使用的。可通过查/etc/services文件得到端口与服务的对应关系。
  • 客户端的端口
1024(包括1024)的端口主要是给客户端软件使用,这些端口都是由软件随机分配的。
同时大于或等于1024的端口启用不受root用户的控制。例如,对于经常使用的MySQL数据库,服务的默认端口是3306,而这个端口是由MySQL用户启用的。Oracle数据库默认的监听端口是1521,也是由Oracle用户启动的。
 
二 如果查看端口状态
1、查看服务器端口监听状态

 
2、显示已经联机的连接状态

 
3、查看端口对应服务

 
三 服务与端口的关系
服务和端口是一个一一对应的关系,相互依赖,互为衬托。没有服务运行也就无所谓端口,端口的开启和关闭也就是软件服务的启动和关闭。例如,常见的80端口默认运行的是www服务,53端口默认运行的是DNS服务。
 
四 端口与系统的安全性
为了保证系统的安全,一般情况下会在系统中关闭不必要的端口,这是系统管理员经常使用的策略。其实,端口没有所谓的安全性,因为端口是和软件启用的服务对应的,所以说到底,真正影响安全的并不是端口,而是与端口对应的服务。
 
五 关闭不必要的服务
第一种方式:直接执行服务启动/关闭脚本。
例如:
/etc/init.d/sshd restart
systemctl restart sshd             // CentOS 7.0版本之后
第二种方式:通过超级服务去管理一些常用的网络服务。
例如:
/etc/init.d/xinetd restart
systemctl restart xinetd           //CentOS 7.0版本之后