You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Windows端pgAdmin连接WSL中的PostgreSQL并解决10061连接报错

Windows pgAdmin连接WSL内PostgreSQL服务报错解决方案

你遇到的10061连接拒绝报错原文翻译如下:

无法连接到服务器:连接被拒绝 (0x0000274D / 10061)
服务器是否运行在主机 "localhost" (::1) 上并接受
5432端口的TCP/IP连接?
无法连接到服务器:连接被拒绝 (0x0000274D / 10061)
服务器是否运行在主机 "localhost" (127.0.0.1) 上并接受
5432端口的TCP/IP连接?

该报错是WSL2网络特性与PostgreSQL默认配置共同导致的,按以下步骤操作即可解决:

  • 步骤1:修改PostgreSQL监听配置
    进入WSL终端,编辑PostgreSQL主配置文件,路径随版本变化,以14版本为例执行命令:sudo vi /etc/postgresql/14/main/postgresql.conf
    找到listen_addresses配置项,将默认值localhost修改为'*',允许监听所有网卡的连接请求。
  • 步骤2:修改客户端访问授权规则
    编辑同目录下的pg_hba.conf文件,在末尾添加以下规则,放行外部访问请求:
host    all             all             0.0.0.0/0               scram-sha-256

对安全性要求高的用户可以将0.0.0.0/0替换为WSL对应的Windows网关IP段,避免所有IP都可访问。
修改完成后执行sudo service postgresql restart重启PostgreSQL服务使配置生效。

  • 步骤3:获取WSL虚拟网卡IP
    在WSL终端执行ip addr show eth0,找到inet字段后的IP地址,例如172.26.58.123,该地址即为WSL当前的内网IP。
  • 步骤4:配置pgAdmin连接
    打开pgAdmin新建服务器连接,主机地址填写上一步获取的WSL IP,端口保留默认5432,填入PostgreSQL的用户名密码即可完成连接。

可选优化(避免每次重启WSL都修改IP)

WSL每次重启后虚拟网卡IP会自动变更,不想每次查询IP的话可以在Windows侧配置端口转发:
注意:端口转发命令需要以管理员身份运行PowerShell执行,否则会配置失败

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=5432 connectaddress=替换为你的WSL IP connectport=5432

配置完成后Windows侧就可以直接用localhost:5432连接WSL内的PostgreSQL服务,WSL重启后IP变更时重新执行该命令更新转发规则即可。

内容的提问来源于stack exchange,提问作者Alexander Pikeev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:48:02