拿到一台全新的 VPS,首要任务不是立刻跑业务,而是做好基本功:测线路、锁 SSH、配防火墙、装常用组件。这套流程我已经踩过无数次坑,特意整理出一份开箱即用的清单,适合 Debian/Ubuntu 系列小鸡,部分命令也可平移到 CentOS。
一、 线路质量测试
在投入生产前,我会先用脚本对大带宽、延迟和丢包做一个摸底。尤其是跨境线路,高峰期表现能直接决定要不要退款。
1.1 一键测试脚本
bash <(curl -sL https://run.NodeQuality.com)
这个脚本会自动测速、测路由,并生成一个包含图表的在线结果页。
二、 SSH 安全加固
默认密码登录是最大的安全隐患,新机到手第一件事就应该是换成密钥登录并收紧权限。
2.1 写入公钥并设置权限
首先将你的本地公钥(如 id_ed25519.pub)内容追加到服务器的 ~/.ssh/authorized_keys 文件中,然后修改权限:
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
2.2 开启密钥认证并禁用密码登录
编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
确保以下配置生效:
PubkeyAuthentication yes
PasswordAuthentication no
保存后重启 SSH 服务:
sudo systemctl restart sshd
重要:在关闭密码登录之前,务必另开一个终端测试密钥登录是否成功,否则锁死自己只能去控制台救。
2.3 IP 白名单(可选)
如果你的本地网络拥有固定 IP,可以进一步限制允许登录的来源,极大降低爆破风险。在 sshd_config 中添加:
AllowUsers [email protected] root@2a0e:00c0:0f0:1::1
然后重启服务:
sudo systemctl restart ssh
这样一来,只有白名单内的 IP 才能连接 SSH。IPv6 地址同样支持,直接写在后面即可。
2.4 修改 SSH 默认端口(建议)
将 SSH 从默认的 22 端口改成一个高位端口(如 65443),可以有效减少大部分自动化扫描和爆破尝试。编辑配置:
sudo nano /etc/ssh/sshd_config
找到 #Port 22,去掉注释并将端口号改为自定义值:
Port 65443
保存后重启 SSH:
sudo systemctl restart sshd
注意:
- 修改后,SSH 连接命令需要加
-p 65443(例如ssh [email protected] -p 65443)。 - 一定要在防火墙中放行新端口,以免失联。
2.5 获取 root 权限
部分云厂商初始给的是非 root 账户,配置过程中需要提权:
sudo su -
或者单条命令前加 sudo。长期配置建议直接用 su - 切到 root,省去重复敲 sudo 的麻烦。
三、 防火墙 —— 以 UFW 为例
UFW 是 iptables 的前端,语法简单,非常适合快速设置。
3.1 安装 UFW 并放行常用端口
sudo apt update && sudo apt install ufw -y
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 65443/tcp # 自定义业务端口(若已用于 SSH,则此处同时放行)
sudo ufw enable
若你已经把 SSH 改为了 65443,务必先用
allow 65443/tcp放行,再考虑删除 22 端口规则,防止自锁。
3.2 规则管理与删除
如果某条规则配置有误,可以这样清理:
sudo ufw delete allow 80/tcp # 按规则内容删除
sudo ufw status numbered # 查看带编号的规则列表
sudo ufw delete 1 # 按编号删除
常规运维用 numbered 模式最直观,输错数字不会误删。
四、 系统更新与重启
保持软件包最新是安全底线,配置完基础环境后顺手做一次全量升级:
sudo apt update && sudo apt upgrade -y
如果升级过程中弹出了全屏选择界面,第一个默认点enter即可,第二个按空格选中第一个,然后tab切换到下面的 ok 处按enter即可。
如果升级了内核或关键系统组件,系统提示需要重启,可以用以下命令重启:
sudo reboot
五、 开启 BBR 网络加速
BBR 是 Google 开发的一种拥塞控制算法,能显著提升高延迟、弱网络环境下的 TCP 吞吐量,对小鸡跨国访问提升明显。
5.1 配置与启用
sudo nano /etc/sysctl.d/99-bbr.conf
写入以下内容:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
保存后生效:
sudo sysctl --system
5.2 验证是否成功
sysctl net.ipv4.tcp_congestion_control # 应返回 net.ipv4.tcp_congestion_control = bbr
sysctl net.core.default_qdisc # 应返回 net.core.default_qdisc = fq
也可以用 lsmod | grep bbr 检查模块是否加载。
六、 安装 Nginx(含 Stream 模块)
Nginx 不仅能做 Web 服务,配合 stream 模块还能转发 TCP/UDP,实现简单的负载均衡或端口复用。
6.1 安装
sudo apt update && sudo apt install nginx -y
sudo apt install libnginx-mod-stream -y # 流模块,用于四层代理
新建一个无法登录的系统用户用于跑 worker 进程(如果默认未创建):
sudo useradd -s /sbin/nologin -M nginx
6.2 配置与重载
sudo nano /etc/nginx/nginx.conf
按需调整 worker_processes、worker_connections 或添加 stream 块。测试配置语法:
sudo nginx -t
热重载或重启:
sudo systemctl reload nginx # 推荐,不中断现有连接
sudo systemctl restart nginx # 强制重启
如果是在线业务,务必用
reload,restart会瞬间断开所有连接。
七、 组建内网:Tailscale
Tailscale 基于 WireGuard,零配置即可将多台设备组成一个加密虚拟局域网,非常适合跨云、跨家组网。
7.1 安装与启动
curl -fsSL https://tailscale.com/install.sh | sh
sudo systemctl enable --now tailscaled
sudo tailscale up
执行 tailscale up 后会返回一个链接,浏览器打开并登录账户完成设备授权。同一账户下的所有节点将自动分配 100.x.y.z 的内网 IP,互相直连。
7.2 常见用法
- 异地组网:家里的 NAS 和云上小鸡组网,无需公网端口。
- MagicDNS:开启后可通过主机名直接访问设备。
自用留底,方便同样是小白的新手抄作业。如果你有其他常用初始化步骤,欢迎在评论区补充。
喜欢的话,留下你的评论吧~