跳到内容
xxxu-me
返回

VPS常用命令全攻略 | 从基础操作到高级管理,一篇搞定

更新于:

VPS常用命令全攻略

作为一名服务器管理员,掌握常用的VPS命令是必不可少的技能。本文将为你介绍从基础操作到高级管理的各种VPS常用命令,帮助你更高效地管理和维护你的服务器。

一、基础操作命令

1. 系统信息查看

# 查看系统版本
cat /etc/os-release

# 查看内核版本
uname -r

# 查看系统架构
uname -m

# 查看系统负载
uptime

# 查看内存使用情况
free -h

# 查看磁盘使用情况
df -h

# 查看CPU信息
lscpu

2. 文件和目录操作

# 列出目录内容
ls -la

# 创建目录
mkdir -p /path/to/directory

# 切换目录
cd /path/to/directory

# 复制文件或目录
cp -r source destination

# 移动文件或目录
mv source destination

# 删除文件
rm file.txt

# 删除目录及内容
rm -rf directory

# 创建空文件
touch file.txt

# 查看文件内容
cat file.txt

# 查看文件前n行
head -n 10 file.txt

# 查看文件后n行
tail -n 10 file.txt

# 实时查看文件变化
tail -f file.txt

二、系统管理命令

1. 用户管理

# 创建用户
useradd username

# 设置用户密码
passwd username

# 删除用户
userdel username

# 查看当前登录用户
who

# 查看用户登录历史
last

# 切换用户
su - username

2. 进程管理

# 查看所有进程
ps aux

# 查看进程树
pstree

# 查看占用CPU和内存的进程
top

# 终止进程
kill -9 PID

# 查看进程端口
lsof -i :80

3. 服务管理

# 查看服务状态
systemctl status service_name

# 启动服务
systemctl start service_name

# 停止服务
systemctl stop service_name

# 重启服务
systemctl restart service_name

# 设置服务开机自启
systemctl enable service_name

# 禁止服务开机自启
systemctl disable service_name

三、网络配置命令

1. 网络状态查看

# 查看网络接口
ifconfig

# 查看网络路由
route -n

# 查看网络连接
netstat -tuln

# 查看网络连接(更详细)
ss -tuln

# 测试网络连接
ping example.com

# 测试端口连接
telnet example.com 80

# 查看DNS配置
cat /etc/resolv.conf

2. 防火墙管理

# 查看防火墙状态
firewall-cmd --state

# 查看开放端口
firewall-cmd --list-ports

# 开放端口
firewall-cmd --permanent --add-port=80/tcp

# 关闭端口
firewall-cmd --permanent --remove-port=80/tcp

# 重新加载防火墙规则
firewall-cmd --reload

# 使用iptables查看规则
iptables -L

四、安全加固命令

1. 系统更新

# 更新软件包列表
apt update  # Debian/Ubuntu
yum update  # CentOS/RHEL

# 升级软件包
apt upgrade -y  # Debian/Ubuntu
yum upgrade -y  # CentOS/RHEL

2. SSH配置

# 查看SSH服务状态
systemctl status sshd

# 编辑SSH配置文件
vi /etc/ssh/sshd_config

# 重启SSH服务
systemctl restart sshd

# 生成SSH密钥
ssh-keygen -t rsa -b 4096

# 复制SSH密钥到远程服务器
ssh-copy-id username@server_ip

3. 日志查看

# 查看系统日志
tail -f /var/log/syslog  # Debian/Ubuntu
tail -f /var/log/messages  # CentOS/RHEL

# 查看安全日志
tail -f /var/log/auth.log  # Debian/Ubuntu
tail -f /var/log/secure  # CentOS/RHEL

# 查看HTTP日志
tail -f /var/log/apache2/access.log  # Apache
tail -f /var/log/nginx/access.log  # Nginx

五、磁盘管理命令

1. 磁盘分区

# 查看磁盘分区
fdisk -l

# 分区工具
fdisk /dev/sda

# 格式化分区
mkfs.ext4 /dev/sda1

# 挂载分区
mount /dev/sda1 /mnt

# 查看挂载情况
mount

# 设置开机自动挂载
vi /etc/fstab

2. 磁盘空间管理

# 查看磁盘使用情况
df -h

# 查看目录大小
du -sh /path/to/directory

# 查找大文件
find / -type f -size +100M 2>/dev/null

# 清理系统垃圾
apt autoclean  # Debian/Ubuntu
yum clean all  # CentOS/RHEL

六、实用工具命令

1. 压缩和解压缩

# 压缩文件为tar.gz
tar -czvf archive.tar.gz /path/to/directory

# 解压tar.gz文件
tar -xzvf archive.tar.gz

# 压缩文件为zip
zip -r archive.zip /path/to/directory

# 解压zip文件
unzip archive.zip

2. 网络工具

# 下载文件
wget https://example.com/file.zip

# 下载文件(更强大)
curl -O https://example.com/file.zip

# 测试网络速度
speedtest-cli

# 查看公网IP
curl ipinfo.io/ip

3. 系统监控

# 实时监控系统资源
top

# 更美观的系统监控
htop

# 查看磁盘I/O
iotop

# 查看网络流量
iftop

七、常见问题排查

1. 系统负载高

# 查看占用CPU的进程
top -o %CPU

# 查看占用内存的进程
top -o %MEM

# 查看磁盘I/O使用情况
iostat -x

2. 网络问题

# 检查网络连通性
ping -c 4 example.com

# 检查DNS解析
nslookup example.com

# 检查路由
traceroute example.com

3. 服务无法启动

# 查看服务日志
journalctl -u service_name

# 检查端口是否被占用
netstat -tuln | grep port_number

# 检查配置文件语法
nginx -t  # Nginx
apachectl configtest  # Apache

八、VPS初始化与配置最佳实践

1. 初始化系统

# 首次登录后更新系统
apt update && apt upgrade -y  # Debian/Ubuntu
yum update && yum upgrade -y  # CentOS/RHEL

# 安装必要的工具包
apt install -y wget curl vim htop unzip  # Debian/Ubuntu
yum install -y wget curl vim htop unzip  # CentOS/RHEL

# 设置时区
timedatectl set-timezone Asia/Shanghai

# 关闭 selinux(仅CentOS/RHEL)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

2. 安全配置

# 创建新用户并添加到sudo组
useradd -m -s /bin/bash newuser
usermod -aG sudo newuser
passwd newuser

# 禁用root远程登录
sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config

# 更改SSH默认端口
sed -i 's/#Port 22/Port 2222/g' /etc/ssh/sshd_config

# 启用密钥认证并禁用密码登录
sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config

# 重启SSH服务
systemctl restart sshd

九、常见应用部署命令

1. Web服务器部署

# 安装Nginx
apt install -y nginx  # Debian/Ubuntu
yum install -y nginx  # CentOS/RHEL

# 安装Apache
apt install -y apache2  # Debian/Ubuntu
yum install -y httpd  # CentOS/RHEL

# 安装PHP
apt install -y php php-fpm  # Debian/Ubuntu
yum install -y php php-fpm  # CentOS/RHEL

# 安装MySQL
apt install -y mysql-server  # Debian/Ubuntu
yum install -y mariadb-server  # CentOS/RHEL

2. 应用容器化

# 安装Docker
curl -fsSL https://get.docker.com | sh

# 启动Docker服务
systemctl start docker
systemctl enable docker

# 安装Docker Compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

# 运行容器
docker run -d --name nginx -p 80:80 nginx

十、VPS性能优化

1. 系统参数优化

# 调整文件描述符限制
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf

# 调整内核参数
cat >> /etc/sysctl.conf << EOF
# 网络优化
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15

# 内存管理
vm.swappiness = 10
vm.overcommit_memory = 1
EOF

# 应用内核参数
sysctl -p

2. 服务优化

# 禁用不必要的服务
systemctl stop postfix
systemctl disable postfix

# 优化Nginx配置
cat > /etc/nginx/nginx.conf << EOF
user www-data;
worker_processes auto;
events {
    worker_connections 65535;
    use epoll;
}
http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    gzip on;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    include /etc/nginx/conf.d/*.conf;
}
EOF

# 重启Nginx
systemctl restart nginx

十一、备份与恢复

1. 数据备份

# 备份重要文件
tar -czvf backup_$(date +%Y%m%d).tar.gz /etc /var/www /home

# 备份MySQL数据库
mysqldump -u root -p --all-databases > backup_$(date +%Y%m%d).sql

# 自动备份脚本
cat > /root/backup.sh << EOF
#!/bin/bash
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d)

mkdir -p $BACKUP_DIR

# 备份文件
tar -czvf $BACKUP_DIR/files_$DATE.tar.gz /etc /var/www

# 备份数据库
mysqldump -u root -pYourPassword --all-databases > $BACKUP_DIR/db_$DATE.sql

# 删除7天前的备份
find $BACKUP_DIR -type f -mtime +7 -delete
EOF

chmod +x /root/backup.sh

# 添加到定时任务
crontab -e
# 添加以下行(每天凌晨2点执行备份)
# 0 2 * * * /root/backup.sh

2. 数据恢复

# 恢复文件
tar -xzvf backup_20260409.tar.gz -C /

# 恢复MySQL数据库
mysql -u root -p < backup_20260409.sql

十二、总结

掌握这些VPS常用命令和最佳实践,将大大提高你的服务器管理效率和安全性。本文涵盖了从基础操作到高级管理的各种命令,包括系统初始化、安全配置、应用部署、性能优化和备份恢复等方面。

当然,不同的Linux发行版可能会有一些命令差异,本文主要基于Debian/Ubuntu和CentOS/RHEL系统。在实际使用中,你可能需要根据自己的系统类型进行适当调整。

希望本文对你有所帮助!


分享本文至:

Previous Post
Docker 小白入门系列(1):Docker 到底是个啥?为啥我劝你一定要学?