服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是Linux中非常重要的
知识点。
service管理指令
service 服务名 [start | stop | restart | reload | status]
五个中可以任选一个: 启动 停止 重启 重载 状态
在CentOS7.0后 不再使用service ,而是 systemctl
这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
案例:
查看当前防火墙的状况,关闭防火墙和重启防火墙
[root@nyh ~]# service iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
[root@nyh ~]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
[root@nyh ~]# service iptables status
iptables:未运行防火墙。
[root@nyh ~]# service iptables start
iptables:应用防火墙规则: [确定]
[root@nyh ~]# service iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
案例二:可以看到上面我们开放的是22号端口,在windows下可以用telnet ip 端口号
测试Linux中某个端口是否开启
在cmd窗口中输入以下命令
C:\Users\nyh>telent 192.168.70.131 22
就会看到如下画面,证明连上了,端口是开放着的
如果出现下面这样则是服务没有开启
解决办法:把下图中的客户端√上确定就可以了
查看服务名
- 使用
setup ==> 系统服务
就可以看到。
在终端中输入setup后回车会出现以下画面,选中系统服务就可以了
可以用空格来控制是否开启服务(前面有*
号的代表开启)
- 查看 /etc/init.d/服务名称
服务的运行级别(runlevel)
查看或者修改默认级别: vim /etc/inittab
Linux系统有7种运行级别(runlevel):常用的是级别3和5
• 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
• 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
• 运行级别2:多用户状态(没有NFS),不支持网络
• 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
• 运行级别4:系统未使用,保留
• 运行级别5:X11控制台,登陆后进入图形GUI模式
• 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
开机流程示意图:
为什么运行级别会和服务有关系呢?
因为某些服务可能在特定的运行级别下会设置自启动或者不自启动的设置,比如可能sshd服务在运行级别2下设置了自启动,在运行级别0下就不自启动了…
chkconfig指令
通过chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭
基本语法
- 查看某个服务
chkconfig --list | grep xxx
- 查看某个服务
chkconfig 服务名 --list
- 设置某个服务在某个级别下是否自启动(on是自启动,off是关闭)
chkconfig --level 5 服务名 on/off
案例
案例1: 请显示当前系统所有服务的各个运行级别的运行状态
案例2 :请查看sshd服务的运行状态
案例3: 将sshd 服务在运行级别5下设置为不自动启动,看看有什么效果?
[root@nyh ~]# chkconfig --level 5 sshd off
案例4: 当运行级别为5时,关闭防火墙。
[root@nyh ~]# chkconfig --level 5 iptables off
案例5: 在所有运行级别下,关闭防火墙(不用–level 指定级别就代表所有级别)
[root@nyh ~]# chkconfig iptables off
案例6: 在所有运行级别下,开启防火墙
[root@nyh ~]# chkconfig iptables on
chkconfig重新设置服务后自启动或关闭,需要重启机器reboot才能生效.