PostgreSQL 是一款功能强大的开源关系型数据库,具备完善的数据存储、复杂查询处理能力,同时保障事务完整性和数据安全。无论是小型项目的数据存储,还是企业级应用的海量数据处理,它都能稳定胜任,扩展性和安全性是其核心优势。
在实际使用中,初次配置远程访问时常遇到障碍。例如忽略 pg_hba.conf 的访问规则配置、监听地址未设为全网段,都会导致局域网内的连接异常。此外,日常维护中需注意定期备份,避免因数据量过大影响读写效率。
然而,默认配置下 PostgreSQL 仅限局域网访问,这给实际使用带来不少麻烦。比如异地办公的开发人员无法直接连接公司内网的数据库调试代码,只能靠同事导出数据再传输,不仅耗时还易出现数据版本不一致;个人在家搭建的数据库,外出时想查看或修改数据也完全做不到。
借助 cpolar 内网穿透技术,可解决上述问题。无需复杂的公网 IP 配置,就能把本地的 PostgreSQL 服务映射到公网。不管是在异地办公、外出差旅,还是给客户演示基于该数据库的系统,都能通过公网地址稳定连接,且操作门槛低,普通用户也能快速完成配置。
本文将带你从零开始,一步步实现 PostgreSQL 的远程安全暴露,用 cpolar 打通内网与公网之间的通道,真正实现随时随地访问数据库。
1. 在 CentOS 7 上安装 PostgreSQL
本次以 Linux 环境为例进行安装。下载地址为 PostgreSQL 官网,选择 Linux 系统,使用 yum 来下载软件,只需选择对应版本和平台,即可生成下载和安装的脚本。
按照生成的脚本执行安装。这里使用的是 PostgreSQL 14 版本:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql14-server
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
按照步骤一步步操作后,需要修改 PostgreSQL 管理员密码。
su postgres
psql
alter user postgres with password 'postgres123';
接下来配置远程访问权限。修改 pg_hba.conf 文件,新增如下配置允许外部连接:
sudo vim /var/lib/pgsql/14/data/pg_hba.conf
在文件中新增一行:
host all all 0.0.0.0/0 scram-sha-256
同时修改监听地址为任意地址,即编辑 postgresql.conf 文件:
vi /var/lib/pgsql/14/data/postgresql.conf


