Debian PostgreSQL网络设置要注意什么
导读:Debian 上部署 PostgreSQL 的网络设置要点 一 核心配置与文件位置 配置文件路径随版本不同,Debian 12 常见为:/etc/postgresql/12/main/postgresql.conf 与 /etc/post...
Debian 上部署 PostgreSQL 的网络设置要点
一 核心配置与文件位置
- 配置文件路径随版本不同,Debian 12 常见为:/etc/postgresql/12/main/postgresql.conf 与 /etc/postgresql/12/main/pg_hba.conf;其他版本将路径中的版本号替换为实际版本。修改后需重启服务生效。
- 监听与端口:在 postgresql.conf 中设置 listen_addresses = ‘*’(或指定内网接口),确认 port = 5432。
- 访问控制:在 pg_hba.conf 中按“host 类型 数据库 用户 来源地址 认证方法”逐条授权,例如仅放通内网网段并使用强认证。
- 服务管理:使用 systemctl restart postgresql 使配置生效。
二 防火墙与监听地址
- 防火墙放行:如使用 UFW,执行 sudo ufw allow 5432/tcp;如使用云厂商安全组,同样需放通 TCP 5432。
- 监听范围:生产环境建议仅监听内网接口(如 192.168.1.0/24),避免使用 listen_addresses = ‘*’ 暴露到公网。
- 路由与连通性:确认服务器与客户端之间的网络路由、DNS/hosts 解析正常,必要时先用 ping/psql 做连通性验证。
三 认证与加密
- 认证方法优先级:优先使用 scram-sha-256 或 md5,避免使用 trust/ident/peer 对远程开放。
- 超级用户口令:首次部署后及时为 postgres 设置强口令,例如:
- 进入 psql:sudo -u postgres psql
- 修改口令:ALTER ROLE postgres WITH PASSWORD ‘StrongPass!’;
- 传输加密:在 postgresql.conf 启用 ssl = on,并配置服务器证书与私钥,防止明文传输。
四 连接稳定性与空闲超时
- TCP Keepalive 调优:长空闲链路可适当缩短系统 TCP keepalive,例如:
- net.ipv4.tcp_keepalive_time = 30
- net.ipv4.tcp_keepalive_intvl = 10
- net.ipv4.tcp_keepalive_probes = 5
在 postgresql.conf 中 tcp_keepalives_idle / interval / count 设为 0 表示使用系统默认。
- 应用侧保活:客户端启用连接池/心跳,避免 NAT/防火墙空闲超时导致“server closed the connection unexpectedly”。
- 服务端空闲控制:PostgreSQL 14+ 可用 idle_session_timeout 回收长期空闲会话,但会终止“健康”空闲连接,需结合应用评估。
五 常见排错清单
- 服务与端口:确认 systemctl status postgresql 运行正常,端口 5432 处于监听(ss -lntp | grep 5432)。
- 配置生效:修改 postgresql.conf/pg_hba.conf 后执行 systemctl restart postgresql。
- 规则顺序:pg_hba.conf 从上到下匹配,确保更具体的网段规则在前面,避免被通配规则覆盖。
- 认证失败:核对 pg_hba.conf 的认证方法与来源网段,确认用户口令与加密方式匹配。
- 日志定位:查看 /var/log/postgresql/postgresql-12-main.log(路径随版本变化),依据报错调整网络/认证/SSL 配置。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian PostgreSQL网络设置要注意什么
本文地址: https://pptw.com/jishu/771381.html
