Appearance
Vultr 云服务器 + PostgreSQL + Redis 完整部署指南
本文档记录从零开始购买 Vultr VPS、部署 Ubuntu 22.04、安装配置 PostgreSQL 和 Redis,并解决防火墙、远程连接等实际问题的完整流程。
目录
- Vultr 账号注册与付款设置
- 创建云服务器实例
- 初始化 Ubuntu 环境
- Vultr 防火墙配置(云层防火墙)
- Ubuntu UFW 防火墙配置(系统层防火墙)
- 安装 PostgreSQL
- 安装 Redis
- 客户端连接(TablePlus / DBeaver)
- 安全建议
- 常见问题排查
1. Vultr 账号注册与付款设置
1.1 注册账号
访问 Vultr 官网,点击右上角 Sign Up。
- 使用邮箱注册,或直接用 Google/GitHub 账号登录
- 验证邮箱
1.2 添加付款方式
登录后,进入 Billing → Make a Payment → Add Payment Method。
Vultr 支持:
- 信用卡(Visa / Mastercard / Discover):选择 "I just want to link my credit card - $0.00 deposit",只绑卡不充值,按小时计费月底扣款
- PayPal:类似信用卡,可绑定后按量扣费
- 支付宝(AliPay):需要先充值至少 $10 美元,金额存入余额,创建服务器时从中扣费
推荐
有国际信用卡的话,选择 $0.00 绑卡方式最灵活,用多少付多少。
2. 创建云服务器实例
2.1 进入部署页面
左侧菜单 → Products → 右上角 Deploy Server
2.2 选择配置
| 选项 | 推荐选择 | 说明 |
|---|---|---|
| 类型 | Cloud Compute / Shared CPU | 性价比高 |
| 机房位置 | Tokyo, Japan | 对中国用户延迟最低 |
| 操作系统 | Ubuntu 22.04 LTS | 稳定长期支持版 |
| 配置规格 | 2 vCPU / 4GB RAM | 适合跑 PostgreSQL + Redis + 后端 |
| 月费 | $20-24 | 按小时计费,可随时销毁 |
2.3 添加 SSH 密钥(可选)
如果你有 SSH 公钥,可以粘贴进去;没有的话,系统会生成 root 密码,部署后可以在控制台查看。
2.4 部署
点击 Deploy Now,等待 1-2 分钟,服务器创建完成。
你会看到:
- IPv4 Address:公网 IP(例如
167.179.73.225) - Username:
root - Password:系统生成的密码(务必复制保存)
3. 初始化 Ubuntu 环境
3.1 连接服务器
bash
ssh root@你的服务器IP
# 输入密码(粘贴后不显示,直接回车)3.2 修改 root 密码
bash
passwd
# 输入新密码两次3.3 安装常用工具
bash
apt update && apt upgrade -y
apt install -y net-tools curl wget vim gitnet-tools 提供 netstat、ifconfig 等命令,方便排查网络问题。
3.4 查看端口监听状态
bash
netstat -tlnp4. Vultr 防火墙配置(云层防火墙)
Vultr 有自己的云基础设施防火墙,需要在控制台配置。
4.1 创建防火墙组
左侧菜单 → Network → Firewall Groups → Create Firewall Group
名称随意,如 my-server-fw
4.2 添加入站规则(IPv4)
在防火墙组内,点击 Add IPv4 Rule:
| 规则 | 协议 | 端口 | 来源 | 说明 |
|---|---|---|---|---|
| SSH | TCP | 22 | 0.0.0.0/0 | 远程连接 |
| PostgreSQL | TCP | 5432 | 0.0.0.0/0 | 数据库(建议后续改为特定IP) |
| Redis | TCP | 6379 | 0.0.0.0/0 | 缓存(建议后续改为特定IP) |
最后有一条
drop any 0-65535的默认规则,无需修改。
4.3 关联服务器
在防火墙组页面,找到 Linked Instances → Add Instance,勾选你的服务器。
验证是否关联成功: 在服务器详情页的 Settings 中,Firewall 一栏应显示你的防火墙组名称。
5. Ubuntu UFW 防火墙配置(系统层防火墙)
这是最容易忽略的一层! Ubuntu 默认开启了 UFW,只开放了 22 端口。
5.1 查看 UFW 状态
bash
ufw status如果显示 Status: active,且只有 22/tcp ALLOW Anywhere,说明需要手动开放端口。
5.2 开放必要端口
bash
ufw allow 5432/tcp # PostgreSQL
ufw allow 6379/tcp # Redis5.3 验证规则
bash
ufw status输出应类似:
Status: active
To Action From
22/tcp ALLOW Anywhere
5432/tcp ALLOW Anywhere
6379/tcp ALLOW Anywhere5.4 注意:两层防火墙都要配置!
| 防火墙层级 | 配置位置 | 作用 |
|---|---|---|
| Vultr 云防火墙 | Web 控制台 | 云基础设施层,先于系统防火墙 |
| Ubuntu UFW | 服务器命令行 | 操作系统层,最后一道防线 |
两层都必须允许对应端口,外部才能访问。
6. 安装 PostgreSQL
6.1 安装
bash
apt install -y postgresql postgresql-contrib6.2 配置允许远程连接
编辑配置文件:
bash
vim /etc/postgresql/*/main/postgresql.conf找到 #listen_addresses = 'localhost',修改为:
listen_addresses = '*'编辑访问控制文件:
bash
vim /etc/postgresql/*/main/pg_hba.conf在文件末尾添加:
host all all 0.0.0.0/0 md56.3 设置 postgres 用户密码
bash
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '你的强密码';"6.4 重启服务
bash
systemctl restart postgresql6.5 验证监听
bash
netstat -tlnp | grep 5432应显示 0.0.0.0:5432 而不是 127.0.0.1:5432。
6.6 测试本地连接
bash
sudo -u postgres psql -c "SELECT version();"7. 安装 Redis
7.1 安装(最新版)
Ubuntu 默认源版本较旧(6.x),推荐添加官方源安装最新版(8.x):
bash
# 添加官方仓库
curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list
# 更新并安装
apt update
apt install -y redis7.2 配置允许远程连接
编辑配置文件:
bash
vim /etc/redis/redis.conf找到并修改:
# 注释掉 bind 127.0.0.1,或改为 bind 0.0.0.0
# bind 127.0.0.1
# 设置密码(找到 requirepass)
requirepass 你的强密码7.3 重启服务
bash
systemctl restart redis7.4 验证
bash
redis-cli ping
# 若设置了密码,用 redis-cli -a '密码' ping返回 PONG 即正常。
8. 客户端连接(TablePlus / 其它数据库终端管理工具)
8.1 使用 TablePlus 连接 PostgreSQL
点击 New Connection → 选择 PostgreSQL:
| 字段 | 值 |
|---|---|
| Host | 你的服务器公网 IP |
| Port | 5432 |
| User | postgres |
| Password | 你设置的密码 |
| Database | postgres(或其他数据库名) |
点击 Test,显示 Connected 即成功。

注意
不要试图访问或上图所示的IP服务,因为它是 Fake Value。
8.2 使用 TablePlus 连接 Redis
点击 New Connection → 选择 Redis:
| 字段 | 值 |
|---|---|
| Host | 你的服务器公网 IP |
| Port | 6379 |
| Password | 你设置的密码 |

注意
不要试图访问或上图所示的IP服务,因为它是 Fake Value。
8.3 连接失败排查
- 确认 Vultr 防火墙组已添加对应端口规则
- 确认 Ubuntu UFW 已开放端口:
ufw status - 确认 PostgreSQL/Redis 监听
0.0.0.0:netstat -tlnp | grep 端口 - 确认
pg_hba.conf允许远程访问(PostgreSQL) - 确认密码正确
9. 安全建议
9.1 不要直接把数据库暴露在公网
建议改用 SSH 隧道 连接:
bash
# 在本地电脑执行
ssh -L 5432:localhost:5432 root@你的服务器IP -N
ssh -L 6379:localhost:6379 root@你的服务器IP -N然后在客户端连接 localhost 对应端口,流量通过 SSH 加密传输。
9.2 如果一定要公网访问,限制来源 IP
在 Vultr 防火墙中,将 Source 从 0.0.0.0/0 改为你本地电脑的公网 IP(如 123.456.789.0/32)。
9.3 使用强密码
PostgreSQL 和 Redis 都设置了强密码,避免使用 123456 等弱密码。
10. 常见问题排查
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
Connection refused | 端口未开放或服务未启动 | 检查 netstat 和 ufw status |
Connection timeout | 防火墙拦截 | 检查 Vultr 防火墙组是否关联,规则是否添加 |
Password authentication failed | 密码错误 | 重新设置密码 |
telnet 能通但客户端连不上 | 认证配置问题 | 检查 pg_hba.conf / requirepass |
PostgreSQL 只监听 127.0.0.1 | listen_addresses 未改为 * | 修改 postgresql.conf 并重启 |
Redis 只监听 127.0.0.1 | bind 未注释或未改为 0.0.0.0 | 修改 redis.conf 并重启 |
后记
配置完成后,你的服务器就具备了:
- ✅ 2核 4GB 的稳定运行环境
- ✅ PostgreSQL 15+(可升级到 16/17)
- ✅ Redis 8.x 最新版
- ✅ 防火墙双层防护
接下来就可以部署你的后端服务了。
本文基于实际踩坑经历整理,希望能帮助后来者少走弯路。