精简系统:关闭 Linux 不必要服务,缩减攻击面
刚装好的 Linux 系统默认跑着一堆你用不上的服务,比如打印服务、蓝牙、邮件传输代理。这些服务不仅吃内存,还是黑客眼里的后门。主机选这篇 Linux 教程直接告诉你,哪些服务可以关、怎么关,一步到位缩减攻击面。

为什么必须关闭 Linux 不必要服务?
服务器上每多一个监听端口,就多一个被利用的可能。很多 VPS 被入侵,就是因为默认开了 `sendmail` 或 `rpcbind`,攻击者扫描端口直接打了进来。老手的第一件事就是跑 `ss -tlnp` 看当前开了哪些端口,然后挨个排查。
常见高危服务清单
•蓝牙服务:服务器根本不需要蓝牙,关了还省电。
•CUPS 打印服务:99% 的云服务器不需要打印功能。
•Postfix / Sendmail:不做邮件服务器就别开,容易成为垃圾邮件转发器。
•rpcbind / NFS:内网都不共享文件,外网开这端口等于裸奔。
•Avahi 服务:零配置网络服务,家用设备才用,服务器上纯属浪费。
实战排查与关闭服务步骤
第一步:用 systemctl 查看当前运行的服务
systemctl list-units –type=service –state=running
列出所有正在运行的服务,一眼看出哪些是多余的
如果发现 `bluetooth.service` 或 `cups.service`,直接标记处理。
第二步:停止并禁用无用服务
以关闭蓝牙服务为例:
systemctl stop bluetooth.service
立即停止蓝牙服务,释放资源
systemctl disable bluetooth.service
禁止开机自启,重启后不会复活
注意:`disable` 只是取消开机启动,如果服务被其他进程依赖,手动启动还会跑起来。要彻底锁死,用 `mask`:
systemctl mask bluetooth.service
将服务软链接到 /dev/null,任何启动操作都无效
第三步:检查端口监听变化
ss -tlnp | grep -E '25|111|631'
25 是 SMTP,111 是 rpcbind,631 是 CUPS 打印端口
如果这些端口还在,说明服务没关干净
万一 `ss` 命令找不到,先安装 `iproute2` 包:
apt install iproute2 -y # Debian/Ubuntu
yum install iproute -y # CentOS/RHEL
排障:关闭服务后业务受影响怎么办?
有些服务看似没用,实际被其他核心服务依赖。比如 `rpcbind` 被 NFS 挂载依赖,`sendmail` 被 cron 日志报警依赖。
常见报错场景
报错1:关闭 sendmail 后 cron 任务不发送邮件
如果 cron 邮件无关紧要,直接忽略
或者将 MAILTO="" 加入 crontab
crontab -e
添加一行:MAILTO=""
报错2:关闭 avahi-daemon 后 mDNS 解析失效
如果服务器不需要 .local 域名解析,直接 mask
systemctl mask avahi-daemon.service
报错3:关闭 cups 后打印任务失败
服务器上根本不该有打印任务,确认没有打印机驱动再关
lpstat -p # 查看是否有打印机
如果为空,放心关
老鸟叮嘱:别手滑关了 SSH 服务
这是最常犯的错误。远程服务器上关了 `sshd`,你就只能联系机房重启了。操作前先确认 SSH 服务名:
systemctl status sshd
确认 sshd 是 active (running) 状态
保险做法:先创建一个非 root 用户并加入 `wheel` 或 `sudo` 组,再操作。万一 SSH 挂了,还能通过控制台登录。
useradd -m -G wheel backupadmin
创建 backupadmin 用户并加入 wheel 组
passwd backupadmin
设置密码,别设成 123456
FAQ
Linux SSH 连不上怎么办?
先检查 SSH 服务是否被误关:通过 VPS 控制台登录,运行 `systemctl start sshd`。如果服务正常,检查防火墙:`iptables -L -n` 或 `firewall-cmd –list-all`,确认 22 端口已放行。
VPS 防火墙端口放行后还是访问不了是什么原因?
可能原因有:服务本身没监听在 0.0.0.0(只监听 127.0.0.1);云服务商安全组没有放行;或者 SELinux 拦截了连接。先 `ss -tlnp` 看监听地址,再检查 SELinux 日志:`ausearch -m avc`。
Linux 小白可以直接用 root 账号操作吗?
强烈建议不要。root 权限过大,一条 `rm -rf /` 就能毁掉系统。日常操作用普通用户加 `sudo`,关键命令才用 root。很多 VPS 被入侵就是因为 root 密码泄漏。
BBR 开启后为什么速度没有明显提升?
BBR 只对丢包严重的网络环境有明显效果。如果你的服务器带宽本身就小(比如 1Mbps),开启 BBR 也跑不满。先测本地到服务器的延迟和丢包率:`ping -c 100 服务器IP`,丢包率超过 5% 才值得开 BBR。
关闭服务后系统内存没减少,怎么回事?
`systemctl stop` 只是停止进程,但有些服务的内存可能被缓存占用。用 `free -m` 看 `available` 列,那才是真正可用内存。如果还觉得不够,重启一次系统即可释放缓存。
如何一键查看所有开机自启的服务?
systemctl list-unit-files –type=service –state=enabled
列出所有开机自启的服务,逐个排查
—
转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9525.html 商家投稿邮箱:zhujixuanblog@qq.com
