
首先,我使用 Firewalld,我的配置如下:
- 允許所有流量(沒什麼花哨的)。
- 伺服器有 MySQL 和 Apache2 (Linux Debian)
我需要允許MySQL遠端連線到特定的IP位址(我的IP)而不關閉http連線。 MySQL 設定檔只允許一個 ip,因此我無法直接在其中新增我的 ip,因為 Apache2 將無法透過 http 連接,這就是為什麼我正在尋找防火牆解決方案。
我還嘗試使用firewalld(firewall-cmd)創建一個特定區域,但該區域最終阻止了所有http流量,因為它有一個來源ip,因此最終到達這裡。
非常感謝任何幫助。
答案1
在外部任何地方打開 MySQL 連接埠都會存在安全風險,我寧願避免它。
我會讓 MySQL 繼續監聽localhost
,而使用 SSH 連接埠轉送來遠端存取 MySQL:
- 在遠端機器上運行
ssh -L 3306:localhost:3306 [email protected]
- 在遠端電腦上,用作
localhost
MySQL 伺服器。
如果您需要始終保持 SSH 連接,那麼您可以使用一個工具autossh
來保持 SSH 連接打開,並在某個時刻斷開連接時自動重新連接。