PostgreSQL 结合 cpolar 实现无公网 IP 远程访问
PostgreSQL 作为一款开源的关系型数据库管理系统,具备强大的数据存储、复杂查询处理能力,还能保障事务完整性和数据安全。但默认仅能在局域网内访问,给异地办公或移动场景带来不便。
将 PostgreSQL 与 cpolar 内网穿透结合后,无需复杂的公网 IP 配置,就能把本地的 PostgreSQL 服务映射到公网,实现稳定连接。
1. 在 CentOS 7 上安装 PostgreSQL
本次在 Linux 环境安装。下载地址:postgreSQL 官网。
按照生成的脚本,安装。
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/15/data/postgresql.conf
修改地址为 * :
listen_addresses = '*'
重新启动:
systemctl restart postgresql-14
切换到 postgres 用户,新建 mydb 库:
su postgres
create database mydb;
使用另一台服务器,远程连接到该库:
psql -h192.168.42.140 -p5432 -U postgres -d mydb
成功!
2. 安装 cpolar 内网穿透工具
cpolar 可以将本地电脑中的服务(如 SSH、Web、数据库)映射到公网。
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh
安装完成后,执行下方命令查看 cpolar 服务状态:
sudo systemctl status cpolar
安装成功后,在浏览器上输入虚拟机主机 IP 加 9200 端口(例如 http://192.168.42.101:9200)访问管理界面,使用账号登录即可对隧道进行管理。

3. 配置公网地址
通过配置,可以在本地系统上运行服务,并通过 Cpolar 将其映射到公网。
- 隧道名称:可自定义,本例使用了 postgres
- 协议:tcp
- 本地地址:192.168.42.140:5432
- 端口类型:随机临时 TCP 端口
- 地区:China Vip

创建成功后,打开在线隧道列表,可以看到生成了公网地址。
- tcp 表示使用的协议类型
- 2.tcp.vip.cpolar.cn 是提供的域名
- 11084 是随机分配的公网端口号
通过 Cpolar 提供的公网地址和端口,使用 psql 命令连接:
psql -h2.tcp.vip.cpolar.cn -p11084 -U postgres -d mydb

4. 保留固定 TCP 公网地址
使用 cpolar 为其配置 TCP 地址,该地址为固定地址,不会随机变化。
选择区域和描述,点击右侧的'保留'按钮可以保留所选的 TCP 地址。
列表中显示了一条已保留的 TCP 地址记录:
- 地区:China VIP
- 地址:8.tcp.vip.cpolar.cn:13299

登录 cpolar web UI 管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道 postgres,点击右侧的编辑。
修改隧道信息,将保留成功的 TCP 端口配置到隧道中。
- 端口类型:选择固定 TCP 端口
- 预留的 TCP 地址:填写保留成功的 TCP 地址
点击更新。

最后测试一下固定的地址是否好用,测试命令:
psql -h8.tcp.vip.cpolar.cn -p13299 -U postgres -d mydb

总结
PostgreSQL 凭借出色的功能和稳定性,成为众多开发者和企业的数据库首选,但局域网的限制曾让其远程使用场景大打折扣。而 cpolar 内网穿透技术的加入,恰好弥补了这一短板,无需公网 IP,就能让 PostgreSQL 突破网络边界,实现稳定的远程访问。无论是异地团队协作开发、向客户演示数据库相关系统,还是个人移动办公时调取数据,PostgreSQL+cpolar 的组合都能以简单、高效的方式满足需求,真正让数据库的使用摆脱地域和网络环境的束缚。


