这里整理了一些 VPS 服务器日常运维的实用技巧,帮助你更好地管理你的服务器。
SSH 连接优化
SSH 密钥登录
# 生成SSH密钥对
# 复制公钥到服务器ssh-copy-id user@server_ip
# 或者手动复制cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
SSH 配置优化
编辑 ~/.ssh/config
文件:
Host myserver HostName 192.168.1.100 User root Port 22 IdentityFile ~/.ssh/id_rsa ServerAliveInterval 60 ServerAliveCountMax 3
服务器 SSH 安全配置
编辑 /etc/ssh/sshd_config
:
# 禁用密码登录PasswordAuthentication no
# 禁用root登录PermitRootLogin no
# 修改默认端口Port 2222
# 限制登录用户AllowUsers username
# 重启SSH服务systemctl restart sshd
系统安全加固
防火墙配置
# UFW防火墙(Ubuntu/Debian)ufw enableufw default deny incomingufw default allow outgoingufw allow sshufw allow 80/tcpufw allow 443/tcp
# iptables防火墙(CentOS/RHEL)iptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPTiptables -A INPUT -j DROP
Fail2Ban 防暴力破解
# 安装Fail2Banapt install fail2ban # Ubuntu/Debianyum install fail2ban # CentOS/RHEL
# 配置Fail2Bancp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 编辑配置文件vim /etc/fail2ban/jail.local
系统监控
系统资源监控
# 实时监控htop # 进程监控iotop # IO监控nethogs # 网络使用监控iftop # 网络流量监控
# 系统负载uptime # 系统负载w # 当前登录用户last # 登录历史
日志监控
# 系统日志tail -f /var/log/syslog # 系统日志tail -f /var/log/auth.log # 认证日志tail -f /var/log/nginx/access.log # Nginx访问日志
# 日志分析grep "Failed password" /var/log/auth.log | tail -10grep "404" /var/log/nginx/access.log | wc -l
服务管理
Systemd 服务管理
# 服务状态systemctl status nginxsystemctl is-active nginxsystemctl is-enabled nginx
# 服务控制systemctl start nginxsystemctl stop nginxsystemctl restart nginxsystemctl reload nginx
# 开机自启systemctl enable nginxsystemctl disable nginx
进程管理
# 查看服务进程ps aux | grep nginxpgrep -f nginx
# 重启服务systemctl restart nginx# 或者pkill -f nginx && nginx
磁盘管理
磁盘空间清理
# 查找大文件find / -type f -size +100M -exec ls -lh {} \;du -ah / | sort -rh | head -20
# 清理系统缓存apt clean && apt autoremove # Ubuntu/Debianyum clean all # CentOS/RHEL
# 清理日志文件journalctl --vacuum-time=7d # 清理7天前的日志> /var/log/nginx/access.log # 清空日志文件
磁盘挂载
# 查看磁盘lsblkfdisk -l
# 格式化磁盘mkfs.ext4 /dev/sdb1
# 挂载磁盘mount /dev/sdb1 /mnt/data
# 永久挂载(编辑/etc/fstab)echo "/dev/sdb1 /mnt/data ext4 defaults 0 2" >> /etc/fstab
备份策略
数据库备份
# MySQL备份mysqldump -u root -p database_name > backup.sqlmysqldump -u root -p --all-databases > all_databases.sql
# 恢复数据库mysql -u root -p database_name < backup.sql
文件备份
# 使用rsync备份rsync -avz /home/user/ user@backup-server:/backup/user/
# 使用tar备份tar -czf backup_$(date +%Y%m%d).tar.gz /important/data/
# 自动备份脚本#!/bin/bashBACKUP_DIR="/backup"DATE=$(date +%Y%m%d_%H%M%S)tar -czf $BACKUP_DIR/website_$DATE.tar.gz /var/www/html/find $BACKUP_DIR -name "website_*.tar.gz" -mtime +7 -delete
性能优化
内存优化
# 查看内存使用free -hcat /proc/meminfo
# 清理缓存sync && echo 3 > /proc/sys/vm/drop_caches
# 配置swapfallocate -l 2G /swapfilechmod 600 /swapfilemkswap /swapfileswapon /swapfileecho '/swapfile none swap sw 0 0' >> /etc/fstab
网络优化
# 调整TCP参数echo 'net.core.rmem_max = 16777216' >> /etc/sysctl.confecho 'net.core.wmem_max = 16777216' >> /etc/sysctl.confecho 'net.ipv4.tcp_rmem = 4096 87380 16777216' >> /etc/sysctl.confsysctl -p
常用脚本
系统信息脚本
#!/bin/bashecho "=== 系统信息 ==="echo "主机名: $(hostname)"echo "系统: $(uname -a)"echo "运行时间: $(uptime)"echo "磁盘使用: $(df -h / | tail -1 | awk '{print $5}')"echo "内存使用: $(free | grep Mem | awk '{printf "%.2f%%", $3/$2 * 100.0}')"echo "CPU负载: $(cat /proc/loadavg | awk '{print $1, $2, $3}')"
自动更新脚本
#!/bin/bash# 系统更新脚本apt update && apt upgrade -y # Ubuntu/Debian# yum update -y # CentOS/RHEL
# 重启服务systemctl restart nginxsystemctl restart php7.4-fpm
echo "系统更新完成: $(date)"
这些技巧可以帮助你更好地管理 VPS 服务器,提高安全性和性能。记得定期备份重要数据!