本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對於使用多個連接或連接埠的裝置,您可以使用多工功能。當您需要與遠端裝置進行多個連線以疑難排解任何問題時,也可以使用多工處理。例如,可使用於需要傳送多個 HTTP 和 SSH 資料串流的 Web 瀏覽器。來自兩個串流的應用程式資料會透過多工通道同時傳輸。
範例使用案例
例如,您可能需要連接至裝置上的 Web 應用程式以更改某些連網參數,同時透過終端機發出 shell 命令,驗證裝置是否在使用新的連網參數時仍然正常運作。在此案例中,您可能需要透過 HTTP 和 SSH 連線到裝置,並傳輸兩個平行資料串流,以同時存取 Web 應用程式和終端機。利用多工功能,這兩個獨立串流可在同一時間透過同一個通道進行傳輸。

如何設定多工通道
下列程序將逐步引導您如何使用需要連線至多個連接埠的應用程式,來設定多工通道,以便對裝置進行疑難排解。您會設定一個具有兩個多工串流的通道:一個 HTTP 串流和一個 SSH 串流。
-
(選擇性) 建立組態檔
您可以選擇性地使用組態檔來設定來源和目的地裝置。如果您的連接埠映射可能經常變更,請使用組態檔。如果您喜歡使用 CLI 指定連接埠映射,或無需在指定的接聽連接埠上啟動本機 Proxy,則可略過此步驟。如需有關如何使用組態檔的詳細資訊,請參閱 GitHub 中透過 —config 設定的選項
。 -
在來源裝置上,在要執行本機 Proxy 的資料夾中,建立名為
Config
的組態資料夾。在此資料夾中建立一個名為SSHSource.ini
的檔案,其內容如下:HTTP1 =
5555
SSH1 =3333
-
在目的地裝置上,在要執行本機 Proxy 的資料夾中,建立名為
Config
的組態資料夾。在此資料夾中建立一個名為SSHDestination.ini
的檔案,其內容如下:HTTP1 =
80
SSH1 =22
-
-
開啟通道
使用
OpenTunnel
API 操作或open-tunnel
CLI 命令開啟通道。透過指定SSH1
和HTTP1
做為服務,以及對應至遠端裝置的 AWS IoT 物件名稱來設定目的地。您的 SSH 和 HTTP 應用程式正在此遠端裝置上執行。您必須已在 AWS IoT 登錄檔中建立 IoT 物件。如需詳細資訊,請參閱使用登錄檔管理物件。aws iotsecuretunneling open-tunnel \ --destination-config thingName=
RemoteDevice1
,services=HTTP1,SSH1執行此命令會產生您將用來執行本機 Proxy 的來源和目的地存取字符。
{ "tunnelId": "
b2de92a3-b8ff-46c0-b0f2-afa28b00cecd
", "tunnelArn": "arn:aws:iot:us-west-2
:431600097591
:tunnel/b2de92a3-b8ff-46c0-b0f2-afa28b00cecd
", "sourceAccessToken":source_client_access_token
, "destinationAccessToken":destination_client_access_token
} -
配置並啟動本機代理
在您可以執行本機代理之前,請先設定 AWS IoT Device Client,或從 GitHub
下載本機代理原始程式碼,然後針對您選擇的平台建置它。然後,您可以啟動目的地和來源本機 Proxy 以連接到安全通道。如需設定和使用本機 Proxy 的詳細資訊,請參閱 如何使用本機代理。 注意
在來源裝置上,如果您不使用任何組態檔或使用 CLI 指定連接埠映射,您仍然可以使用相同的命令來執行本機 Proxy。本機 Proxy 將會自動選取可用的連接埠供您使用並管理映射。
執行下列命令,以使用組態檔在來源和目的地模式下執行本機 Proxy。
// ----------------- Start the destination local proxy ----------------------- ./localproxy -r
us-east-1
-m dst -tdestination_client_access_token
// ----------------- Start the source local proxy ---------------------------- // You also run the same command below if you want the local proxy to // choose the mappings for you instead of using configuration files. ./localproxy -rus-east-1
-m src -tsource_client_access_token
來自 SSH 和 HTTP 連線的應用程式資料現在可以透過多工通道同時進行傳輸。從下方對應圖中可看出,服務識別符的作用是一種可讀取格式,用來轉換來源和目的地裝置之間的連接埠映射。透過此組態,安全通道會將來源裝置上連接埠 5555
的任何傳入 HTTP 流量轉送至目的地裝置上的連接埠 80
,以及從連接埠 3333
傳入的 SSH 流量轉送至目的地裝置上的連接埠 22
。
