目录结构
一、运行级别&服务分类
1. 系统运行级别
1)运行级别命令
2)系统默认运行级别
2. 服务的分类
1)Linux服务分类
2)查询已安装的服务
3. 启动与自启动
4. 查询已安装的服务
1)查看已安装的服务
2)rpm安装服务 VS 源码包安装服务
5. 服务与端口
1)查看系统中运行的服务
2)端口与服务对应
3)查询系统中开启的服务
二、RPM包-服务管理
1. 独立的服务管理
1)rpm包的默认安装位置
2)独立服务的启动
3)独立服务的自启动
2. 基于xinetd服务的管理
1)rsync服务
2)xinetd服务的启动
3)xinetd服务的自启动
三、源码包-服务管理
1. 源码包安装服务的启动
2. 源码包服务的自启动
3. 配置源码包服务能被服务管理命令所识别
四、Linux中常见的服务-开启/关闭建议(服务优化)
一、运行级别&服务分类
1. 系统运行级别
运行级别 | 含义 |
---|---|
0 | 关机 |
1 | 单用户模式,主要用于系统修复。 作用:启动最小程序 |
2 | 不完全的命令模式,不包含NFS服务 (NFS:Linux与Windows共享文件的服务) |
3 | 完全的命令模式,即标准字符界面 |
4 | 系统保留(暂未实现) |
5 | 图形模式(图形界面) |
6 | 重启动 |
PS:
① 通过init 0、init 6命令进行关机/重启的效果并不可靠,因其可能不能完全关闭某些服务的进程,建议还是使用如shutdown来代替,实现平稳关闭服务进程再关闭系统or重启系统
② 若从级别3修改到级别5,则前提是需要安装有支持图形界面的包文件
③ 完全命令模式,与图形模式相比,占用的资源更少,相对来说就可能发挥出更好的性能
1)运行级别命令
# 查看运行级别的命令
runlevel
# 修改运行级别命令
init 运行级别
最左边的数字:表示上一个运行级别。"N"即None,意味着一开机就进入当前级别,并没有通过上一个级别转变到当前级别
最右边的数字:表示当前运行级别。"5"为图形界面级别
2)系统默认运行级别
# 系统开机后直接进入的运行级别-配置永久生效
vim /etc/inittab
# 配置:
id:3:initdefault:
PS:以上根据 /etc/inittab配置文件的建议,不建议将默认运行级别设置为0或6,否则开机就重启or开机就关闭,始终开启不了Linux主机(可通过其他方式修复)
2. 服务的分类
1)Linux服务分类
Linux的服务分类:
(1)rpm包默认安装的服务:①独立的服务;②基于xinetd服务
(2)源码包安装的服务
- 独立服务:独立运行在内存,有任何客户端想要访问服务,服务都可以快速响应,但是这些所有的服务都需要占用内存
- xinetd服务:超级守护进程,管理后台程序。工作过程:用户首先访问xinetd服务,再由xinetd服务访问后台程序;后台程序再把响应返回给xinetd服务,然后xinetd服务将响应返回给用户。特点:响应相对较慢,但是除了xinetd本身占用内存,其他部分并不占用内存
2)查询已安装的服务
# 查看服务自启动状态,可看到所有rpm包安装的服务
chkconfig --list
# 源码包安装的服务;服务安装位置:一般为 /usr/local/之下
查看rpm包安装的不同服务,在不同的运行级别下的开机默认状态(开启or关闭)
因CentOS6及以上系统默认没有安装xinetd服务,可利用yum安装xinetd服务:yum -y install xinetd
安装完成后,再次执行chkconfig --list
命令即可查看到xinetd服务项,如下:
3. 启动与自启动
服务启动:在当前系统中让服务运行,并提供功能
服务自启动:让服务在系统开机or重启之后,随着系统的启动而自动启动服务
PS:
通过命令chkconfig --list
查看到的是服务自启动的状态,不能以此来判断服务在当前的启动状态
4. 查询已安装的服务
1)查看已安装的服务
# 查看服务自启动状态,可看到所有rpm包安装的服务
chkconfig --list
# 源码包安装的服务;服务安装位置:一般为 /usr/local/之下
2)rpm安装服务 VS 源码包安装服务
区别:安装位置的不同,导致启动方式or管理方式不同
源码包安装在指定位置(非必须),一般为 /usr/local/。rpm包则安装在默认位置中
5. 服务与端口
1)查看系统中运行的服务
方式1:通过命令ps aux
查看系统中运行的服务对应的进程,以及某些程序占用的进程
方式2:查看系统中开启的端口号,从而判断当前系统中开启的服务
端口:数据从底层经过传输层向应用层传递服务的接口
2)端口与服务对应
查询系统中的服务项,及其对应的端口号:vim /etc/services
3)查询系统中开启的服务
# 列出系统中所有已启动的服务(端口)
netstat -tunlp
# 列出系统中所有已启动服务(包括已连接的服务)
netstat -an
选项:
-t 列出tcp数据
-u 列出udp数据
-l 列出正在监听的网络服务(不包括已连接的网络服务)
-n 用端口号来显示服务,而不是用服务名
-p 列出该服务的进程ID(PID)
-a 所有选项
PS:
① 若队列编号≠0,则表示该服务比较繁忙(在排队ing)
② 因tcp会有3次握手的过程,故需要监听(LISTEN),而udp则不需要监听
③ 通过查看系统已启动的端口,以此判断已启动的服务
④ 命令chkconfig --list
查看自启动服务,命令netstat -tunlp
查看启动的服务
二、RPM包-服务管理
1. 独立的服务管理
1)rpm包的默认安装位置
安装位置的不同,导致启动方式or管理方式不同。源码包安装在指定位置(非必须),一般为 /usr/local/。rpm包则安装在默认位置中,如下:
类型 | 默认安装路径 |
---|---|
启动脚本位置 | /etc/init.d |
初始化环境配置文件位置 | /etc/sysconfig/ |
配置文件位置 | /etc/ |
xinetd配置文件 | /etc/xinetd.conf |
基于xinetd服务的启动脚本 | /etc/xinetd.d/ |
服务产生的数据 | /var/lib/ |
日志 | /var/log/ |
2)独立服务的启动
# 启动方式1
/etc/init.d/独立服务名 start|stop|status|restart
# 启动方式2
service 独立服务名 start|stop|status|restart
以上,对于启动方式1,还可以写作/etc/rc.d/init.d/独立服务名 start...
,因/etc/init.d和/etc/rc.d/init.d建立了软链接关系,两者中的任一都可操作其下的服务
3)独立服务的自启动
独立服务的自启动修改方式:
方式1:
# 查看rpm安装包的自启动服务
chkconfig [--level 运行级别] [独立服务名] [on|off]
方式2:修改 /etc/rc.d/rc.local文件
方式3:使用 ntsyssv命令(图形界面)管理自启动
对于phpstudy服务,如:
查询phpstudy服务的自启动状态:chkconfig --list | grep "phpstudy"
将所有运行级别自启动状态设置为off:chkconfig phpstudy off
将2345运行级别自启动状态设置为on:chkconfig --level 2345 phpstudy on
2. 基于xinetd服务的管理
1)rsync服务
rsync是xinetd服务中一项常规服务,主要用于Linux之间进行数据同步、备份。以上通过yum命令(yum -y install xinetd
)安装过xinetd服务,
查看独立服务的自启动:chkconfig --list
rsync服务配置文件保存路径:/etc/xinetd.d/rsync
查询rsync服务对应的端口:grep "rsync" /etc/services
查询出rsync占用873端口,如下:
2)xinetd服务的启动
配置启动rsync服务:vim /etc/xinetd.d/rsync
设置:disable = no
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync # 服务名称
{
disable = no # 服务不启动(yes/no)
flags = IPv6 # 服务是 IPv6上的服务
socket_type = stream # 使用TCP协议数据包
wait = no # 允许多个连接同时连接
user = root # 启动服务的用户为root
server = /usr/bin/rsync # 服务的启动程序
server_args = --daemon # 脱离xinetd托管模式,直接以daemon形式启动 rsync服务
log_on_failure += USERID # 登录失败后记录用户的ID
}
rsync启动命令(rsync由xinetd所管理):service xinetd restart
查看xinetd服务中的rsync服务是否开启(873端口):netstat -tunlp
3)xinetd服务的自启动
# 停止当前rsync服务,且将开机自启动状态设置为关闭
chkconfig rsync off
# 当前开启rsync服务,且将开机自启动状态设置为开启
chkconfig rsync on
PS:
① rsync是基于xinetd的服务,非独立服务,不能添加运行级别
② 独立服务的启动、自启动是独立控制的,有严格区分
③ 基于xinetd的服务,启动和自启动是同步控制的,没有独立区分,导致xinetd服务的应用相对较少
三、源码包-服务管理
对于源码包,安装目录默认没有放置在/etc/rc.d/init.d
或/etc/init.d
之下,故默认不能对其使用默认管理rpm包的命令(如:service、chkconfig、ntsysv等服务管理命令),此时操作源码包的服务时需要使用绝对命令定位到服务项
1. 源码包安装服务的启动
使用绝对路径(根据具体安装位置而定),调用启动脚本来启动。不同的源码包的启动脚本不同,可从源码包的安装说明中查看启动脚本的方法
如:/usr/local/apache2/bin/apachectl start|stop
2. 源码包服务的自启动
vim /etc/rc.d/rc.local 或 vim /etc/rc.local
加入以上启动命令(/usr/local/apache2/bin/apachectl start|stop)
3. 配置源码包服务能被服务管理命令所识别
让源码包的apache服务能被service命令进行管理启动:
(1)service命令搜索的是/etc/init.d/或/etc/rc.d/init.d/目录,将源码包的apache启动脚本,通过软链接的方式链接到对应的目录(/etc/rc.d/init.d/):
ln -s /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/
(2)service命令管理apache启动脚本启动apache服务:service apachectl start
四、Linux中常见的服务-开启/关闭建议(服务优化)
服务器维护建议:
1. 重启维护:长时间未重启,可能堆积较多的系统垃圾,使用趋于卡顿,通过避开用户使用的高峰期的某个时段进行重启清除系统垃圾。建议:①高负载服务器(视频、游戏、下载等),1周重启1次;②低负载服务器(常规内容网站),1个月重启1次
2. 减少非必须程序的资源占用:若非必要,可不安装图形界面程序包,而直接使用命令模式的操作环境
3. 关闭非必须服务:服务管理中的服务器优化,其中一项基本的工作是关闭不必要的服务,减少资源的占用,降低被攻击的可能性
......
Linux中常见的服务-开启/关闭建议:
服务名称 | 功能简介 | 建议 |
---|---|---|
acpid | 电源管理接口。若是笔记本用户建议开启,可监听内核层的相关电源事件 | 开启 |
anacron | 系统的定时任务程序。cron 的一个子系统,若定时任务错过了执行时间,可以通过 anacron 继续唤醒执行 | 关闭 |
alsasound | Alsa 声卡驱动。若使用 alsa 声卡,开启 | 关闭 |
apmd | 电源管理模块。若支持 acpid,就不需要 apmd,可以关闭 | 关闭 |
atd | 指定系统在特定时间执行某个任务,只能执行一次。若需要则开启,但我们一般使用 crond 来进行循环定时任务 | 关闭 |
auditd | 审核子系统。若开启了此服务,SELinux 的审核信息会写入/var/log/audit/audit.log 文件,若不开启,审核信息会记录在 syslog 中 | 开启 |
autofs | 让服务器可以自动挂载网络中的其他服务器的共享数据,一般用来自动挂载 NFS 服务。若没有 NFS 服务建议关闭 | 关闭 |
avahi-daemon | Avahi是zeroconf协议的实现。它可以在没有DNS服务的局域网里发现基于zeroconf协议的设备和服务。除非有兼容设备或使用 zeroconf 协议,否则关闭 | 关闭 |
bluetooth | 蓝牙设备支持。一般不会在服务器上启用蓝牙设备,关闭它 | 关闭 |
capi | 仅对使用 ISND 设备的用户有用 | 关闭 |
chargen-dgram | 使用 UDP 协议的 chargenserver。主要功能是提供类似远程打字的功能 | 关闭 |
chargen-stream | 同上 | 关闭 |
cpuspeed | 可以用来调整 CPU 的频率。当闲置时可以自动降低 CPU 频率来节省电量 | 开启 |
crond | 系统的定时任务,一般的 Linux 服务器都需要定时任务帮助系统维护。建议开启 | 开启 |
cvs | 一个版本控制系统 | 关闭 |
daytime-dgram | daytime 使用 TCP 协议的 Daytime 守护进程,该协议为客户机实现从远程服务器获取日期和时间的功能 | 关闭 |
daytime-stream | 同上 | 关闭 |
dovecot | 邮件服务中 POP3/IMAP 服务的守护进程。主要用来接收信件,若启动了邮件服务则开启,否则关闭 | 关闭 |
echo-dgram | 服务器回显客户服务的进程 | 关闭 |
echo-stream | 同上 | 关闭 |
firstboot | 系统安装完成之后,有个欢迎界面,需要对系统进程初始设定。就是这个进程的作用。既然不是第一次启动了,关闭吧 | 关闭 |
gpm | 在字符终端(tty1-tty6)中可以使用鼠标复制和粘贴。就是这个服务的功能 | 开启 |
haldaemon | 检测盒支持 USB 设备。若是服务器可以关闭,个人机建议开启 | 关闭 |
hidd | 蓝牙鼠标、键盘等蓝牙设备检测。必须启动 bluetooth 服务 | 关闭 |
hplip | HP 打印机支持,若没有 HP 打印机关闭吧 | 关闭 |
httpd | apache 服务的守护进程。若需要启动 apache,就开启 | 开启 |
ip6tables | IPv6 的防火墙,目前 IPv6 协议并没有使用,可以关闭 | 关闭 |
iptables | 防火墙功能,Linux 中防火墙是内核支持功能。这是服务器的主要防护手段,必须开启 | 开启 |
irda | IrDA 提供红外线设备(笔记本,PDA’s,手机,计算器等等)间的通讯支持。关闭吧 | 关闭 |
irqbalance | 支持多核处理器,让 CPU 可以自动分配系统中断(IRQ),提高系统性能。目前服务器多是多核 CPU,请开启 | 开启 |
isdn | 使用 ISDN 设备连接网络。目前主流的联网方式是光纤接入和ADSL,ISDN 已经非常少见,请关闭 | 关闭 |
kudzu | 该服务可以在开机时进行硬件检测,并会调用相关的设置软件。建议关闭,仅在需要时开启 | 关闭 |
lvm2-monitor | 该服务可以让系统支持 LVM 逻辑卷组,若分区采用的是 LVM方式,那么应该开启。建议开启 | 开启 |
mcstrans | SELinux 的支持服务。建议启动 | 开启 |
mdmonitor | 该服务用来监测 Software RAID 或 LVM 的信息。不是必须服务,建议关闭 | 关闭 |
mdmpd | 该服务用来监测 Multi-Path 设备。不是必须服务 | 关闭 |
messagebus | 这是 Linux 的 IPC(Interprocess Communication,进程间通讯)服务,用来在各个软件中交换信息。个人建议关闭 | 关闭 |
microcode_ctl | Intel 系列的 CPU 可以通过这个服务支持额外的微指令集 | 关闭 |
mysqld | mysql 数据库服务器。若需要就开启,否则关闭 | 开启 |
named | DNS 服务的守护进程,用来进行域名解析。若是 DNS 服务器则开启,否则关闭 | 关闭 |
netfs | 该服务用于在系统启动时自动挂载网络中的共享文件空间,比如:NFS,Samba 等等。需要就开启,否则关闭 | 关闭 |
network | 提供网络设置功能。通过这个服务来管理网络,所以开启 | 开启 |
nfs | NFS(Network File System)服务,Linux 与 Linux 之间的文件共享服务。需要就开启,否则关闭 | 关闭 |
nfslock | 在 Linux 中若使用了 NFS 服务,为了避免同一个文件被不同的用户同时编辑,所有有这个锁服务。有 NFS 是开启,否则关闭 | 关闭 |
ntpd | 该服务可以通过互联网自动更新系统时间,使系统时间永远都准确。需要则开启,但不是必须服务 | 关闭 |
pcscd | 智能卡检测服务,可以关闭 | 关闭 |
portmap | 用在远程过程调用(RPC)的服务,若没有任何 RPC 服务时,可以关闭。主要是 NFS 和 NIS 服务需要 | 关闭 |
psacct | 该守护进程支持几个监控进程活动的工具 | 关闭 |
rdisc | 客户端 ICMP 路由协议 | 关闭 |
readahead_early | 在系统开机的时候,先将某些进程加载如内存整理,可以加快一点启动速度 | 关闭 |
readahead_later | 同上 | 关闭 |
restorecond | 用于给 SELinux 监测和重新加载正确的文件上下文。若开启 SELinux 则需要开启 | 关闭 |
rpcgssd | 与 NFS 有关的客户端功能。若没有 NFS 就关闭吧 | 关闭 |
rpcidmapd | 同上 | 关闭 |
rsync | 远程数据备份守护进程 | 关闭 |
sendmail | sendmail 邮件服务的守护进程。若有邮件服务就开启,否则关闭 | 关闭 |
setroubleshoot | 该服务用于将SELinux相关信息记录在日志/var/log/messages 中,建议开启 | 开启 |
smartd | 该服务用于自动检测硬盘状态。建议开启 | 开启 |
smb | 网络服务 samba 的守护进程。可以让 Linux 和 Windows 之间共享数据。若需要则开启 | 关闭 |
squid | 代理服务的守护进程。若需要则开启,否则关闭 | 关闭 |
sshd | ssh 加密远程登陆管理的服务。服务器的远程管理必须使用此服务,不要关闭 | 开启 |
syslog | 日志的守护进程 | 开启 |
vsftpd | vsftp 服务的守护进程。若需要 FTP 服务则开启,否则关闭 | 关闭 |
xfs | 这个是 X Window 的字体守护进程。为图形界面提供字体服务,若不启动图形界面,就不用开启 | 关闭 |
xinetd | 超级守护进程。若有依赖 xinetd 的服务就必须开启 | 开启 |
ypbind | 为 NIS(网络信息系统)客户机激活 ypbind 服务进程 | 关闭 |
yum-updatesd | yum 的在线升级服务 | 关闭 |