一、前言:运维与排查,是VPS的“长期保鲜剂” 很多小白搭建完VPS服务后,就“不管不顾”,结果要么过一段时间VPS卡顿、崩溃,要么遇到小问题不知道怎么解决,最后只能重置系统、重新操作,浪费时间和精力。 其实VPS和我们的手机、电脑一样,需要定期“保养”(日常运维),遇到小故障也要会“自救”(问题排查):
- 日常运维:核心是「定期检查、及时备份、清理优化」,不用花费太多时间,每周10分钟,就能让VPS长期稳定运行,避免出现重大故障;
- 问题排查:核心是「精准定位、对症解决」,小白不用懂复杂原理,记住常见问题的排查步骤和解决方案,遇到问题直接“对号入座”,就能快速解决。 重点:本文所有操作,均基于前5篇的知识点(Linux命令、安全加固、性能优化等),全程复制命令即可,适配Ubuntu/CentOS两大主流系统,标注「通用」的命令可直接用,标注系统的按需选择;同时汇总小白最常踩的坑,帮你少走弯路。
二、核心一:VPS日常运维(小白必做,每周10分钟) 日常运维不用复杂操作,重点围绕「状态检查、数据备份、清理优化、安全巡检」四大模块,形成固定习惯,就能最大程度避免VPS出现故障。
(一)定期状态检查(每周1次,5分钟搞定) 重点检查VPS的「内存、磁盘、进程、服务」状态,及时发现异常,避免小问题恶化。
- 内存与磁盘检查(通用)
-
说明:快速查看内存、磁盘使用情况,避免内存不足、磁盘满导致服务崩溃。
-
实操命令(直接复制执行):
- 查看内存使用:free -h (重点看「avail」可用内存,低于100M需及时释放或优化)
- 查看磁盘使用:df -h (重点看「/」根目录的「Avail」可用空间,低于1G需清理无用文件)
- 进程与服务检查(通用)
-
说明:查看核心服务(如Docker、博客服务、SSH)是否正常运行,有无异常占用资源的进程。
-
实操命令:
-
查看进程占用:top (按「P」排CPU、「M」排内存,重点关注占用过高的异常进程)
-
查看核心服务状态(以Docker、SSH为例):
- systemctl status docker
- systemctl status ssh(Ubuntu) / systemctl status sshd(CentOS)
-
补充:显示「active (running)」即为正常运行,显示「inactive (dead)」需重启服务(systemctl restart 服务名称)。
-
- 网络状态检查(通用)
-
说明:当VPS无法连接、服务无法访问时,先检查网络是否正常。
-
实操命令:
-
测试网络连通性:ping baidu.com -c 4 (发送4个数据包,能收到回复即为网络正常)
-
查看端口开放情况(以80、443端口为例):
- Ubuntu:ufw status | grep 80、ufw status | grep 443
- CentOS:firewall-cmd —list-ports | grep 80、firewall-cmd —list-ports | grep 443
-
(二)数据备份(重中之重,每周1次,避免数据丢失) 小白最容易忽略的一步!VPS可能出现故障(如系统崩溃、误操作删除),一旦数据丢失,很难恢复,定期备份能最大程度减少损失,重点备份「配置文件、网站数据、数据库」。
- 基础备份方法(通用,小白首选)
-
说明:用压缩命令备份关键文件/文件夹,保存到本地电脑或VPS其他目录,简单易操作。
-
实操步骤:
-
- 备份配置文件(以SSH配置、Docker配置为例):
- tar -zcvf /root/backup/config_backup.tar.gz /etc/ssh /etc/docker
-
- 备份网站数据(假设网站目录为/home/blog):
- tar -zcvf /root/backup/blog_backup.tar.gz /home/blog
-
- 将备份文件下载到本地(用FinalShell:找到备份文件,右键→下载,保存到电脑);
-
- 备份文件命名规范:备份内容_日期.tar.gz(如 blog_backup_20250509.tar.gz),方便区分。
-
-
避坑提示:备份文件不要保存在VPS根目录(避免磁盘满导致备份失败),建议保存到本地电脑或云存储(如阿里云OSS、百度网盘)。
- Docker容器备份(可选,若使用Docker)
-
说明:如果用Docker搭建了服务(如博客、云盘),需单独备份Docker容器和镜像。
-
实操命令:
- 备份容器(以nginx容器为例):docker commit -p nginx nginx_backup:20250509
- 备份镜像:docker save -o /root/backup/nginx_backup.tar nginx_backup:20250509
- 将镜像备份文件下载到本地,后续恢复时直接导入即可(docker load -i nginx_backup.tar)。
- 自动备份(进阶,可选)
-
说明:设置定时任务,自动备份数据,不用手动操作,适合怕忘事的小白。
-
实操步骤(通用):
-
- 编辑定时任务:crontab -e (第一次编辑会提示选择编辑器,按回车选默认即可);
-
- 在末尾添加一行(每周日凌晨2点自动备份网站数据):
- 0 2 * * 0 tar -zcvf /root/backup/blog_backup_$(date +%Y%m%d).tar.gz /home/blog
-
- 按「Esc」,输入「:wq」保存退出,定时任务自动生效;
-
补充:crontab时间格式:分 时 日 月 周,0 2 * * 0 表示每周日凌晨2点。
-
(三)定期清理优化(每月1次,5分钟搞定) 结合第五篇的性能优化知识点,定期清理无用文件、冗余资源,保持VPS流畅运行,避免资源浪费。
- 系统清理(分系统)
-
Ubuntu系统:
- apt clean (清理软件缓存)
- apt autoremove -y (清理无用依赖包)
- echo "" > /var/log/syslog (清空系统日志)
-
CentOS系统:
- yum clean all (清理软件缓存)
- echo "" > /var/log/messages (清空系统日志)
- 内存与磁盘优化(通用)
- 释放冗余内存:sync && echo 3 > /proc/sys/vm/drop_caches (需root权限)
- 检查磁盘碎片(Ubuntu):fsck /dev/vda1 (需先卸载分区,小白慎用,建议备份后操作)
- 补充:CentOS系统可使用 e2fsck /dev/vda1 检查磁盘碎片,操作前务必备份数据。
- Docker清理(可选)
- 清理停止的容器、无用镜像:docker system prune -f
(四)安全巡检(每月1次,防范未然) 结合第五篇的安全加固知识点,定期检查安全配置,避免安全漏洞,防范黑客入侵。
- 安全配置检查(通用)
-
查看SSH配置是否正常(禁用root登录、启用密钥登录):cat /etc/ssh/sshd_config | grep -E “PermitRootLogin|PasswordAuthentication”
-
查看防火墙状态及开放端口:
- Ubuntu:ufw status
- CentOS:firewall-cmd —list-ports
-
查看fail2ban状态(自动屏蔽恶意IP):systemctl status fail2ban
- 系统更新检查(通用)
-
查看是否有安全更新,及时修复系统漏洞:
- Ubuntu:apt list —upgradable | grep -i security
- CentOS:yum check-update
-
补充:关键更新建议手动安装(apt upgrade -y / yum update -y),安装后重启相关服务。
三、核心二:VPS常见问题排查(小白速查,对号入座) 汇总小白最常遇到的20+常见问题,按「连接问题、服务问题、性能问题、安全问题」分类,每个问题包含「现象+原因+解决方案」,全程复制命令,不用查资料,快速解决。
(一)远程连接问题(最常见,无法连接VPS)
- 问题1:FinalShell/Xshell无法连接VPS,提示「Connection refused」(连接被拒绝)
-
原因:SSH服务未启动、SSH端口错误、防火墙未开放SSH端口。
-
解决方案:
-
- 通过VPS商家控制台的救援工具(如Linode Lish、阿里云救援终端)登录VPS;
-
- 查看SSH服务状态:systemctl status ssh(Ubuntu) / systemctl status sshd(CentOS);
-
- 若服务未启动,重启服务:systemctl restart ssh / systemctl restart sshd;
-
- 检查SSH端口(若修改过端口):cat /etc/ssh/sshd_config | grep Port,确认连接时端口一致;
-
- 检查防火墙是否开放SSH端口(以端口2222为例):
- Ubuntu:ufw allow 2222/tcp && ufw reload
- CentOS:firewall-cmd —permanent —add-port=2222/tcp && firewall-cmd —reload
-
- 问题2:密钥登录失败,提示「Permission denied (publickey)」
-
原因:公钥未正确上传、公钥权限过高、SSH配置未启用密钥登录。
-
解决方案:
-
- 重新上传公钥:ssh-copy-id vpsuser@你的VPSIP(vpsuser是普通账户);
-
- 修改公钥权限(避免权限过高):chmod 600 ~/.ssh/authorized_keys;
-
- 检查SSH配置:cat /etc/ssh/sshd_config | grep PubkeyAuthentication,确保为「yes」;
-
- 重启SSH服务:systemctl restart ssh / systemctl restart sshd。
-
- 问题3:连接时提示「Operation timed out」(连接超时)
-
原因:VPS服务器宕机、IP被封禁、网络问题。
-
解决方案:
-
- 登录VPS商家控制台,查看VPS状态,若宕机,重启VPS;
-
- 检查本地网络,切换网络(如手机热点)尝试连接;
-
- 若IP被封禁,联系VPS商家解封,或更换VPSIP(部分商家支持)。
-
(二)服务运行问题(搭建服务后无法访问)
- 问题1:搭建博客/网站后,浏览器无法访问,提示「无法访问此网站」
-
原因:服务未启动、防火墙未开放80/443端口、域名未解析、配置文件错误。
-
解决方案:
-
- 查看服务状态(以Nginx为例):systemctl status nginx,未启动则重启:systemctl start nginx;
-
- 开放80/443端口:
- Ubuntu:ufw allow 80/tcp && ufw allow 443/tcp && ufw reload
- CentOS:firewall-cmd —permanent —add-port=80/tcp —add-port=443/tcp && firewall-cmd —reload
-
- 检查域名解析:在域名服务商后台,确认域名解析到VPS的公网IP,解析生效需10-30分钟;
-
- 直接用VPSIP访问(如http://你的VPSIP),若能访问,说明是域名解析问题;若不能,检查服务配置文件。
-
- 问题2:Docker容器启动失败,提示「port is already allocated」(端口已被占用)
-
原因:容器要使用的端口(如80、443)已被其他服务(如Nginx)占用。
-
解决方案:
-
- 查看端口占用情况:netstat -tuln | grep 80(以80端口为例),找到占用端口的进程PID;
-
- 关闭占用端口的进程:kill -9 PID(PID是上一步查到的进程ID);
-
- 重新启动Docker容器,或修改容器端口(如将80端口映射为8080:docker run -d -p 8080:80 nginx)。
-
- 问题3:服务启动后,一会儿就崩溃(如Docker容器、博客服务)
-
原因:内存不足、虚拟内存未设置、服务配置错误。
-
解决方案:
-
- 查看内存使用:free -h,若可用内存过低,释放内存:sync && echo 3 > /proc/sys/vm/drop_caches;
-
- 若未设置虚拟内存,按第五篇方法设置虚拟内存(低配VPS必做);
-
- 查看服务日志,排查配置错误(以Docker容器为例):docker logs 容器名称,根据日志提示修改配置。
-
(三)性能问题(VPS卡顿、运行缓慢)
- 问题1:VPS卡顿,执行命令反应缓慢
-
原因:CPU/内存占用过高、磁盘满、进程冗余。
-
解决方案:
-
- 查看CPU/内存占用:top,按「P」找到占用过高的进程,关闭无用进程:kill -9 PID;
-
- 查看磁盘使用:df -h,若磁盘满,清理无用文件(参考本文日常运维的清理步骤);
-
- 释放冗余内存:sync && echo 3 > /proc/sys/vm/drop_caches。
-
- 问题2:磁盘读写速度慢,上传/下载文件卡顿
-
原因:磁盘碎片过多、磁盘缓存未开启、VPS磁盘配置过低。
-
解决方案:
-
- 优化磁盘缓存:vim /etc/sysctl.conf,添加「vm.dirty_ratio = 20」「vm.dirty_background_ratio = 5」,执行sysctl -p生效;
-
- 检查并清理磁盘碎片(参考本文日常运维的磁盘优化步骤);
-
- 若长期卡顿,建议升级VPS磁盘配置(如将机械硬盘换成SSD)。
-
- 问题3:虚拟内存设置后,VPS依然卡顿
-
原因:虚拟内存是磁盘模拟的,速度较慢,长期依赖虚拟内存会导致卡顿。
-
解决方案:
-
- 关闭无用进程,减少内存占用;
-
- 优化服务配置,减少内存消耗(如限制Docker容器内存);
-
- 若仍卡顿,建议升级VPS物理内存(如1核1G升级为1核2G)。
-
(四)安全问题(疑似被入侵、权限异常)
- 问题1:VPS被入侵,出现陌生文件、陌生进程
-
原因:安全配置不到位(如弱密码、未禁用root登录)、系统存在漏洞。
-
解决方案:
-
- 立即重启VPS,暂时阻止黑客进一步操作:reboot;
-
- 通过VPS商家控制台重置系统(彻底清除入侵文件,小白首选);
-
- 重置后,按第五篇安全加固步骤重新配置(禁用root登录、启用密钥登录、优化防火墙);
-
- 恢复备份的数据(若有备份),避免数据丢失。
-
- 问题2:执行命令提示「Permission denied」(权限不足)
-
原因:当前用户没有执行该命令的权限,或文件/文件夹权限过低。
-
解决方案:
-
- 切换到root账户(获得最高权限):su root,输入root密码;
-
- 给文件/文件夹提升权限(如给blog目录提升权限):chmod -R 755 /home/blog;
-
- 若为普通账户,给普通账户授权:usermod -aG sudo vpsuser,执行命令时加sudo(如sudo apt update)。
-
- 问题3:fail2ban封禁自己的IP,无法登录VPS
-
原因:多次输错密钥/密码,被fail2ban自动封禁IP。
-
解决方案:
-
- 通过VPS商家控制台的救援工具登录VPS;
-
- 查看被封禁的IP:fail2ban-client status sshd;
-
- 解封IP(替换为自己的IP):fail2ban-client set sshd unbanip 你的IP;
-
- 若想调整封禁规则,编辑配置文件:vim /etc/fail2ban/jail.local,修改封禁时间、最大尝试次数。
-
四、核心三:小白必避的10个VPS坑(终篇重点,少走弯路) 结合系列6篇内容,汇总小白最常踩的10个坑,每个坑标注「坑点+避坑方法」,帮你避开所有新手雷区,节省时间和精力。
- 坑1:用root账户直接远程登录,不设置普通账户
- 避坑方法:按第五篇步骤,创建普通账户,禁用root远程登录,降低被入侵风险。
- 坑2:不备份数据,遇到故障只能重置系统
- 避坑方法:每周备份一次关键数据(配置文件、网站数据),保存到本地电脑,避免数据丢失。
- 坑3:随意执行陌生命令,导致系统崩溃
- 避坑方法:只执行本文和系列教程中的命令,陌生命令先查用途,尤其是rm -rf类删除命令,慎用!
- 坑4:开放所有端口,不优化防火墙
- 避坑方法:只开放必要端口(如SSH、80、443),关闭所有无用端口,安装fail2ban自动屏蔽恶意IP。
- 坑5:低配VPS(1核1G)不设置虚拟内存,直接搭建服务
- 避坑方法:1核1G VPS必设置虚拟内存(建议2G),否则服务容易崩溃、卡顿。
- 坑6:不清理无用文件,导致磁盘满、VPS卡顿
- 避坑方法:每月清理一次无用文件、软件缓存、日志文件,保持磁盘有足够可用空间。
- 坑7:密钥登录失败,直接重置系统
- 避坑方法:通过VPS商家救援工具登录,重新上传公钥、检查SSH配置,无需重置系统。
- 坑8:Docker容器端口冲突,不知道如何解决
- 避坑方法:用netstat -tuln查看端口占用,关闭占用端口的进程,或修改容器端口映射。
- 坑9:忽略系统更新,导致安全漏洞
- 避坑方法:每月检查一次系统安全更新,及时安装,修复漏洞,提升安全性。
- 坑10:遇到问题不排查,直接放弃VPS
- 避坑方法:对照本文常见问题排查,90%的小白问题都能快速解决,实在解决不了,再重置系统重新操作。
五、系列终篇:总结与后续展望 到这里,VPS小白入门系列就正式结束啦!从第一篇的「VPS认知与选购」,到第六篇的「日常运维与问题排查」,我们一步步从零基础,成长为能独立搭建、维护VPS的新手,回顾整个系列,核心就是这4个关键点:
- 选购:按需选择,小白优先选Ubuntu系统、1核1G起步,性价比优先,避开低价陷阱;
- 操作:牢记Linux常用命令,不用死记硬背,用到时复制即可,重点掌握目录、文件、服务操作;
- 安全:禁用root登录、启用密钥登录、优化防火墙,做好基础加固,防范入侵;
- 运维:定期检查、备份数据、清理优化,遇到问题对照排查,养成良好的运维习惯。 后续展望:掌握了这些基础能力后,你可以尝试搭建更多私人服务,比如:私人云盘(Nextcloud)、导航网站、轻量博客、VPN(合法合规前提下)等,进一步挖掘VPS的用途;如果想深入学习,还可以研究Linux进阶、Docker集群、网站优化等内容,让VPS发挥更大价值。 最后,感谢大家一路跟随!如果在VPS使用过程中,遇到本文未覆盖的问题,欢迎联系我,我会尽力为你解答;也希望大家能把学到的知识用到实际中,拥有属于自己的私人服务,享受科技带来的便利~ VPS小白入门系列(全6篇),圆满结束!🎉