通過 SSH 連接到 Google Cloud SQL
我使用的網路不允許埠 3306,因此我無法連接到 Google Cloud SQL。如何設置代理伺服器(在允許 3306 的不同網路上),我可以通過 SSH 連接到使用 Navicat/MySQL Workbench 直接與 GCS 通信?
用一些詳細資訊擴展丹的答案:
如果您可以選擇在家中設置小型 Linux 伺服器。您可能需要修改 sshdconfig 以允許根據您的版本設置 SSH 隧道。您可能還需要修改防火牆配置以允許埠 22 連接,儘管大多數發行版現在在您安裝 openssh 時會自動執行此操作。
如果您的家庭 IP 地址發生變化,您仍然可以遠端訪問,您可以使用動態 DNS 服務。為此,我實際上更喜歡使用freedns.afraid.org並在他們託管的公開可用域之外設置一個子域。然後在我的 Linux 伺服器上添加了一個 cron 作業,每小時執行一次,並點擊一個特殊連結,以保持該子域的 IP 更新。許多家庭 WiFi 路由器實際上直接在配置中支持一個或多個動態 DNS 服務。
您還需要在家庭路由器上設置埠轉發。在埠 22 上設置一個轉發到 Linux 伺服器 IP 地址的外部連接埠。這樣做的細節很大程度上取決於您使用的路由器。
重要 無論您做什麼,都不要設置埠轉發以在外部公開埠 22。黑客/腳本小子不斷掃描埠 22。當他們找到它時,他們將開始嘗試破解 root 的密碼。如果您查看 /var/log/secure 並看到文件很大,您會注意到這種情況。我這樣做了一次,在短短幾個小時內,我就看到了已經發生的連接和黑客攻擊。
所以使用非標準埠(如 5828 或其他同樣隨機的埠)。只要保持在 1024 以上和 32767 以下。
在 Windows 上,一個非常好的 SSH 客戶端是 PuTTY ( www.chiark.greenend.org.uk/~sgtatham/putty )。在連接設置中輸入您的網際網路主機名(來自您選擇的動態 DNS 服務或通過我提到的 freedns 服務)。將您的埠設置為您在埠轉發中選擇的埠。
然後轉到 SSH/隧道部分。在該螢幕上,不要選中頂部的兩個複選框(無需允許遠端連接)。輸入源埠(如果您的客戶端電腦上沒有安裝 MySQL,則可以使用 3306)。對於目標,輸入“gcs-host:3306”。“gcs-host”表示 Google 雲服務主機名。然後對於下面的兩個單選按鈕選項,本地和自動。
保存您的連接資訊並連接。
現在您應該能夠啟動 MySQL 工作台並使用“localhost:3306”作為伺服器名稱。