文章目录
- Linux系统下的服务管理
- 1.基本介绍
- 2.service管理指令
- 3.chkconfig指令
- 4.systemctl管理指今
- 4.1.基本语法
- 4.2.systemctl设置服务的自启动状态
- 4.3.防火墙实验案例
- 4.4.防火墙
Linux系统下的服务管理
1.基本介绍
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求如(mysql,sshd 防火墙等),如下图所示,因此我们又称为守护进程,是Linux中非常重要的知识点。
2.service管理指令
- service 服务名 [start|stop|restart|reload status]
- 在Centos7,0后 很多服务不再使用service ,而是 systemctl
- service 指令管理的服务在
/etc/init.d
里面查看
setup
命令即可查看全部服务
3.chkconfig指令
chkconfig 命令可以给服务的各个运行级别设置自 启动/关闭
chkconfig 指令管理的服务在 /etc/init.d 查看
注意: Centos7.0 后,很多服务使用systemctl 管理(后面马上讲)
chkconfig基本语法
查看服务 chkconfig--list (| grep xxx)
chkconfig 服务名--list
chkconfig --level 5 服务名 on/off
对network 服务 进行各种操作,把network 在3运行级别,关闭自启动
chkconfig --level 3 network off
chkconfig --level 3 network on
使用细节:hkconfig重新设置服务后自启动或关闭需要重启机器reboot生效
4.systemctl管理指今
systemctl为 system control 的缩写,意为系统控制。
4.1.基本语法
基本语法:systemctl [start | stop | restart | status] 服务名
systemctl指令管理的服务在 /usr/lib/systemd/system 查看
4.2.systemctl设置服务的自启动状态
systemctl list-unit-files [| grep 服务名]
:查看服务开机启动状态,grep 可以进行过滤systemctl enable 服务名
:设置服务开机启动systemctl disable 服务名
:关闭服务开机启动systemctl is-enabled 服务名
:查询某个服务是否是自启动的
4.3.防火墙实验案例
Eg: 查看当前防火墙的状况,关闭防火墙和重启防火墙。
- 用指令
systemctl list-unit-files | grep fire
查看防火墙服务名称 - 用指令
systemctl status firewalld
查看防火墙状态 - 用指令
systemctl stop firewalld
关闭防火墙 - 用指令
systemctl start firewalld
启动防火墙
注意点:
- 关闭或者启用防火墙后,立即生效。[telnet 测试 某个端口即可]
- 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
- 如果希望设置某个服务自启动或关闭永久生效,要使用
systemctl [enable/disable] 服务名
,即不让该服务自行启动。(实际中建议开启防火墙,这样更安全)
4.4.防火墙
打开或者关闭指定端口在真正的生产环境,往往需要将防火墙打开,但问题来了,如果我们把防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。比如80、22、8080等,这个又怎么做呢? 示意图如下:
firewall指令:
- 打开端口:
firewall-cmd --permanent --add-port=端口号/协议
- 关闭端口:
firewall-cmd --permanent --remove-port=端口号/协议
- 重新载入才能生效 :
firewall-cmd --reload
- 查询端口是否开放:
firewall-cmd --query-port=端口/协议
应用案例:
- 启用防火墙,测试 111端口是否能 telnet
- 在Windows的命令窗口输入
telnet 192.168.200.130 111
- 在Windows的命令窗口输入
- 开放111端口
- 使用指令
netstat -anp | more
查看协议内容,再用指令
- 使用指令
firewall-cmd --permanent --add-port=111/tcp
开启111端口,再使用指令firewall-cmd --reload
使其生效
- 在Windows的命令窗口输入
telnet 192.168.200.130 111
发现可以进去了
- 使用指令
- 再次关闭111端口
- 使用指令
firewall-cmd --permanent --remove-port=111/tcp
关闭111端口,再使用指令firewall-cmd --reload
使其生效
- 使用指令
注意
Linux系统(如果没有telnet,输入yum install telnet-server
安装,再输入yum install telnet
安装指令)
Windows下如果没有请参考:
https://zhidao.baidu.com/question/754709472672183052.html