① 基本介绍
服务(service)本质就是后台进程,通常都会监听某个端口,等待其它程序的请求,比如MySQLD 、SSHD、防火墙等,因此又称为守护进程。
② 使用方法
service 服务名 [start | stop | restart | reload | status] (启动、关闭、重启、重载、查看状态)
在 CentOS7.0 后,很多服务不再使用 service,而是使用 systemctl(后面专门讲)。
在 CentOS7.0 后,可使用service 指令管理的服务在 /etc/init.d 查看。
注意:关闭网络服务后,端口监听停止,就连接不到XShell终端了。
③ 查看服务名
ls -l /etc/init.d查看可以用 service 指令管理的服务(部分服务)
setup查看所有服务
④ 服务的运行级别
Linux 系统有 7 种运行级别(runlevel):常用的是级别 3 和 5
运行级别 0:系统关机状态,系统默认运行级别设为 0就关机
运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登录
运行级别 2:多用户状态,不支持网络服务
运行级别 3:完全的多用户状态,有网络服务,无界面,登录后进入控制台命令行模式
运行级别 4:系统未使用,保留
运行级别 5:登录后进入图形 GUI 模式
运行级别 6:系统正常关闭并重启。默认运行级别设为0或者6,是不能正常启动的
开机的流程说明:
BIOS(Basic Input Output System),基本输入输出系统,计算机启动时运行的第一个程序。
引导加载/boot目录,/boot目录是专门用于存放系统启动过程中需要的所有文件。
⑤ 运行级别说明
查看当前运行级别systemctl get-default
改变当前运行级别systemctl set-default xxx.target
⑥ chkconfig 指令
可以给指定服务的各个运行级别设置自启动/设置关闭
案例演示:在 3 运行级别,对 network 服务进行关闭自启动和恢复自启动
chkconfig --level 3 network off
chkconfig --level 3 network on
注意,设置完成后,需要重启机器 reboot 才能生效。
⑦ systemctl管理指令
基本语法:systemctl [start | stop | restart | status] 服务名
可使用 systemctl 指令来管理的服务,在 /usr/lib/systemd/system 查看
利用 systemctl 指令设置服务的自启动状态:
systemctl list-unit-files 列出所有已配置的 unit 文件。unit 文件是 Systemd 使用来管理不同服务、socket、目标等的配置文件。运行 systemctl list-unit-files 命令时,会看到一个输出列表,其中包含了所有 unit 文件的名称以及它们的状态(例如:enabled、disabled、masked 等)。这些状态表示了服务,是否会在系统启动时自动启动,或者是否被禁用,或者是否隐藏。使用 | grep 服务名 可以进行过滤。(Ctrl+C返回命令行)
systemctl enable 服务名(永久设置服务开机启动)(默认控制的是,级别3和5)
systemctl disable 服务名(永久关闭服务开机启动)(默认控制的是,级别3和5)
systemctl is-enabled 服务名(查询某个服务是否是自启动的)
案例演示:
查看当前防火墙的状况,关闭防火墙和重启防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl start firewalld
(这种方式,关闭或者启用防火墙,是立即生效的、也是临时生效的。当重启系统后,还是回归以前对服务的设置。如果希望设置某个服务自启动或关闭永久生效,要使用 systemctl [enable|disable] 服务名。)
防火墙管理所有端口的开闭,如果没有防火墙,所有的端口的是开放的。
尝试连接某个服务器的某个端口,检查该端口是否开放。可以用其它机器的cmd服务,访问该服务器的该端口,在cmd命令行输入 telnet ip地址 端口号。
⑧ firewall 指令
打开端口:firewall-cmd --permanent --add-port=端口号/协议
关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
重新载入,才能生效:firewall-cmd --reload
查询端口是否开放:firewall-cmd --query-port=端口/协议
案例演示:
尝试连接,连接失败。
打开192.168.116.135的111端口,并且重新加载防火墙
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --reload
测试完成,关闭192.168.116.135的111端口,并且重新加载防火墙
firewall-cmd --permanent --remove-port=111/tcp
firewall-cmd --reload