本周精选 · 第11期 — VPS 运维四件套:证书自动化、轻量监控、远程终端、命令行测速
周六到了,本周精选第 11 期。这期不聊大而…
周六到了,本周精选第 11 期。这期不聊大而全的架构,专挑 VPS 日常运维里四个“平时不显眼、一出问题就很烦”的小角落:SSL 证书无声过期、服务器半夜负载飙高却看不到、弱网下 SSH 卡到怀疑人生、想测个速还得开网页。下面这四件套,各自基本一条命令起步,装完就可以忘掉,属于“装上就值回票价”的东西。
一、acme.sh:证书自动续签,彻底告别过期
HTTPS 证书三个月就过期一次,手动 renew 是最容易被忘掉的活儿。acme.sh 是个纯 shell 脚本,不依赖 Python 环境,装完自动注册 crontab 定时任务,到期前自动续签。安装就一条命令:
curl https://get.acme.sh | sh -s email=you@example.com
装完重新 source 一下 shell 就能用。签发证书常用两条路:服务器上有 Nginx 就直接用 --nginx 模式,自动改配置;想签泛域名(*.example.com)就得走 DNS API 验证,这里以 Cloudflare 为例:
# 方式一:Nginx 模式,自动配置
~/.acme.sh/acme.sh --issue -d example.com -d www.example.com --nginx
# 方式二:Cloudflare DNS 验证,签发泛域名
export CF_Token="你的Cloudflare_Token"
export CF_Account_ID="你的Account_ID"
~/.acme.sh/acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf
签发完成后,用 --install-cert 把证书装进 Nginx 目录,并挂上 reload 命令。这样每次自动续签完,Nginx 都会自己重载,全程无需人工干预:
~/.acme.sh/acme.sh --install-cert -d example.com \
--key-file /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.cer \
--reloadcmd "systemctl reload nginx"
从这以后,你再也不用记着“证书该续了”这档子事,它比你自己记得还牢。
二、Netdata:一条 Docker 命令的实时监控
htop、btop 之前都讲过,但它们是交互式的,没法长期挂着看趋势。Netdata 开箱即用,一条命令跑起来,浏览器打开就能看到 CPU、内存、磁盘、网络、系统温度等上千个指标,还自带异常检测和告警。单机版用 Docker 最省事:
docker run -d --name=netdata \
--pid=host --network=host \
-v netdataconfig:/etc/netdata \
-v netdatalib:/var/lib/netdata \
-v netdatacache:/var/cache/netdata \
-v /etc/passwd:/host/etc/passwd:ro \
-v /etc/group:/host/etc/group:ro \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /etc/os-release:/host/etc/os-release:ro \
--cap-add SYS_PTRACE \
--restart unless-stopped \
netdata/netdata
跑起来后直接访问 http://服务器IP:19999 就能看。默认只监听本机,想外网访问的话,建议套一层 Nginx 反代再加 Basic Auth,别把监控面板裸奔到公网——这点以前在 Uptime Kuma 那篇强调过,同样适用。
三、mosh:弱网下 SSH 不卡不掉
出门在外用手机热点连服务器,最烦的就是 SSH 一卡就断、输到一半的命令全丢。mosh 用 UDP 传输、基于本地回显,网络抖动时你打字的体验几乎不受影响,甚至切 Wi-Fi 换了 IP 都不会断。装法和用法都简单:
# 服务端
apt install mosh -y
# 客户端同样装 mosh,然后直接连
mosh user@你的服务器IP
注意两点:一是服务端要放行 UDP 60000–61000 这个区间;二是 mosh 不支持端口转发和 X11 转发,真需要 -L/-R 的场景还是老老实实用原生 SSH。它和 SSH 是互补关系,不是替代。
ufw allow 60000:61000/udp
四、speedtest-cli:命令行测速,测完就知道是不是被邻居蹭了
网页版 speedtest 广告多还慢,Ookla 官方出了命令行版,一键装好,跑一下就知道当前机器的上传、下载和延迟,排查“突然变卡”是不是带宽问题特别直接:
curl -s https://install.speedtest.net/app/cli/install.deb.sh | bash
apt install speedtest
speedtest
输出里 Ping、下载、上传三项一目了然,带宽不达标时直接截图甩给服务商工单,比口头说一句“我感觉很慢”有用一百倍。
写在最后
这四件套每一样都不算重,胜在“装上就省心”:证书自动续、负载有地方看、弱网不掉线、带宽有数可查。日常运维里真正的幸福感,往往就来自这些不起眼的小工具。下周六第 12 期继续,有想让我盘点的方向,评论区喊一声。
