配置远程访问(如果需要)
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退出
失败现象:
显示 "无法打开到主机的连接"