iT邦幫忙

1

postgresql13遠端連線

  • 分享至 

  • xImage

下載完後 本機可以連線 但設定外部連線卻怎麼也沒成功
請問有人知道是什麼情況嗎TT
搞好幾天了 都一樣
pg_hba.conf跟postgresql.conf都設定了
https://ithelp.ithome.com.tw/upload/images/20230209/20157672laB5PnjcC9.png
https://ithelp.ithome.com.tw/upload/images/20230209/20157672bionizgfgw.png
防火牆也開通port 5432了
https://ithelp.ithome.com.tw/upload/images/20230209/20157672citGSb7VEx.png
結果外部連線還是不行
https://ithelp.ithome.com.tw/upload/images/20230209/201576721alhcpyY89.png

看更多先前的討論...收起先前的討論...
1. 外部 IP 試試看寫完整的 IP ?
2. 改過設定檔之後 postgres 有重啟嗎 ?
3. 有沒有防火牆擋 IP 的可能 ?
4. method 的地方設定是 sha-256,不確定連線的時候需不需要勾甚麼設定,但也許可以試試看 md5 ?
ip我是用xxx.xxx.x.xxx
改過設定檔後有在"服務"裡重啟postgresql
3. 有可能 但我有開port不知道怎麼會擋
4. 沒看過有人改 但我會試試
感謝你的回答~~
關於第三點,我說的是 IP 不是 Port 喔
如果 IP 本身就進不來了,就算有開 port 給他走也沒有用

我自己的理解是 IP 像是身分證,Port 是房間,你拿著錯誤的身分證是進不了大廳的,所以就算房間準備好了,你也是進不去的

因為從文章內判斷不出來你開的到底是內網還外網,就算是內網,不同網段好像也會有溝通上的權限要開? 這部分我不太熟,可能要詢問一下相關的人
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
DennisLu
iT邦研究生 1 級 ‧ 2023-02-10 11:46:23

你碼掉你的訊息中的IP也不知道你用什麼。但看起來可能是網路層面的連不上。
先來看你的設定
有效第1句 local user所有都能連 使用sha256
有效第2~3句 只接受本機連線 127.0.0.1 使用sha256 但第三句又設定trust?
有效第4句 host接受所有 ipv4 使用md5(我多問的,你的資料庫到底用md5還是sha256?)

請問一下,你每次修改 pg_hba.conf,你有下reload指令或重啟資料庫嘛?

另外去命令提示字元,下指令檢查你的5432 port是否真的有在 LISTENING
netstat -aon |FIND "LISTENING"

應該要有
0.0.0.0:5432
你的想連的IP:5432

如果沒有應該先檢查你的資料庫是不是根本就沒開成功,或者是listen ip:port跟你連的IP不同。

你的"遠端"應該還是"區域網路下的遠端"吧?

你懷疑規則的話,要先全開測試 ipv4,有效第一句設定這樣再來測。記得reload或重啟。

    host  all all 0.0.0.0/0  scram-sha-256
    
    如果走md5就是
    
    host  all all 0.0.0.0/0  md5
    

前提是你的 netstat 檢查 真的listen 5432在跑。

  1. 請問要怎麼知道資料庫是用md5還是sha256?
    在postgresql.conf裡有設置
    `# - Authentication -

#authentication_timeout = 1min # 1s-600s
password_encryption = scram-sha-256 # scram-sha-256 or md5
`
pg_hba.conf裡統一都改成sha-256了
2. 我是從系統"服務"手動重啟postgresql
3. 輸入netstat -aon |FIND "LISTENING"
是有監聽的 以下

TCP    0.0.0.0:5432           0.0.0.0:0              LISTENING       9248
  1. 你的"遠端"應該還是"區域網路下的遠端"吧?
    不太懂這句 但應該不是 是兩台完全無關也不在同地的電腦

感謝你的回答~

DennisLu iT邦研究生 1 級 ‧ 2023-02-10 22:59:33 檢舉

因為我跟不同程式設計師溝通過
有些口語上的遠端是指區網下或VPN下不同主機,
有些則是跨外網的不同主機。
但是不同工程師通稱"遠端"是常有的事情。
畢竟有些它們的工作就只是寫code而已,對網路一竅不通...

你的畫面應該是 pgadmin吧...
那你pgadmin跟postgreSQL之間的網路配置有無什麼特殊結構?
該不會是docker架設之類的吧?
是docker的話漏這點情報就差很多了...

我是在windows上直接安裝postgresql他就會自己有pgadmin 沒有用到docker
其實我有成功過一台主機用同樣步驟在其他電腦都不行
感謝你的回答~

我要發表回答

立即登入回答