Debian VPS 开机指南:从裸机到 Docker 生产环境
Debian VPS 开机指南:从裸机到 Docker 生产环境
一台新买的 VPS,第一件事不是部署服务,而是先给它“开光”。
本文记录一台全新 Debian VPS 从初始化到 Docker 运行环境搭建的完整过程,适合新购服务器、业务迁移及个人服务部署。
系统环境: Debian 12 / Debian 13
适用场景: VPS、云服务器、Docker 服务部署
最后更新: 2026 年 10 月
一、为什么选择 Debian?
最近准备迁移自己的 API 服务,需要重新购买一台日本 VPS。之前一直使用 Ubuntu、Rocky Linux 等发行版,这次决定尝试 Debian。
选择 Debian 主要有几个原因:
- 足够精简: 没有图形化界面需求,操作系统自然越轻量越好。
- 稳定性好: Debian Stable 适合长期运行的服务端环境。
- 维护简单: APT 包管理器成熟,生态完善。
- Docker 友好: 官方支持 Debian,可以直接通过 APT 安装 Docker Engine 和 Compose。
对于个人 VPS 来说,我更关心的是运行稳定性、资源开销以及维护成本,而不是桌面生态。
二、系统初始化
2.1 查看系统信息
连接服务器后,先确认操作系统和硬件环境。
cat /etc/os-release
uname -a
free -h
df -h
查看 CPU:
lscpu
查看公网 IP:
curl -4 https://api.ipify.org
2.2 更新软件包
apt update && apt upgrade -y
如果升级涉及内核,建议安排合适的时间重启服务器。
2.3 安装常用工具
Debian 最小化安装通常只包含基础软件包,需要补充一些常用工具。
apt install -y \
curl wget git vim nano \
htop tree unzip zip jq \
bash-completion \
ca-certificates gnupg \
dnsutils traceroute mtr-tiny
其中:
htop:系统资源监控。jq:JSON 格式化与解析。mtr:网络链路质量诊断。dnsutils:提供 dig 等 DNS 调试工具。bash-completion:增强命令自动补全。
三、配置 Bash 终端颜色与 ll 命令
刚安装完 Debian,可能会发现一个不太习惯的地方:
执行 ll 提示:
bash: ll: command not found
而且执行 ls 时,文件和目录也没有熟悉的颜色高亮。
其实 ll 并不是 Linux 自带的独立命令,而是 Shell 中定义的 alias。
3.1 添加常用别名
编辑 Bash 配置:
nano ~/.bashrc
在末尾添加:
# 启用文件颜色
eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias ll='ls -alhF --color=auto'
alias la='ls -A --color=auto'
alias l='ls -CF --color=auto'
# grep 高亮
alias grep='grep --color=auto'
# 彩色 Bash 提示符
PS1='\[\e[01;32m\]\u@\h\[\e[00m\]:\[\e[01;34m\]\w\[\e[00m\]\$ '
立即生效:
source ~/.bashrc
现在执行:
ll
就可以看到熟悉的文件颜色区分,以及文件权限、大小、修改时间等详细信息。
如果重新登录后配置没有生效,需要检查 ~/.profile 是否正确加载了 ~/.bashrc。
四、VPS IP 质量检测
对于海外 VPS 来说,IP 质量是购买之后非常值得检查的一项指标。
特别是部署 API 服务、访问海外平台、使用第三方服务时,IP 的信誉和网络环境会直接影响实际体验。
这里使用开源项目 IPQuality。
项目地址:
https://github.com/xykt/IPQuality
4.1 一键检测 IP 质量
bash <(curl -Ls https://Check.Place) -I
该命令会启动交互式检测界面。
也可以直接进行默认双栈检测:
bash <(curl -Ls https://IP.Check.Place)
仅检测 IPv4:
bash <(curl -Ls https://IP.Check.Place) -4
仅检测 IPv6:
bash <(curl -Ls https://IP.Check.Place) -6
检测结果可以帮助了解 IP 的部分属性、风险评分和平台访问情况。
重点关注:
- IP 类型: 机房 IP、住宅 IP 等分类。
- 风险评分: 不同数据库对 IP 的风险判断。
- 黑名单记录: 是否被部分安全数据库标记。
- 平台访问: 部分海外服务是否可以正常访问。
- 地理位置: IP 的数据库定位是否与预期一致。
需要注意,IP 质量评分仅用于参考。不同数据库的结果可能存在差异,也不能保证某个平台一定接受该 IP。
另外,运行第三方脚本之前,建议先阅读项目源码。curl 下载并直接执行远程脚本具有一定的安全风险。
五、网络质量与回国线路检测
由于这次 VPS 位于日本,而实际服务的主要访问者在中国大陆,因此仅仅检测 IP 信誉还不够。
IP 质量好,并不代表国内访问速度一定快。
例如,一台 VPS 的 IP 信誉不错,但晚高峰可能出现明显的延迟波动和丢包。
5.1 网络综合检测
可以使用同一系列的网络检测工具:
bash <(curl -Ls https://Net.Check.Place)
仅测试 IPv4:
bash <(curl -Ls https://Net.Check.Place) -4
测试延迟:
bash <(curl -Ls https://Net.Check.Place) -P
5.2 使用 MTR 进行链路诊断
mtr -rwzc 100 目标IP
其中:
-r:生成报告。-w:宽格式输出。-z:显示 AS 信息(支持时)。-c 100:发送 100 次探测。
可以重点观察延迟、丢包率,以及不同节点之间的变化。
需要注意,中间路由节点可能限制 ICMP 响应,因此单个中间节点显示丢包,不一定意味着真实业务数据发生丢包。
5.3 晚高峰测试
如果 VPS 的主要用户位于中国大陆,建议在北京时间 20:00—23:00 之间进行额外测试。
重点关注:
- 三大运营商实际访问延迟。
- TCP 连接建立时间。
- HTTPS 请求耗时。
- 高峰期丢包和超时情况。
- 大文件下载的实际吞吐。
尤其需要注意:服务器主动访问国内的回程测试,不能完全代表国内用户访问服务器的去程表现。最好结合国内实际客户端进行双向测试。
六、安装 Docker Engine 和 Docker Compose
Docker 是我部署服务的主要方式。
相比直接在宿主机安装数据库、运行时和各类服务,容器化部署更方便迁移、升级和回滚。
这里采用 Docker 官方 APT 软件源,而不是 Debian 自带的 docker.io 包。
6.1 安装依赖
apt update
apt install -y ca-certificates curl
6.2 添加 Docker 官方仓库
install -m 0755 -d /etc/apt/keyrings
curl -fsSL \
https://download.docker.com/linux/debian/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
配置 APT 软件源:
cat > /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
更新仓库:
apt update
6.3 安装 Docker
apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
以上命令适用于全新系统。如果已经安装 docker.io、旧版 docker-compose 或其他冲突组件,应先检查和处理,避免直接覆盖现有环境。
6.4 配置开机自启
systemctl enable --now docker
检查运行状态:
systemctl status docker
6.5 验证 Docker 与 Compose
docker --version
docker compose version
运行测试容器:
docker run --rm hello-world
至此,Docker 环境安装完成。
需要注意,新版本 Docker Compose 的命令为:
docker compose
而不是过去的:
docker-compose
七、Docker 生产环境基础优化
7.1 日志轮转
Docker 默认的 json-file 日志如果不加限制,长期运行可能占用大量磁盘空间。
全新环境可以配置:
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<'EOF'
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "3"
},
"live-restore": true
}
EOF
检查配置:
dockerd --validate \
--config-file /etc/docker/daemon.json
然后重启 Docker:
systemctl restart docker
如果已有 daemon.json,应该合并配置而不是直接覆盖。
注意,默认日志配置主要对新创建的容器生效;已有容器需要重新创建后才能使用新的日志策略。
7.2 Docker Compose 自动重启
在业务项目中,可以配置:
services:
app:
image: nginx:stable
container_name: demo-app
restart: unless-stopped
ports:
- "127.0.0.1:8080:80"
启动:
docker compose up -d
查看日志:
docker compose logs -f
这里将端口绑定到 127.0.0.1,仅允许本机访问,适合后续通过 Caddy 或 Nginx 反向代理暴露服务。
八、SSH 安全加固
VPS 暴露在公网后,SSH 通常会持续受到自动扫描。
建议至少完成以下配置:
- 创建具有 sudo 权限的普通管理用户。
- 使用 SSH 公钥登录。
- 确认新用户可以正常连接后,禁用 root 远程登录。
- 根据需要关闭 SSH 密码认证。
- 配置防火墙并仅开放必要端口。
例如,在确认公钥认证已经正常工作后,可以创建 SSH 配置片段:
cat > /etc/ssh/sshd_config.d/99-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
EOF
检查配置语法:
sshd -t
确认没有报错后:
systemctl reload ssh
特别注意: 关闭 root 登录或密码登录前,必须先在另一个终端验证普通用户的公钥登录能力,否则可能导致自己无法再次连接服务器。
此外,Docker 发布容器端口时可能绕过部分 UFW 规则,因此不要仅依赖 UFW 管理 Docker 容器的公网暴露权限。
九、最终检查清单
一台 Debian VPS 完成初始化后,我通常会检查以下项目:
十、总结
一台 VPS 从购买到真正投入使用,中间其实还有不少初始化工作。
Debian 的优势在于精简、稳定、可控,尤其适合以 Docker 为主的服务部署场景。
我的服务器初始化流程基本可以归纳为:
系统更新 → 常用工具 → Shell 优化 → IP/网络检测 → Docker 安装 → 安全加固 → 业务部署。
对于海外 VPS,还有一个经验值得强调:
不要只看 CPU、内存和带宽参数,网络线路和晚高峰表现同样重要。
特别是面向中国大陆用户的日本 VPS,网络质量往往比表面上的带宽数值更能影响实际体验。
至此,一台全新的 Debian VPS 就算正式“开机”完成了。
接下来就可以愉快地部署自己的服务了。
参考资料

浙公网安备 33010602011771号