我如何使用cloudflare隧道远程访问托管在树莓派(docker)上的postgres数据库? &



我试图远程访问我的postgres数据库,它托管在我的树莓派4上的docker容器上。我希望能够连接到它通过python使用类似的东西:

import psycopg2
connection = psycopg2.connect('postgres://user:password@db.mydomain.com:5432/mydbname')

数据库实际上是时间伸缩的,但应该以与postgres相同的方式工作

我现在可以访问我的网络,只要把连接指向我的树莓的内部ip:

connection = psycopg2.connect('postgres://user:password@192.168.1.***:5432/mydbname')

我已经通过docker在树莓上安装了cloudflare,并通过将db.mydomain.com指向内部ip地址192.168.1配置了一个隧道。***:5432使用TCP。按照本指南,我还在客户端机器(windows)上安装了cloudflare,并在cmd:

下运行。
cloudflared access tcp --hostname db.mydomain.com --url localhost:5432

我尝试在cloudflare中使用HTTP或HTTPS作为服务类型,但似乎没有任何工作,尽管我能够通过相同的隧道访问树莓上的其他容器,如portainer,没有问题。

我在python中得到的错误是:
psycopg2.OperationalError: connection to server at "db.mydomain.com" (104.2*.**.***), port 5432 failed: Connection timed out (0x0000274C/10060)
Is the server running on that host and accepting TCP/IP connections?

104.21。*似乎是Cloudflare的ip地址。

有谁能帮我解决这个问题吗?谢谢你。

您需要在原点安装cloudflare隧道,以便sql流量被代理。

下面是一个通过终端远程ssh的例子:https://youtu.be/fNSf7D8CXgA

我希望这对你有帮助。

最新更新