我试图远程访问我的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
我希望这对你有帮助。