我想從本地主機連接到遠程數據庫,但遠程數據庫只允許來自白名單IP的連接。MySQL通過代理連接php
由於我在ISP的動態IP上,我不能將我的家鄉IP列入白名單,因爲它只會再次更改。
我有一個具有完全根訪問權限和固定IP的VPS,該VPS已列入白名單。
我想要的是:
- 運行從我的本地機器
- 連接到遠程數據庫通過我的VPS PHP腳本
- 得到查詢結果反饋給我的本地機器處理
我該怎麼做?
我想從本地主機連接到遠程數據庫,但遠程數據庫只允許來自白名單IP的連接。MySQL通過代理連接php
由於我在ISP的動態IP上,我不能將我的家鄉IP列入白名單,因爲它只會再次更改。
我有一個具有完全根訪問權限和固定IP的VPS,該VPS已列入白名單。
我想要的是:
我該怎麼做?
您需要解決的關鍵問題是找到一個可以添加到白名單中的靜態IP地址的主機。你說你已經解決了這個問題。但是你沒有提到vps和客戶端上運行的是什麼操作系統。如果兩者都是Linux,那麼你可以用iptables來做到這一點。如果其中之一或兩者都是mswindows,那麼你可以使用socat,但如果是我,我會在客戶端和代理之間建立一個stunnel鏈接(儘管如果服務器上的白名單隻適用於mysql連接,你可以終止服務器上的stunnel連接並完全跳過代理)使用客戶端證書身份驗證或SSH隧道。
讓PHP代理從任何IP地址執行任意SQL語句是非常危險的。我建議你將SQL語句抽象爲一個API,而不是允許任何查詢通過,而是將其限制爲一組特定的查詢以檢索或更新特定數據。您的本地機器可以調用該API來檢索或更新信息。
我知道,我絕不會自己做這件事,但我的客戶正在使用雲解決方案來完成這件事。 – Pjottur