海南网站建设培训wordpress 图片加边框
1. 守护进程(Daemon)
定义:
守护进程是后台运行的“隐形服务员”,默默执行特定任务,无需用户手动操作。
-
类比:像一家 24 小时营业的便利店,无论你是否在店内,它都在后台运行(如 Web 服务器、数据库服务)。
-
特点:
-
无终端关联(
TTY显示为?)。 -
通常在系统启动时自动运行,生命周期与系统一致。
-
2. systemd 守护进程的功能
systemd 是 Linux 系统的“大管家”,负责管理所有守护进程和服务,核心功能包括:
-
服务管理:启动、停止、重启服务(如
nginx、mysql)。 -
依赖管理:按顺序启动依赖服务(比如先启动网络再启动 Web 服务)。
-
日志管理:通过
journalctl查看所有服务的日志(类似“服务运行日记”)。 -
系统初始化:作为系统第一个进程(PID=1),接管所有启动任务。
常用命令:
systemctl start nginx # 启动服务
systemctl status nginx # 查看服务状态
journalctl -u nginx # 查看服务日志
3. systemd 单元(Unit)
定义:单元是 systemd 管理的配置文件,定义如何操作资源(服务、设备、定时任务等)。
常见单元类型:
-
.service:管理后台服务(如nginx.service)。 -
.timer:定时任务(类似cron,但更灵活)。 -
.socket:监听网络或本地套接字(按需启动服务)。 -
.mount:管理文件系统挂载点。 -
.target:定义系统状态(如multi-user.target表示多用户模式)。
单元文件路径:
-
系统级:
/etc/systemd/system/ -
用户级:
~/.config/systemd/user/
4. restart vs reload 的区别
-
systemctl restart nginx:-
操作:先停止服务,再重新启动。
-
影响:服务进程完全重启,短暂中断。
-
场景:修改核心配置(如监听端口)。
-
-
systemctl reload nginx:-
操作:通知服务重新加载配置文件,不重启进程。
-
影响:服务不中断,持续运行。
-
场景:修改非核心配置(如日志文件路径)。
-
通俗比喻:
-
restart是关店重新开张(中断营业)。 -
reload是让员工换上新工作服继续营业(无缝衔接)。
5. 屏蔽服务的作用与 mask vs disable
-
屏蔽服务(
mask):-
作用:彻底禁止服务被启动(手动和自动都不行)。
-
原理:创建一个指向
/dev/null的符号链接,覆盖原服务文件。 -
命令:
sudo systemctl mask nginx
-
-
禁用服务(
disable):-
作用:仅禁止开机自启动,但允许手动启动。
-
命令:
sudo systemctl disable nginx
-
使用场景:
-
mask:永久禁用高风险服务(如陈旧的远程管理工具)。 -
disable:临时关闭不常用服务(如开发环境中的测试服务)。
6. SSH 免密登录的实现
步骤:
-
生成密钥对(本地电脑操作):
ssh-keygen -t rsa # 默认生成 id_rsa(私钥)和 id_rsa.pub(公钥) -
上传公钥到服务器:
ssh-copy-id user@server_ip # 自动将公钥添加到服务器的 ~/.ssh/authorized_keys -
验证登录:
ssh user@server_ip # 无需输入密码
权限要求:
-
服务器上的
~/.ssh目录权限必须为700。 -
~/.ssh/authorized_keys文件权限必须为600。
7. SSH 公钥与私钥的区别
| 公钥 | 私钥 |
|---|---|
| 锁头:可以公开给任何人 | 钥匙:必须严格保密 |
存放在服务器 ~/.ssh/authorized_keys | 存放在本地 ~/.ssh/id_rsa |
| 用于加密数据 | 用于解密数据或签名验证 |
安全原则:私钥泄露等于家门钥匙丢失,需立即更换密钥对!
8. 禁止超级用户(root)远程登录
为什么?
-
风险:root 权限过高,一旦被爆破,攻击者可直接掌控服务器。
-
最佳实践:通过普通用户登录后,再
sudo提权。
设置方法:
-
编辑 SSH 配置文件:
sudo vim /etc/ssh/sshd_config -
修改以下参数:
PermitRootLogin no # 禁止 root 登录 -
重启 SSH 服务:
sudo systemctl restart sshd
9. 禁止基于密码的身份验证
为什么?
-
密码风险:弱密码易被暴力破解,密钥认证更安全。
设置方法:
-
编辑 SSH 配置文件:
PasswordAuthentication no # 关闭密码登录 PubkeyAuthentication yes # 启用密钥登录(默认已开启) -
重要:确保已配置公钥登录,否则会把自己锁在门外!
-
重启 SSH 服务:
sudo systemctl restart sshd
10. 修改 SSH 配置后如何生效?
-
重启服务:
sudo systemctl restart sshd # 完全重启服务(断开当前连接) -
重新加载配置(推荐):
sudo systemctl reload sshd # 平滑重启,不断开现有连接
