25第十二章:【03】服务管理

本文介绍了Linux系统中的服务管理,包括service命令的使用,如启动、停止和检查服务状态,以及chkconfig进行服务自启动配置。此外,还详细讲解了CentOS7之后采用的systemctl命令来管理服务,并涉及到了运行级别的概念和防火墙的控制。最后,提到了firewall-cmd命令用于打开或关闭特定端口。
摘要由CSDN通过智能技术生成

一、服务介绍

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld , sshd,防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。

二、service 管理指令

1、基本介绍

在 CentOS7.0 后 很多服务不再使用 service ,而是 systemctl (后面专门讲)

基本语法:

service 服务名 [start | stop | restart | reload | status]

service 指令管理的服务在 /etc/init.d 查看

2、service 管理指令案例

(1)查看网络连接,并进行关闭,启动操作

请使用 service 指令,查看,关闭,启动 network 【注意:在虚拟系统演示,因为网络连接会关闭】

指令:

service network status
service network stop
service network start
(2)查看当前防火墙的状况,关闭防火墙和重启防火墙

  1. 关闭或者启用防火墙后,立即生效。【telnet 测试 某个端口即可】
  2. 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。如果希望设置某个服务自启动或关闭永久生效,要使用 chkconfig 指令

三、查看服务名

1、方式一:使用 setup -> 系统服务

使用 setup -> 系统服务 就可以看到全部

其中前面标有星号的服务是开启自启动的服务。

2、/etc/init.d 看到 service 指令管理的服务

ls -l /etc/init.d

四、服务的运行级别(runlevel)

1、Linux 运行级别

Linux 系统有 7 种运行级别(runlevel):常用的是级别 3 和 5

  • 运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
  • 运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登陆
  • 运行级别 2:多用户状态(没有 NFS),不支持网络
  • 运行级别 3:完全的多用户状态(有 NFS),无界面,登陆后进入控制台命令行模式
  • 运行级别 4:系统未使用,保留
  • 运行级别 5:X11 控制台,登陆后进入图形 GUI 模式
  • 运行级别 6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动

2、开机的流程说明

3、CentOS7 后运行级别说明

在 /etc/initab

进行了简化 ,如下:

五、chkconfig 设置后台服务的自启配置(CentOS 6 版本)

1、介绍

通过 chkconfig 命令可以给服务的各个运行级别设置自 启动/关闭

chkconfig 指令管理的服务在 /etc/init.d 查看

注意: Centos7.0 后,很多服务使用 systemctl 管理

2、chkconfig 基本语法

chkconfig (功能描述:查看所有服务器自启配置)
chkconfig 服务名 off (功能描述:关掉指定服务的自动启动)
chkconfig 服务名 on (功能描述:开启指定服务的自动启动)
chkconfig 服务名 --list (功能描述:查看服务开机启动状态)

查看服务在运行级别下状态
chkconfig --list [| grep xxx]

chkconfig 服务名 --list

设置服务在运行级别下的是否开启自启动
chkconfig --level 5 服务名 on/off

3、案例演示

(1)查看 sshd 的服务情况

对 network 服务 进行各种操作, 把 network 在 3 运行级别,关闭自启动

chkconfig --level 3 network off
chkconfig --level 3 network on
(2)请显示当前系统所有服务的各个运行级别的运行状态

chkconfig --list

(3)请查看 sshd 服务的运行状态

service sshd status

(4)将 sshd 服务在运行级别 5 下设置为不自动启动,看看有什么效果?

chkconfig --level 5 sshd off

(5)当运行级别为 5 时,关闭防火墙。

chkconfig --level 5 iptables off

(6)在所有运行级别下,关闭防火墙

chkconfig iptables off

(7)在所有运行级别下,开启防火墙

chkconfig iptables on

注意:chkconfig 重新设置服务后自启动或关闭,需要重启机器 reboot 生效

六、systemctl 管理指令(CentOS 7 版本)

1、基本语法

systemctl [start | stop | restart | status] 服务名

systemctl 指令管理的服务在 /usr/lib/systemd/system 查看

2、systemctl 设置服务的自启动状态

systemctl list-unit-files [ | grep 服务名] (查看服务开机启动状态, grep 可以进行过滤)
systemctl enable 服务名 (设置服务开机启动)
systemctl disable 服务名 (关闭服务开机启动)
systemctl is-enabled 服务名 (查询某个服务是否是自启动的)

3、应用案例

查看当前防火墙的状况,关闭防火墙和重启防火墙。=> firewalld.service

systemctl status firewalld
systemctl stop firewalld
systemctl start firewalld
systemctl restart firewalld

4、细节讨论

关闭或者启用防火墙后,立即生效。【telnet 测试 某个端口即可】
这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。

如果希望设置某个服务自启动或关闭永久生效,要使用

systemctl [enable|disable] 服务名

5、打开或者关闭指定端口

在真正的生产环境,往往需要将防火墙打开,但问题来了,如果我们把防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。比如 80、22、8080 等,这个又怎么做呢?

6、firewall 指令

1) 打开端口: firewall-cmd --permanent --add-port=端口号/协议
2) 关闭端口: firewall-cmd --permanent --remove-port=端口号/协议
3) 重新载入,才能生效 : firewall-cmd --reload
4) 查询端口是否开放: firewall-cmd --query-port=端口/协议

7、应用案例

  1. 启用防火墙, 测试 111 端口是否能 telnet , 不行
  2. 开放 111 端口

    firewall-cmd --permanent --add-port=111/tcp ; 需要 firewall-cmd --reload

  3. 再次关闭 111 端口

    firewall-cmd --permanent --remove-port=111/tcp ; 需要 firewall-cmd --reload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值