在上一版本基础上做了优化,加了更多可选项,欢迎引用


【保姆级】VPS 拿到手后必做的初始化配置脚本v2

拿到一台新 VPS(小鸡),不管是用来建站还是跑服务,先把地基打好才是最重要的。
本文整理了一套标准初始化流程,涵盖系统更新、ZRAM/SWAP 内存优化、日志瘦身、网络加速和安全防护这几块。

适用系统:推荐 Debian 11/12 或 Ubuntu 22.04 LTS
注意:文中会涉及修改系统配置,建议操作前先把重要数据备份好。


一、系统基础设置

1. 更新软件源和组件

拿到机器第一件事,先把系统现有软件包更新一遍。这里提供两套方案,按自己的使用习惯选一个:

方案 A:极简基础环境(适合只跑单一服务 / 有洁癖的人)
只装最核心的下载工具、证书组件和防火墙,系统尽量保持干净。

apt update && apt upgrade -y
apt install -y sudo curl wget ca-certificates ufw

方案 B:全能实用环境(推荐,适合日常折腾 / 建站主力机)
在基础环境之上,再加上常用编辑器、系统监控、防断连终端和 Python 环境,一次装到位。

apt update && apt upgrade -y
apt install -y sudo curl wget ca-certificates ufw nano vim git htop tmux screen unzip tar lsof jq python3 python3-pip python3-venv python3-systemd

💡 工具小科普htop 是更直观的监控工具;tmux/screen 是防断线利器,跑耗时长的脚本(比如编译环境)必备!

2. 配置 UFW 防火墙

很多刚开通的 VPS 默认防火墙是全开的,开启防火墙相当于给自己筑起第一道防线。

# 放行必要的端口(️极其重要,不放行 SSH 会被关在门外!)
ufw allow ssh       # 或使用: ufw allow 你的SSH端口号/tcp
ufw allow 80/tcp    # 放行 HTTP,用于申请证书
ufw allow 443/tcp   # 放行 HTTPS,用于加密访问

# 启动防火墙
ufw enable

3. 校准系统时间

很多海外 VPS 默认用的不是国内时间,看日志会很不方便,建议改成上海时间。

# 设置时区为上海
sudo timedatectl set-timezone Asia/Shanghai

4. 限制系统日志大小(避免撑爆硬盘)

很多新手不知道,Debian/Ubuntu 的 systemd-journald 日志如果不加限制,几个月下来可能不知不觉就吃掉好几个 G 空间,对 10G/20G 小硬盘的机器来说很不友好。

# 1. 立即清理现有日志,仅保留最新的 500M
sudo journalctl --vacuum-size=500M

# 2. 修改配置:限制日志总大小为 500M,单文件最大 50M
sudo sed -i -E 's/^#?SystemMaxUse=.*/SystemMaxUse=500M/' /etc/systemd/journald.conf
sudo sed -i -E 's/^#?SystemMaxFileSize=.*/SystemMaxFileSize=50M/' /etc/systemd/journald.conf

# 3. 重启日志服务生效
sudo systemctl restart systemd-journald

💡 避坑提示:
如果执行 sudo 命令时看到类似 sudo: unable to resolve host XXX: Name or service not known 的提示,说明系统主机名没绑定本地 IP。虽然不影响命令执行,但看着挺烦的,可以用下面这行命令修复:
echo "127.0.0.1 $(hostname)" | sudo tee -a /etc/hosts
另外,如果清理日志时提示 freed 0B,说明你的日志本来就不到 500M,属于正常情况,不用管。


二、内存优化:ZRAM 和传统 SWAP(一键脚本)

小内存机器必备操作!能防止内存爆满导致失联或者服务崩溃。这里提供两种业界主流的一键脚本方案,二选一就行。

方案 A:ZRAM 内存压缩(推荐给 512M-1G 极小内存或低 I/O 机器)

ZRAM 不读写硬盘,而是花一点 CPU 资源在内存里开辟一块压缩区。速度非常快,还能保护便宜小鸡那块可怜的固态硬盘寿命

用 spiritLHLS 大佬的一键配置脚本:

curl -L https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh -o addzram.sh && chmod +x addzram.sh && bash addzram.sh

方案 B:传统物理 SWAP(推荐给硬盘大、对 CPU 要求高的机器)

如果你的物理内存已经有 2G 以上,或者跑的服务(比如建站数据库)特别吃 CPU、不适合用 ZRAM,可以用传统的 SWAP 分区。

用 yuju520 的一键分配脚本:

wget -O swap.sh https://raw.githubusercontent.com/yuju520/Script/main/swap.sh && chmod +x swap.sh && clear && ./swap.sh

三、内核与 BBR 加速

SSH 连上去之后输入 uname -r,只要输出的版本号 大于 4.9,系统就自带 BBR。手动开启 BBR 的命令如下:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

# 验证是否成功加载
lsmod | grep bbr

四、修改 SSH 端口(安全加固)

默认的 22 端口是黑客脚本暴力破解的重灾区,改成高位端口能大幅减少扫描骚扰。

提醒:NAT VPS 不要改端口! NAT 机器直接用商家提供的端口映射就行。
注意:一定要先在防火墙里放行新端口:sudo ufw allow 55555/tcp

# 将 SSH 端口修改为 55555
sudo sed -i 's/^#\?Port 22.*/Port 55555/g' /etc/ssh/sshd_config

# 重启 SSH 服务
sudo systemctl restart sshd

(注意:重启后先别急着关掉当前 SSH 窗口,先新开一个窗口试试用新端口连接,防止失联。)


五、安装 Fail2ban 防爆破

Fail2ban 能自动封禁多次尝试失败的 IP,配合改端口一起用效果更好。

apt install fail2ban -y

# 创建配置文件
cat << 'EOF' > /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1
allowipv6 = auto
backend = systemd

[sshd]
enabled = true
filter = sshd
port = ssh
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
bantime = 86400
findtime = 86400
maxretry = 3
EOF

# 启动与验证
sudo systemctl enable fail2ban --now
sudo systemctl restart fail2ban
fail2ban-client status

六、Cloudflare WARP 配置(网络补全与解锁)

WARP 是什么?
用来解决 IPv6-Only 访问 IPv4 资源的问题,也可以用来解锁 Netflix 之类的流媒体。推荐用 fscarmen 大佬的一键脚本:

wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh

七、Docker 环境配置

非大陆服务器可以一键安装并设置开机自启:

curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
sudo systemctl enable docker --now
docker compose version

(如果是大陆服务器,用这条命令:curl https://install.1panel.live/docker-install -o docker-install && sudo bash ./docker-install


八、最后测试一下

配置都搞定之后,跑个脚本看看这台小鸡的体质和网络怎么样!

1. 机器性能跑分

# NodeQuality 测试脚本 (测试硬件性能与基本网络)
bash <(curl -sL https://run.NodeQuality.com)

2. 网络回程路由和流媒体解锁测试

国内用户最关心的无非是三网回程线路能不能看剧解锁

# 一键测试流媒体解锁情况 (RegionRestrictionCheck)
bash <(curl -L -s check.unlock.media)

# 安装 NextTrace 路由跟踪工具
curl nxtrace.org/nt | bash
# 跑完后可以自己测回程,例如测上海电信回程:
nexttrace 202.96.209.133

📚 参考资料与延伸阅读

感谢下面这些作者和开源社区提供的方法论和一键脚本支持:

系统安全与初始化优化
1.一台新到手的VPS服务器必做的十二项配置
2.我拿到VPS服务器必做的那些事
3.防暴力破解,不止靠 2FA——fail2ban 自动封禁恶意 IP
4. Linux日志管理实战:rsyslog与journald大小限制配置指南
5.Linux 修改日志轮转 logrotate 大小限制配置

ZRAM / SWAP 内存优化
6.SWAP, ZRAM and ZSWAP 原理浅析
7.为 Linux 服务器开启 ZRAM 来节约内存
8. linux 扩容|缩容 (增加与减小swap分区)
9. 一键ZRAM脚本 – spiritLHLS
10. 一键SWAP脚本 – yuju520

进阶网络工具与脚本
11. WARP 实现单栈 VPS 添加 IPv4 / IPv6 双栈出口并解锁流媒体