【Mac】將 anydesk 作為 VPN 跳板 (建立 tcp tunnel),使用 ssh 進行遠端連線開發 (Mac anydesk ssh command line)

➣ Reading Time: 9 minutes

前言

其實這篇要講的東西與另外一篇大同小異:

【Linux】將 anydesk 作為 VPN 跳板 (建立 tcp tunnel),使用 ssh 進行遠端連線開發 (anydesk ssh command line)

不過因為 Mac 想要 ssh 需要多設定一些東西,所以就有了這篇。


我們要遠端開發的時候,最經常會需要的東西就是 VPN,
透過 VPN 能實現兩個不同網域能在同一個區網下的概念。

Anydesk 或是 teamviewer 強大的地方就在於,各種網路的跳板,
他們都已經幫我們實現了,這樣我們就可以簡單地實現不同區網間的電腦連線。

現在我們想基於 Anydesk 這個方便的機制,以 Anydesk 作為 VPN 跳板,
直接與遠端主機進行 ssh 連線。

補充:在某些遊戲中,我們會使用類似 hamachi 或 gcc LAN (已關閉服務),
達到虛擬區網的效果。

Mac 專屬步驟 – 開啟 ssh 連線方式 (外對內、內對內 (localhost))

step 1. 打開系統偏好設定,找到共享 (也可以右上角直接搜尋 「internet 共享」)

step 2. 從共享中開啟 ssh 連線的設定 (也可以右上角直接搜尋 「internet 共享」)

打勾遠端登入,即可開啟 mac ssh 功能
(開啟後請特別留意資安問題,開啟這個之前務必知道自己在做什麼。)

正式建立連線 – (共通步驟) step 0. 建立連線

  • 將我們本機端的連線 port 設為 9000 (自訂,可更改)
  • 遠端主機的 port 設定為 22 (ssh 固定 port,不可更改)

透過 ssh 連至 host

step 1. ssh 連線至遠端 terminal

在「anydesk 已建立連線」的狀態下 (可以只單純使用檔案傳輸模式),
在終端機輸入以下指令。

ssh -p 9000 ubuntu@localhost

透過 VScode 連線至遠端 host

step 1. 使用 VScode ssh 連線至遠端 (有 GUI 介面)

打開 VScode 左下角的遠端連線 (需要先安裝 ssh 相關的套件)

  • 輸入以下內容,即完成連線:
ubuntu@localhost:9000
  • 示意圖:

透過 VScode 連線至遠端 container

step 1. terminal 建立 ssh 反向通道,使本地可查看遠端 docker 內容

ssh -p 9000  -nNTL localhost:23750:/var/run/docker.sock ubuntu@localhost

step 2. VScode 設定的部分

基本的 docker 擴充功能必須先安裝好,
而且 local 也需要具備有 docker 的功能,

如果不知道如何在 windows 中啟用 docker 功能可以參考這篇:

【Docker】在 windows 上使用安裝並使用 Docker (全圖文說明) windows 安裝 WSL (Windows Subsystem for Linux)

step 2.1 打開「設定」,我們準備進行修改

我們打開並修改設定「settings.json」,
點選「檔案」->「喜好設定」中的「設定」。

step 2.2 在上方搜尋「settings.json」(不用全輸入),打開「settings.json」,我們準備進行修改

  • 或者也可以點擊右上角的符號,也可以叫出 「settings.json」

step 2.3 在「settings.json」中加入遠端 container port 的設定

在「settings.json」中加入這行

"docker.host": "tcp://localhost:23750"
  • 示意圖:

只需要確保有加入紅框那行即可,
其他行代表的是其他設定,可以不用管。

完成結果

我們可以在 local 自己的 VScode,
可以透過「Docker extension」直接看到遠端 container 內的資料。

(注意:不需要再另外經由 VScode 的 ssh 至遠端)

  • 會顯示遠端的 container

Reference

⭐Linux 指令 相關文章整理⭐:
⭐終端機 (terminal) 常用 總整理⭐:
1.(terminal指令 常用總整理)【Linux】linux/ubuntu/mac 基礎終端機 (terminal) 指令 & 基礎知識總整理,初學者/新手 必須知道的基礎指令 & 基礎知識大全(持續更新)
2.(terminal快速鍵 常用總整理)【Linux】linux/ubuntu/mac 基礎終端機 (terminal) 快速鍵/小技巧,初學者/新手 必須知道的一些實用功能!(持續更新)
3.(vim指令 常用總整理)【Linux】linux/ubuntu/mac vim 的 新手/初學者 的基礎使用指令 與 個人常用功能總整理 (持續更新)
4.【MobaXterm】在 Windows 中使用 MobaXterm VPN 連線至遠端系統 (linux, ubuntu) 遠端 ssh 顯示畫面
⭐Linux 基礎指令篇⭐:
1.【Linux】(作業系統基礎知識) 簡單理解「相對路徑」與「絕對路徑」,程式設計 初學者/新手 必須知道的路徑知識總整理
2.【Linux】linux ubuntu 中利用 mkdir 建立資料夾 相關參數總整理 (必定建立資料夾、修改資料夾權限 777)
3.【Linux】linux ubuntu 使用 terminal (終端機) 關機 shutdown、重新開機 reboot 的方法
⭐Linux 網路相關指令篇⭐:
1.【Linux】利用 ifconfig 查詢 ip 並用 scp 傳送資料 – linux, ubuntu 基礎終端機指令學習 sample code (內含範例程式碼)
2.【Linux】使用 sshfs 連線 將遠方磁碟當作像是在自己電腦的硬碟 mount disk on other computer
3.【Linux】使用 curl 將網路上的檔案 透過終端機 terminal 的方式下載 download
⭐Linux 進階指令篇 (檔案處理相關)⭐:
1.【Linux】linux, ubuntu 壓縮檔案常用指令 tar gzip zip 7z 壓縮檔案切割、壓縮檔案加密 與 解壓縮套件安裝方法 (內附圖文說明)
2.【Linux】Linux 查詢資料夾內的檔案數目 ls -1 | wc -l
3.【Linux】linux ubuntu 中利用 tail -f 可以查看 log 並不斷更新
4.【Linux】在終端機 terminal 使用 ln -s 建立如 windows, mac, ubuntu 檔案系統上的捷徑 – 軟連結 (Symbolic Link)
5.【Linux】linux, ubuntu 使用 split 指令檔案切割、檔案合併
6.【Linux】Linux 運用 sed 進行檔案內容的取代 instead 用法
7.【Linux】mac/ubuntu 如何利用 terminal 打開 GUI 資料夾總整理
⭐Linux 進階指令篇 (搜尋相關)⭐:
1.【Linux】linux, ubuntu 使用 ps, grep, pgrep 找到程式碼的 相關資訊 與 pid (ps aux, ps -ef)
2.【Linux】linux ubuntu 使用 grep, awk, xargs 尋找需要的資料,快速濾出/篩選 結果欄位 所需要的資訊 (內附圖文說明) filter column
⭐Linux 特殊應用篇⭐:
1.【Linux】Linux 增加 swap 的虛擬記憶體空間
2.【Linux】在 Ubuntu (Linux 系統) 上透過 / etc/fstab 安裝新的硬碟、新增硬碟容量 (SSD, HDD) (內附圖文說明)
3.【Linux】linux / ubuntu 複製硬碟的方法 copy all disk
4.【Linux】(內附圖文說明) ubuntu 停止自動更新的方法 disable auto update
5.【Linux】linux/ubuntu 下執行 anaconda-navigator 的方法
⭐Bash 自動化程式撰寫⭐:
1.【Bash】echo,bash 的 hello world 基本教學,開始自動化程式的第一堂課 / 撰寫腳本,利用 echo 顯示變數
⭐【喜歡我的文章嗎? 歡迎幫我按讚~ 讓基金會請創作者喝一杯咖啡!
如果喜歡我的文章,請幫我在下方【按五下Like】 (Google, Facebook 免註冊),會由 「LikeCoin」 贊助作者鼓勵繼續創作,讀者們「只需幫忙按讚,完全不用出錢」哦!

likecoin-steps
預設圖片
Howard Weng
我是 Howard Weng,很多人叫我嗡嗡。這個網站放了我的各種筆記。希望這些筆記也能順便幫助到有需要的人們!如果文章有幫助到你的話,歡迎幫我點讚哦!
文章: 391

★留個言吧!內容有誤或想要補充也歡迎與我討論!