学习源
服务
服务: 常驻在内存中的程序,且可以提供一些系统或网络功能,那就是服务。
计算机中的系统服务有很多,比如:
- apache提供web服务
- ftp提供文件下载上传服务
- ssh提供了远程连接服务
- 防火墙提供了安全防护服务等等
独立服务
从CentOS7 Linux开始,系统里的网络服务启动已经从传统的service改成了systemctl(一个systemd工具,主要负责控制systemd系统和服务管理器),管理开机自启动的命令也从chkconfig改为了systemctl,由systemctl一个命令代替了CentOS7以前系统中的service和chkconfig两个命令。
独立服务原理图
独立服务: 由systemd管理,服务独立运行在内存,服务响应更快,但占用的内存更多
独立服务:
服务启动脚本:/usr/lib/systemd/system目录下
sysytemctl [command] [unit]
command:
start: 启动后面接的服务
stop: 停止后面接的服务
restart: 重启后面的服务
reload: 重载后面的服务,跟restart不同,reload的主进程PID是不变的
enable: 开机启动
在/etc/systemd/system/multi.user.target.wants目录下创建了一个链接vsftpd.service
disable: 开机不启动
移除了链接
status: 服务状态
kill: 向服务发送信号,终止进程信号
is-active: 检查服务是否正在运行,unknown表示没有,active表示有
is-enabled: 检查服务是否默认开机启动,disabled表示没有,enabled表示有
mask: 禁用服务
/dev/null
unmask: 启动服务
show: 列出服务的配置参数
非独立服务
Xinetd 托管服务。又名:超级守护进程,可以把一些小服务放到xinetd里进行托管。拖管后的好处就是可以使用xinetd强大的参数来控制这些服务,并且增强安全性。(比如一个小服务没有一些控制功能,但支持xinetd拖管,你就可以拖管并使用xinetd的参数来控制它)。
非独立服务原理图
配置文件: /etc/xinetd.conf
托管目录: /etc/xinetd.d
一个服务想要被xinetd托管,就需要在托管目录下建立文件
文件格式如下:
service telnet
{
disable = no
socket_type = stream
protocol = tcp
...
}
最后启动xinetd服务:systemctl start xinetd
更多选项
disable = no / yes 禁用还是启用服务
flags = REUSE
socket_type = stream / dgram TCP还是UDP
protocol = tcp 使用协议类型
wait = no / yes no表示单线程服务;yes表示多线程服务;这是设置并不并发
user = root 运行该服务的用户
server = /bin/xxx 该服务的路径
server_args = -i 传递给该服务的参数
log_on_failure += USERID 失败时记录日志
log_type = file /var/xxx.log 指定日志记录位置
port = 7772 服务端口
instances = 3 最大连接数
per_source = 1 每个源IP同一时刻只能连接几次
access_times = 9:00 - 18:00 只允许9:00 - 18:00才能ssh访问
only_from = 192.168.1.0/24 只允许只个网段访问
192.168.1.10 192.168.1.100 只允许这两个访问,空格分隔
no_access = 192.168.1.10 192.168.1.100 不允许这两个访问;写网段也可以