如何禁止端口的开机自启?
美国、香港服务器
如何禁止端口的开机自启?
07-03 来源:
一、原理说明
端口开机自动开放,本质是占用该端口的服务 / 程序设置了开机自启。
想要禁止端口开机开放:
找到端口对应的服务名
停止当前服务 + 禁用开机自启(最常用)
高危场景可直接屏蔽服务,彻底禁止被启动
防火墙 + 云安全组双重拦截兜底
二、第一步:先查端口对应的服务
bash
运行
# 查看所有监听端口、进程PID、服务名
ss -ntulp
示例输出:
plaintext
LISTEN 0 128 0.0.0.0:3306 0.0.0.0:* users:(("mysqld",pid=1823,fd=34))
服务名:mysqld
三、方式 1:systemctl 标准禁用(CentOS7+/Rocky/Ubuntu16+ 主流)
1. 常用一键命令(推荐)
bash
运行
# 停止当前服务 + 禁止开机自启
systemctl disable --now 服务名
示例:
bash
运行
# 关闭FTP 21端口
systemctl disable --now vsftpd
# 关闭MySQL 3306端口
systemctl disable --now mysqld
# 关闭Redis 6379端口
systemctl disable --now redis
2. 分开执行(先停再禁自启)
bash
运行
# 停止正在运行的服务
systemctl stop nginx
# 禁止开机启动
systemctl disable nginx
3. 验证是否禁用成功
bash
运行
systemctl is-enabled nginx
返回 disabled 代表已禁止开机自启。
4. 彻底屏蔽(最高安全级别,防止其他服务依赖拉起)
就算手动执行 systemctl start 也启动不了:
bash
运行
systemctl mask vsftpd
恢复:
bash
运行
systemctl unmask vsftpd
四、方式 2:自定义脚本 / 非 systemd 程序(挖矿、第三方程序)
如果进程没有对应的 .service 服务文件,大概率是以下几种自启方式:
1. 检查定时任务 crontab
bash
运行
# 当前用户定时任务
crontab -l
# 系统全局定时任务
grep -rE "curl|wget|./" /etc/cron.* /var/spool/cron/
发现恶意拉脚本、启动程序的定时任务,直接清空:
bash
运行
crontab -r
2. 检查 /etc/rc.local 开机脚本
bash
运行
cat /etc/rc.local
删除里面启动该程序的命令。
3. 检查系统初始化脚本 /etc/init.d/
bash
运行
ls /etc/init.d/
# 禁用旧版SysV服务
chkconfig 服务名 off
4. 临时目录恶意程序自启
常见木马放在 /tmp、/var/tmp、/dev/shm,杀掉进程并删除可执行文件:
bash
运行
kill -9 PID
rm -rf /tmp/恶意程序文件名
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快