frp 穿透内网的 PG 库,pg_hba.conf
似乎没生效。
公网 Debian12
本地 Window10
公网配置好了 Frps
本地配置好了 Frpc
本地安装好了 PostgreSQL 数据库
本地 localhost 可以正常登录 postgres
这个超级用户
通过公网访问内网 PG 时,不能使用 postgres
这个用户,仅仅能用 remote_user
这个用户登录,访问 remote_db
数据库。
我在 pg_hba.conf 的配置如下:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all scram-sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all scram-sha-256
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256
# 这两行是我自己加的
host remote_db remote_user 0.0.0.0/0 scram-sha-256
host all all 0.0.0.0/0 reject
我发现公网通过 frp 连接时,依然可以登录 postgres 这个账号,我猜测是因为 frp 穿透以后,PG 把来自公网远程的连接当作了 localhost ?(我是小白,只是会用 frp ,不了解原理)
然而,我用 192.168.0.xxx 的局域网机器测试,局域网的机器只能用 remote_user
登录,这确实符合预期。
我看了文档: https://gofrp.org/zh-cn/docs/features/common/realip/ 里面写了如何把真实 IP 传给 Nginx ,那么 PG 该怎么做呢?
请问各位大佬,有什么好的解决方案么?
1
lesterholy 62 天前 via iPhone
一个想法,加一台机器放 frpc. Pg 对 frpc ip 做限制,只允许非 postgres 用户登陆,其他内网放开,直连,不走 frpc
|
2
yinmin 62 天前 via iPhone
本机的 frpc 配置中,连接 pg 的 ip 地址不要用 127.0.0.1 改成本机的 192.168.0.x 地址试试
|