我想使用数据库客户端(最好是DBeaver)远程连接到安装在Google Cloud Provider VM上的MySQL服务器。
我创建了一个运行Debian 9的Compute Engine VM实例,并安装了MySQL服务器。
必须通过主要内部IP访问VM。我们拥有自己的网络和一个子网。
答案 0 :(得分:0)
您可以使用Google Cloud IAP创建到您的实例的TCP隧道,并安全地连接到没有公共IP地址的实例。
在桌面上执行此命令以启动隧道。编辑命令,然后使用设置替换大写字母中的参数。
Windows语法。对于Linux,在每行末尾将^
替换为&
。
gcloud compute start-iap-tunnel INSTANCE_NAME 3306 ^
--local-host-port=localhost:3306 ^
--zone=INSTANCE_ZONE ^
--project=PROJECT_ID
创建允许Cloud IAP网络块35.235.240.0/20
的防火墙规则。通常,我会允许所有端口,这使我可以建立我需要的任何端口,例如SSH。
现在您可以在端口3306上连接到本地主机。该连接将通过隧道传输到您的实例。
如果将3306替换为22,则可以将SSH隧道传输到您的实例。
答案 1 :(得分:0)
2020更新:您可以按照here中所述进行端口转发。在笔记本电脑上运行:
gcloud compute ssh YOUR_INSTANCE_NAME \
--project YOUR_PROJECT_NAME \
--zone YOUR_INSTANCE_ZONE \
-- -L 3306:localhost:3306
之后,您可以使用localhost:3306上的DBeaver连接到远程MySQL