Skip to content

Vultr 云服务器 + PostgreSQL + Redis 完整部署指南

本文档记录从零开始购买 Vultr VPS、部署 Ubuntu 22.04、安装配置 PostgreSQL 和 Redis,并解决防火墙、远程连接等实际问题的完整流程。

目录

  1. Vultr 账号注册与付款设置
  2. 创建云服务器实例
  3. 初始化 Ubuntu 环境
  4. Vultr 防火墙配置(云层防火墙)
  5. Ubuntu UFW 防火墙配置(系统层防火墙)
  6. 安装 PostgreSQL
  7. 安装 Redis
  8. 客户端连接(TablePlus / DBeaver)
  9. 安全建议
  10. 常见问题排查

1. Vultr 账号注册与付款设置

1.1 注册账号

访问 Vultr 官网,点击右上角 Sign Up

  • 使用邮箱注册,或直接用 Google/GitHub 账号登录
  • 验证邮箱

1.2 添加付款方式

登录后,进入 BillingMake a PaymentAdd 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
  • Usernameroot
  • 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 git

net-tools 提供 netstatifconfig 等命令,方便排查网络问题。

3.4 查看端口监听状态

bash
netstat -tlnp

4. Vultr 防火墙配置(云层防火墙)

Vultr 有自己的云基础设施防火墙,需要在控制台配置。

4.1 创建防火墙组

左侧菜单 → NetworkFirewall GroupsCreate Firewall Group

名称随意,如 my-server-fw

4.2 添加入站规则(IPv4)

在防火墙组内,点击 Add IPv4 Rule

规则协议端口来源说明
SSHTCP220.0.0.0/0远程连接
PostgreSQLTCP54320.0.0.0/0数据库(建议后续改为特定IP)
RedisTCP63790.0.0.0/0缓存(建议后续改为特定IP)

最后有一条 drop any 0-65535 的默认规则,无需修改。

4.3 关联服务器

在防火墙组页面,找到 Linked InstancesAdd 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    # Redis

5.3 验证规则

bash
ufw status

输出应类似:

Status: active

To         Action      From
22/tcp     ALLOW       Anywhere
5432/tcp   ALLOW       Anywhere
6379/tcp   ALLOW       Anywhere

5.4 注意:两层防火墙都要配置!

防火墙层级配置位置作用
Vultr 云防火墙Web 控制台云基础设施层,先于系统防火墙
Ubuntu UFW服务器命令行操作系统层,最后一道防线

两层都必须允许对应端口,外部才能访问。

6. 安装 PostgreSQL

6.1 安装

bash
apt install -y postgresql postgresql-contrib

6.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 md5

6.3 设置 postgres 用户密码

bash
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '你的强密码';"

6.4 重启服务

bash
systemctl restart postgresql

6.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 redis

7.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 redis

7.4 验证

bash
redis-cli ping
# 若设置了密码,用 redis-cli -a '密码' ping

返回 PONG 即正常。

8. 客户端连接(TablePlus / 其它数据库终端管理工具)

8.1 使用 TablePlus 连接 PostgreSQL

点击 New Connection → 选择 PostgreSQL

字段
Host你的服务器公网 IP
Port5432
Userpostgres
Password你设置的密码
Databasepostgres(或其他数据库名)

点击 Test,显示 Connected 即成功。

注意

不要试图访问或上图所示的IP服务,因为它是 Fake Value。

8.2 使用 TablePlus 连接 Redis

点击 New Connection → 选择 Redis

字段
Host你的服务器公网 IP
Port6379
Password你设置的密码

注意

不要试图访问或上图所示的IP服务,因为它是 Fake Value。

8.3 连接失败排查

  1. 确认 Vultr 防火墙组已添加对应端口规则
  2. 确认 Ubuntu UFW 已开放端口:ufw status
  3. 确认 PostgreSQL/Redis 监听 0.0.0.0netstat -tlnp | grep 端口
  4. 确认 pg_hba.conf 允许远程访问(PostgreSQL)
  5. 确认密码正确

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端口未开放或服务未启动检查 netstatufw status
Connection timeout防火墙拦截检查 Vultr 防火墙组是否关联,规则是否添加
Password authentication failed密码错误重新设置密码
telnet 能通但客户端连不上认证配置问题检查 pg_hba.conf / requirepass
PostgreSQL 只监听 127.0.0.1listen_addresses 未改为 *修改 postgresql.conf 并重启
Redis 只监听 127.0.0.1bind 未注释或未改为 0.0.0.0修改 redis.conf 并重启

后记

配置完成后,你的服务器就具备了:

  • ✅ 2核 4GB 的稳定运行环境
  • ✅ PostgreSQL 15+(可升级到 16/17)
  • ✅ Redis 8.x 最新版
  • ✅ 防火墙双层防护

接下来就可以部署你的后端服务了。

本文基于实际踩坑经历整理,希望能帮助后来者少走弯路。