首先,我使用 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 连接打开,并在某个时候断开连接时自动重新连接。