我拿到VPS服务器必做的那些事
该教程仅针对于Debian系统。
一、系统基本设置
1. 更新软件库
apt update -y && apt upgrade -y
2. 更新、安装必备软件
apt install sudo curl wget nano vim -y
3. 校正系统时间
将时区改为改成上海
sudo timedatectl set-timezone Asia/Shanghai
- 查看当前时区:
timedatectl
- 列出所有时区:
timedatectl list-timezones
- 时间同步
# 检查时间同步状态 timedatectl status # 启用自动时间同步 timedatectl set-ntp true # 手动触发时间同步 systemctl restart systemd-timesyncd
如果需要更精确的时间同步,可以安装和使用NTP:
# 安装NTPsec apt install ntpsec # 启动并启用NTP服务 systemctl start ntpsec # 设置开机自启 systemctl enable ntpsec # 查看服务状态(确认是否正常运行) sudo systemctl status ntpsec # 验证时间同步是否生效(需先安装ntpstat) apt install ntpstat ntpstat
二、TCP参数调优
通过调整各种系统和网络参数来优化服务器的性能。
实现方法:
- 拥塞控制算法:通过慢启动、拥塞避免、快重传和快恢复等算法避免网络拥塞。不同的拥塞控制算法(如Cubic、BBR、Reno)适用于不同的网络环境。调优这些算法的参数可以在避免拥塞的同时最大化吞吐量。
- 缓冲区管理:TCP的发送和接收缓冲区直接影响性能。缓冲区过小会限制吞吐量,过大则可能导致内存浪费和延迟增加。合理设置socket缓冲区大小需要考虑带宽延迟积和应用特性。
- 超时和重传机制:RTO(重传超时)算法根据RTT动态调整超时时间。调优相关参数可以在网络条件变化时快速适应,减少不必要的重传,提高传输效率。
- 连接管理优化:通过调整TIME_WAIT状态的管理、SYN队列大小、keepalive等参数提升服务器的并发处理能力和资源利用率。
手动开启BBR+FQ的步骤
- 确认内核版本支持 BBR(需要 4.9+):
uname -r
- 创建专门的配置文件( 避免直接修改
/etc/sysctl.conf):
sudo nano /etc/sysctl.d/yuju-bbr.conf
- 在文件末尾添加以下内容:
net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr
- 使配置生效
sudo sysctl -p /etc/sysctl.d/yuju-bbr.conf
附汇总命令一行执行版:
sudo sh -c 'cat > /etc/sysctl.d/yuju-bbr.conf << EOF net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr EOF' && sudo sysctl -p /etc/sysctl.d/yuju-bbr.conf
查看TCP拥塞控制算法和队列调度器
# 查看当前使用的拥塞控制算法 sysctl net.ipv4.tcp_congestion_control # 查看系统支持的所有拥塞控制算法 sysctl net.ipv4.tcp_available_congestion_control # 查看默认的队列调度器 sysctl net.core.default_qdisc # 检查BBR模块是否加载 lsmod | grep bbr
三、添加 SWAP
在 Linux 系统中,
SWAP(交换空间)是指一块磁盘空间,用于在物理内存(RAM)不足时,作为临时的扩展内存来使用。当系统的物理内存使用量接近饱和,Linux 内核会将一些不常使用的内存页交换到SWAP分区中,从而为当前运行的程序腾出更多的物理内存。当这些被交换出去的内存页再次被需要时,它们会被重新换回到物理内存中。SWAP分区的存在可以在一定程度上避免由于物理内存不足导致系统性能严重下降或进程被强制终止的情况。因此,
SWAP对于内存小的 VPS 非常有必要,可以提高我们的运行效率。这里我们同样用脚本来添加。
wget -O swap.sh https://raw.githubusercontent.com/yuju520/Script/main/swap.sh && chmod +x swap.sh && clear && ./swap.sh
查看当前内存
free -m
四、安装 Docker、Docker-compose 以及修改配置
1. Docker
1.1 Docker 安装
1.1.1 非大陆服务器
wget -qO- get.docker.com | bash
或
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
1.1.2 第三方 Docker 安装命令(中国大陆可用)
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
1.2 Docker相关命令
# 查看 Docker 版本 docker -v # 开机自动启动 sudo systemctl enable docker # 卸载 Docker sudo apt-get purge docker-ce docker-ce-cli containerd.io sudo apt-get remove docker docker-engine sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
2. Docker-compose
Docker 从 18.06.0-ce 版本就开始自带 Docker Compose 工具,因此,我们只需要检验 Docker Compose 的版本。
查看 Docker Compose 版本
docker compose version
五、修改 SSH 端口
修改 SSH 端口通常有以下几个主要原因:
- 增强安全性:SSH 服务默认使用的 22 端口是攻击者经常扫描和尝试攻击的目标。通过将端口修改为一个不常见的数值,可以减少自动攻击和暴力破解的风险,因为攻击者通常会首先针对常见的默认端口进行攻击。
例如,如果攻击者使用自动化工具扫描大量服务器,这些工具可能主要集中在 22 端口。而修改了端口后,就降低了被这类工具轻易发现和攻击的可能性。
- 减少误连接和非法访问尝试:一些网络环境中可能存在大量的随机连接请求或非法访问尝试,针对默认的 22 端口。更改端口可以减少这类无意义的连接请求。
假设您的服务器处于一个公共网络环境中,经常会收到大量的随机连接尝试,其中很多是针对常见端口的。修改 SSH 端口可以减少这类不必要的干扰。
方法:修改/etc/ssh/sshd_config中Port的参数为
Port 55520
用命令行将默认的 22 端口修改为 55520sudo sed -i 's/^#\?Port 22.*/Port 55520/g' /etc/ssh/sshd_config
重启 sshd 服务
sudo systemctl restart sshd


空空如也!