没有公网IP如何连接PostgreSQL?CentOS部署与远程访问指南

发布时间:2026/6/26 16:12:14

没有公网IP如何连接PostgreSQL?CentOS部署与远程访问指南 前言PostgreSQL部署在家庭服务器、公司测试机或本地虚拟机中时通常只能通过局域网地址连接。开发人员在外地调试项目、同事需要访问测试数据库或者客户临时查看演示环境时即使数据库本身运行正常也会因为没有公网IP和端口映射条件而无法连接。cpolar可以为PostgreSQL的5432端口建立TCP隧道将内网数据库映射为公网域名和端口。外部设备仍然使用psql、数据库管理工具或应用程序连接不需要改变PostgreSQL的使用方式。随机TCP地址适合临时测试固定地址则更方便写入长期使用的连接配置。数据库公网访问的风险高于普通网页服务。实际配置时不应直接允许所有地址使用超级管理员账号登录应创建权限受限的业务用户并在pg_hba.conf中缩小允许访问的数据库、账号和地址范围。cpolar适合开发联调、远程维护和临时演示正式生产环境还应配合专用网络、访问控制、备份和审计措施。本文将带你从零开始一步步实现 PostgreSQL 的远程安全暴露用 cpolar 打通内网与公网之间的“任督二脉”真正实现“我在哪数据库就在哪”。准备好了吗让我们开始这场“反向穿越”之旅1.在Centos7上安装postgresql本次在linux环境安装。在官网上选择 Linux系统使用 yum来下载软件只需选择对应版本和平台即可生成下载和安装的脚本。按照生成的脚本安装。我这里是sudoyuminstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpmsudoyuminstall-ypostgresql14-serversudo/usr/pgsql-14/bin/postgresql-14-setup initdbsudosystemctlenablepostgresql-14sudosystemctl start postgresql-14按照步骤一步步操作。修改PostgreSQL管理员密码。supostgres // 切换SQL模式 psql // 修改密码 alter user postgres with passwordpostgres123;配置远程访问。修改pg_hba.conf新增如下sudovim/var/lib/pgsql/14/data/pg_hba.conf新增一行hostall all0.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库supostgres create database mydb;使用另一台服务器远程连接到该库psql-h192.168.42.140-p5432-Upostgres-dmydb成功2.安装cpolar内网穿透工具cpolar 可以将你本地电脑中的服务如 SSH、Web、数据库映射到公网。即使你在家里或外出时也可以通过公网地址连接回本地运行的开发环境。❤️以下是安装cpolar步骤使用一键脚本安装命令sudocurlhttps://get.cpolar.sh|sh安装完成后执行下方命令查看cpolar服务状态如图所示即为正常启动sudosystemctl status cpolarCpolar安装和成功启动服务后在浏览器上输入虚拟机主机IP加9200端口即:【http://192.168.42.101:9200】访问Cpolar管理界面使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可打开浏览器访问本地9200端口使用cpolar账户密码登录即可,登录后即可对隧道进行管理。3.配置公网地址通过配置你可以在本地 WSL 或 Linux 系统上运行 SSH 服务并通过 Cpolar 将其映射到公网从而实现从任意设备远程连接开发环境的目的。隧道名称可自定义本例使用了:postgres注意不要与已有的隧道名称重复协议tcp本地地址192.168.42.140:5432端口类型随机临时TCP端口地区China Vip创建成功后打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址接下来就可以在其他电脑或者移动端设备异地上使用任意一个地址在终端中访问即可。tcp 表示使用的协议类型2.tcp.vip.cpolar.cn是 Cpolar 提供的域名11084是随机分配的公网端口号通过 Cpolar 提供的公网地址和端口使用 SSH 协议从任意一台主机连接到postgres账号啦psql-h2.tcp.vip.cpolar.cn-p11084-Upostgres-dmydb4.保留固定TCP公网地址使用cpolar为其配置TCP地址该地址为固定地址不会随机变化。选择区域和描述有一个下拉菜单当前选择的是“China VIP”。右侧输入框用于填写描述信息。保留按钮在右侧有一个橙色的“保留”按钮点击该按钮可以保留所选的TCP地址。列表中显示了一条已保留的TCP地址记录。地区显示为“China VIP”。地址显示为“8.tcp.vip.cpolar.cn:13299”。登录cpolar web UI管理界面点击左侧仪表盘的隧道管理——隧道列表找到所要配置的隧道postgres点击右侧的编辑。修改隧道信息将保留成功的TCP端口配置到隧道中。端口类型选择固定TCP端口预留的TCP地址填写保留成功的TCP地址点击更新。创建完成后打开在线隧道列表此时可以看到随机的公网地址已经发生变化地址名称也变成了保留和固定的TCP地址。最后测试一下固定的地址是否好用测试命令psql-h8.tcp.vip.cpolar.cn-p13299-Upostgres-dmydb这样我们成功打破了“没有公网 IP 就无法远程访问数据库”的固有认知。总结PostgreSQL负责提供数据库服务cpolar负责解决没有公网IP时的跨网络连接问题。完成监听地址、认证规则和TCP隧道配置后外部设备便可以通过公网域名与端口访问内网数据库。远程连接能力不等于可以忽略安全配置。长期使用时应采用固定TCP地址、独立低权限账号和高强度密码并限制数据库的可访问范围。对于开发测试和临时协作场景这套组合能够减少云服务器和网络改造成本生产数据库则应采用更严格的专用网络与权限策略。

相关新闻