本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
多工處理安全通道中的多個資料串流
對於使用多個連接或連接埠的裝置,您可以使用多工功能。當您需要與遠端裝置進行多個連線以疑難排解任何問題時,也可以使用多工處理。例如,如果 Web 瀏覽器需要傳送多個 HTTP和SSH資料串流,則可以使用此瀏覽器。來自兩個串流的應用程式資料會透過多工通道同時傳輸。
範例使用案例
例如,您可能需要連接至裝置上的 Web 應用程式以更改某些連網參數,同時透過終端機發出 shell 命令,驗證裝置是否在使用新的連網參數時仍然正常運作。在此案例中,您可能需要透過 HTTP和 連線到裝置,SSH並傳輸兩個平行資料串流,以同時存取 Web 應用程式和終端機。利用多工功能,這兩個獨立串流可在同一時間透過同一個通道進行傳輸。
如何設定多工通道
下列程序將逐步引導您如何使用需要連線至多個連接埠的應用程式,來設定多工通道,以便對裝置進行疑難排解。您將設定一個具有兩個多工串流的通道:一個HTTP串流和一個SSH串流。
-
(選擇性) 建立組態檔
您可以選擇性地使用組態檔來設定來源和目的地裝置。如果您的連接埠映射可能經常變更,請使用組態檔。如果您偏好使用 明確指定連接埠映射CLI,或者不需要在指定的接聽連接埠上啟動本機代理,則可以略過此步驟。如需如何使用組態檔案的詳細資訊,請參閱 中的透過 --config 設定的選項
GitHub。 -
在來源裝置上,在要執行本機 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 將會自動選取可用的連接埠供您使用並管理映射。
現在可以透過多工通道同時傳輸來自 SSH和 HTTP 連線的應用程式資料。從下方對應圖中可看出,服務識別符的作用是一種可讀取格式,用來轉換來源和目的地裝置之間的連接埠映射。透過此組態,安全通道會轉送任何來自連接埠的傳入HTTP流量 5555
來源裝置上的連接埠 80
在目的地裝置上,以及任何來自連接埠的傳入SSH流量 3333
至連接埠 22
在目的地裝置上。