「这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战」。
服务 (service) 本质就是进程,但是运行在后台,通常都会监听某个端口,等待其他程序的请求,比如 (mysql、sshd、防火墙等),因此又称为守护进程 (daemon).
1. service
service
管理指令:
- ⭐
service <服务名> [start | stop | restart | reload | status]
service
指令管理的服务在/etc/init.d
中查看- 🔥 在 CentOS 7.0 以后很多服务不再使用
service
,而是systemctl
指令。 - 常用:
service network status
、service network start
、service network stop
- ⭐修改系统自启动服务
- 输入指令:
setup
==> 选择System services
- 修改自启动服务 ( 按下
Space
修改 ):
- 输入指令:
2. runlevel
- 重申服务的运行级别(runlevel)
- 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 1:单用户工作状态,root权限,用于权限维护,禁止远程登录
- 2:多用户状态(无NFS),不支持网络
- 3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 4:系统未使用,保留
- 5:X11控制台,登陆后进入图形GUI界面
- 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动(循环开关机)
- ⭐开机流程:开机 => BIOS => /boot => systemd (pid=1) => 运行级别 => 运行级别对应的服务
- ⭐修改和查看默认运行级别
systemctl get-default
systemctl set-default multi-user.target
systemctl set-default graphical.target
3. chkconfig
chkconfig
指令:
- 通过
chkconfig
命令可以给服务的各个运行级别设置自启动/自关闭(某个服务对于各个运行级别不一定一样,是独立的) - ⭐chkconfig 基本语法:
chkconfig --list [| grep xxx]
: 查看服务chkconfig <服务名> --list
chkconfig --level 5 <服务名> on/off
: 启停服务(对于某个运行级别)
- 案例演示:对 network 服务在 3 运行级别开启自启动
chkconfig --level 3 network on
- 注意 :
chkconfig
重新设置服务的自启动/自关闭,需要reboot
才能生效
4. systemctl
🔥 systemctl
指令详解:
- 使用
netstat -anp
可以监控网络状态! - CentOS 7 以后运行级别简化为 3 和 5,所以
systemctl
不再区分运行级别,执行同时会设置 3 和 5 的运行级别。 - ⭐基本语法 :
systemctl [start|stop|enable|disable|is-enabled|restart|status] <服务名>
- ⭐
systemctl
指令管理的服务在/usr/lib/systemd/system
查看(service
指令管理的服务在/etc/init.d
中)ll /usr/lib/systemd/system
:
- ⭐
systemctl
设置服务自启动状态【常用命令】systemctl list-unit-files [| grep <服务名>]
: 查看服务systemctl enable <服务名>
: 设置服务开机启动systemctl disable <服务名>
: 关闭服务开机启动systemctl is-enabled <服务名>
: 查询某个服务是否自启动
- ⭐
systemctl
设置当前(临时)服务状态——并不影响自启动状态systemctl status <服务名>
: 查看当前服务状态systemctl stop <服务名>
: 关闭当前服务(临时,与自启动无关)systemctl start <服务名>
: 开启当前服务(临时,与自启动无关)- ...
systemctl list-unit-files
:
systemctl status
:
5. firewall-cmd
- 查看当前防火墙状态等一系列操作:
systemctl status firewalld
- 注意
- stop|start 这种操作是立即生效的,当重启系统后,还是回归以前对服务的自启动设置(不同于自启动)【
telnet
测试某个端口即可验证】 - 如果希望某个服务自启动或者自关闭并永久生效,使用
systemctl [enable|disable] <服务名>
- stop|start 这种操作是立即生效的,当重启系统后,还是回归以前对服务的自启动设置(不同于自启动)【
- 防火墙 firewall & 打开或关闭指定端口 ❗
- 在真正的生产环境,往往需要将防火墙打开,但问题是:如果将防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,就需要打开指定的端口,比如 80、22、8080...
如下介绍如何实现: - ⭐查询端口是否开放 :
firewall-cmd --query-port=端口号/协议
- ⭐打开端口 :
firewall-cmd --permanent --add-port=端口号/协议
- ⭐关闭端口 :
firewall-cmd --permanent --remove-port=端口号/协议
- ⭐无论打开/关闭,只有重新载入才能生效 :
firewall-cmd --reload
- ⭐查看当前网络状态(可以用来查端口号对应的协议) :
netstat -anp | more
- 在真正的生产环境,往往需要将防火墙打开,但问题是:如果将防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,就需要打开指定的端口,比如 80、22、8080...
- 应用实例
- ① 启用防火墙
- ② 开放111端口
- ③ 测试111端口是否能 telnet
物理机telnet 192.168.10.131 111
- ④ 再次关闭111端口
- ① 启用防火墙
希望本文对你有所帮助🧠
欢迎在评论区留下你的看法🌊,我们一起讨论与分享🔥
近期评论