V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Koril
V2EX  ›  问与答

Frp 内网穿透本地 PostgreSQL 的一个小问题

  •  
  •   Koril · 57 天前 · 739 次点击
    这是一个创建于 57 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题简述

    frp 穿透内网的 PG 库,pg_hba.conf 似乎没生效。


    机器

    公网 Debian12

    本地 Window10


    前置条件

    公网配置好了 Frps

    本地配置好了 Frpc

    本地安装好了 PostgreSQL 数据库


    需求

    1. 本地 localhost 可以正常登录 postgres 这个超级用户

    2. 通过公网访问内网 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 该怎么做呢?

    请问各位大佬,有什么好的解决方案么?

    3 条回复    2024-10-28 09:13:11 +08:00
    lesterholy
        1
    lesterholy  
       57 天前 via iPhone
    一个想法,加一台机器放 frpc. Pg 对 frpc ip 做限制,只允许非 postgres 用户登陆,其他内网放开,直连,不走 frpc
    yinmin
        2
    yinmin  
       57 天前 via iPhone
    本机的 frpc 配置中,连接 pg 的 ip 地址不要用 127.0.0.1 改成本机的 192.168.0.x 地址试试
    Koril
        3
    Koril  
    OP
       55 天前
    @yinmin 厉害,有效果,请问这是为什么呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2195 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 01:55 · PVG 09:55 · LAX 17:55 · JFK 20:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.