200字
测试 PostgreSQL 远程连接
2025-12-04
2025-12-04

配置远程访问(如果需要)

1️⃣ 修改监听地址

sudo nano /etc/postgresql/16/main/postgresql.conf

找到这一行(大约在第 59 行):

#listen_addresses = 'localhost'

修改为:

listen_addresses = '*'

Ctrl+O 保存,Ctrl+X 退出


2️⃣ 配置客户端访问权限

sudo nano /etc/postgresql/16/main/pg_hba.conf

在文件末尾添加(允许所有 IP 访问):

# 允许所有 IP 通过密码访问
host    all             all             0.0.0.0/0               md5

或者更安全的方式(只允许特定 IP 段):

# 只允许 10.0.0.0/24 网段访问
host    all             all             10.0.0.0/24             md5

保存退出


3️⃣ 重启 PostgreSQL 服务

sudo systemctl restart postgresql

4️⃣ 检查服务状态

sudo systemctl status postgresql

应该看到:

● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded
     Active: active (exited)

5️⃣ 验证端口监听

sudo ss -tulnp | grep 5432

应该看到类似输出:

tcp   LISTEN 0  244  0.0.0.0:5432  0.0.0.0:*  users:(("postgres",pid=xxx,fd=x))

如果显示 127.0.0.1:5432,说明还只监听本地,需要重新检查第一步配置。

测试连接

方法一:使用 psql 命令行工具(推荐)⭐

1️⃣ 安装 PostgreSQL 客户端

访问官网下载:
https://www.postgresql.org/download/windows/

或者只安装命令行工具:
https://www.enterprisedb.com/download-postgresql-binaries

2️⃣ 测试连接命令

psql -h 10.0.0.5 -p 5432 -U postgres -d postgres

参数说明:

  • -h 10.0.0.5 - 服务器 IP(替换为你的实际 IP)

  • -p 5432 - 端口号

  • -U postgres - 用户名

  • -d postgres - 数据库名

输入密码后,如果看到 postgres=# 提示符,说明连接成功!✅


方法二:使用 PowerShell 测试端口连通性(最快)🚀

不需要安装任何软件,直接测试端口是否开放:

Test-NetConnection -ComputerName 10.0.0.5 -Port 5432

成功输出示例:

ComputerName     : 10.0.0.5
RemoteAddress    : 10.0.0.5
RemotePort       : 5432
InterfaceAlias   : Ethernet
SourceAddress    : 192.168.1.100
TcpTestSucceeded : True

如果 TcpTestSucceeded : True,说明端口已开放!✅


方法三:使用 Telnet 测试(简单快速)⚡

1️⃣ 启用 Telnet 客户端

打开 PowerShell(管理员):

dism /online /Enable-Feature /FeatureName:TelnetClient

2️⃣ 测试连接

telnet 10.0.0.5 5432

成功现象:

  • 屏幕闪一下然后黑屏,表示连接成功

  • Ctrl+] 然后输入 quit 退出

失败现象:

  • 显示 "无法打开到主机的连接"

评论