

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 本機代理
<a name="local-proxy"></a>

本機代理會透過 WebSocket 安全連線，使用安全通道來傳輸由來源裝置上執行的應用程式所傳送的資料。您可以從 [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)下載本機代理原始碼。

本機代理可以在兩種模式下執行：`source` 或 `destination`。在來源模式中，本機代理會在與啟動 TCP 連線的用戶端應用程式相同的裝置或網路上執行。在目的地模式中，本機代理會與目的地應用程式一起在遠端裝置上執行。單一通道可以使用通道多工，一次最多支援三個資料串流。對於每個資料串流，安全通道會使用多個 TCP 連線，進而降低逾時的可能性。如需詳細資訊，請參閱[多工處理資料串流，並在安全通道中使用同步 TCP 連線](multiplexing.md)。

# 如何使用本機代理
<a name="how-use-local-proxy"></a>

您可以在來源裝置和目的地裝置上執行本機代理，以將資料傳輸至安全通道端點。若您的裝置位於使用 Web 代理的網路中，Web 代理可在將連線轉送至網際網路之前加以攔截。在這種情況下，您需要將本機代理設定為使用 Web 代理。如需詳細資訊，請參閱[為使用 Web 代理的裝置配置本機代理](configure-local-proxy-web-proxy.md)。

## 本機代理工作流程
<a name="local-proxy-workflow"></a>

下列步驟顯示了本機代理如何在來源和目的地裝置上執行。

1. 

**將本機代理連線至安全通道**  
本機代理必須先建立安全通道的連線。當您啟動本機代理時，請使用下列引數：
   + 指定通道開啟 AWS 區域 所在 的`-r`引數。
   + `-t` 引數傳遞從 `OpenTunnel` 傳回的來源或目標用戶端存取字符。
**注意**  
使用相同用戶端存取字符值的兩個本機代理不能同時連線。

1. 

**執行來源或目的地動作**  
建立 WebSocket 連線之後，本機代理會執行來源模式或目標模式動作，取決於其組態。

   根據預設，如果發生任何輸入/輸出 (I/O) 錯誤，或 WebSocket 連線意外關閉，本機代理會嘗試重新連線至安全通道。這會導致 TCP 連線關閉。如果發生任何 TCP 通訊端錯誤，本機代理會透過通道傳送訊息，通知對方關閉其 TCP 連線。根據預設，本機代理一律使用 SSL 通訊。

1. 

**停用本機代理**  
使用通道之後，可以安全地停止本機代理程序。建議您呼叫 `CloseTunnel` 來明確地關閉通道。呼叫 後，作用中通道用戶端可能不會立即關閉`CloseTunnel`。

如需如何使用 AWS 管理主控台 開啟通道並啟動 SSH 工作階段的詳細資訊，請參閱 [開啟通道並啟動遠端裝置的 SSH 工作階段](secure-tunneling-tutorial-open-tunnel.md)。

## 本機代理最佳實務
<a name="local-proxy-security"></a>

執行本機代理時，請遵循下列最佳實務：
+ 避免使用 `-t` 本機代理引數傳入存取字符。建議您使用 `AWSIOT_TUNNEL_ACCESS_TOKEN` 環境變數來設定本機代理的存取字符。
+ 在作業系統或環境中以最低權限執行本機代理可執行檔。
  + 避免在 Windows 上以系統管理員身分執行本機代理。
  + 避免在 Linux 和 macOS 上以 root 身分執行本機代理。
+ 考慮在個別的主機、容器、沙箱，chroot jail 或虛擬化環境上執行本機代理。
+ 使用相關的安全旗標建置本地代理，具體取決於您的工具鏈。
+ 在具有多個網路界面的裝置上，使用 `-b` 引數將 TCP 通訊端繫結至用來與目標應用程式通訊的網路界面。

## 命令和輸出範例
<a name="example-cmd-output-localproxy"></a>

下列會顯示您執行的命令範例和對應的輸出。此範例顯示如何在 `source` 和 `destination` 模式下設定本機 Proxy。本機代理程式會將 HTTPS 通訊協定升級至 WebSockets，以建立長期連線，然後開始透過連線將資料傳輸至安全通道裝置端點。

**在您執行這些命令之前：**  
您必須先開啟通道並取得來源和目的地的用戶端存取字符。您亦須依照先前所述建置本機代理。於 GitHub 儲存庫中開啟[本機 Proxy 來源程式碼](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)，並遵循建置和安裝本機 Proxy 的指示。

**注意**  
用於範例中的下列命令會使用 `verbosity` 標記，說明執行本機代理後先前所述之不同步驟的概觀。建議您僅將此標記用於測試目的。

**以來源模式執行本機代理**  
下列命令顯示如何在來源模式下執行本機代理。

------
#### [ Linux/macOS ]

在 Linux 或 macOS 中，請在終端機中執行下列命令，以配置並啟動您來源上的本機代理。

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
./localproxy -s 5555 -v 5 -r us-west-2
```

其中：
+ `-s` 是來源接聽連接埠，會以來源模式啟動本機代理。
+ `-v` 是輸出的詳細程度，可以是 0 到 6 之間的值。
+ `-r` 是開啟通道的端點區域。

如需有關這些參數的詳細資訊，請參閱[使用命令列引數設定的選項](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments)。

------
#### [ Windows ]

在 Windows 中，您可將本機代理配置為類似於您處理 Linux 或 macOS 的方式，但定義環境變數的方式則與其他平台不同。在 `cmd` 視窗中執行下列命令，以配置並啟動您來源上的本機代理。

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
.\localproxy -s 5555 -v 5 -r us-west-2
```

其中：
+ `-s` 是來源接聽連接埠，會以來源模式啟動本機代理。
+ `-v` 是輸出的詳細程度，可以是 0 到 6 之間的值。
+ `-r` 是開啟通道的端點區域。

如需有關這些參數的詳細資訊，請參閱[使用命令列引數設定的選項](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments)。

------

**注意**  
在來源模式中使用最新版本的本機代理時，您必須在`--destination-client-type V1`來源裝置上包含 AWS CLI 參數，才能回溯相容性。這適用於連線至下列任何目的地模式時：  
AWS IoT 裝置用戶端
AWS IoT 安全通道元件或 AWS IoT Greengrass Version 2 安全通道元件
2022 年之前寫入的任何 AWS IoT 安全通道示範程式碼
本機代理的 1.X 版本
此參數可確保更新後的來源代理與較舊的目的地用戶端之間進行適當的通訊。如需本機代理版本的詳細資訊，請參閱 *GitHub* 上的[AWS IoT 安全通道](https://github.com/aws-samples/aws-iot-securetunneling-localproxy/blob/main/README.md#as-of-312-may-2024-update---destination-client-type-v1-will-be-a-required-parameter-when-connecting-with-the-following)。

以下是在 `source` 模式下執行本機代理的範例輸出。

```
...
...

Starting proxy in source mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Resolved proxy  server IP: 10.10.0.11
Connected successfully with proxy server
Performing SSL handshake with proxy server	
Successfully completed SSL handshake with proxy server
HTTP/1.1 101 Switching Protocols

...

Connection: upgrade
channel-id: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
upgrade: websocket

...

Web socket session ID: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
Web socket subprotocol selected: aws.iot.securetunneling-2.0
Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Setting up web socket pings for every 5000 milliseconds
Scheduled next read:

...

Starting web socket read loop continue reading...
Resolved bind IP: 127.0.0.1
Listening for new connection on port 5555
```

**以目的地模式執行本機代理**  
下列命令顯示如何在目的地模式下執行本機代理。

------
#### [ Linux/macOS ]

在 Linux 或 macOS 中，請在終端機中執行下列命令，以配置並啟動您目的地上的本機代理。

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
./localproxy -d 22 -v 5 -r us-west-2
```

其中：
+ `-d` 是以目的地模式啟動本機代理的目的地應用程式。
+ `-v` 是輸出的詳細程度，可以是 0 到 6 之間的值。
+ `-r` 是開啟通道的端點區域。

如需有關這些參數的詳細資訊，請參閱[使用命令列引數設定的選項](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments)。

------
#### [ Windows ]

在 Windows 中，您可將本機代理配置為類似於您處理 Linux 或 macOS 的方式，但定義環境變數的方式則與其他平台不同。在 `cmd` 視窗中執行下列命令，以配置並啟動您目的地上的本機代理。

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
.\localproxy -d 22 -v 5 -r us-west-2
```

其中：
+ `-d` 是以目的地模式啟動本機代理的目的地應用程式。
+ `-v` 是輸出的詳細程度，可以是 0 到 6 之間的值。
+ `-r` 是開啟通道的端點區域。

如需有關這些參數的詳細資訊，請參閱[使用命令列引數設定的選項](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments)。

------

**注意**  
在目的地模式下使用最新版本的本機代理時，您必須在`--destination-client-type V1`目的地裝置上包含 AWS CLI 參數，才能回溯相容。這適用於連線至下列其中一個來源模式時：  
從 AWS 主控台以瀏覽器為基礎的安全通道。
本機代理的 1.X 版本
此參數可確保更新的目的地代理與較舊的來源用戶端之間進行適當的通訊。如需本機代理版本的詳細資訊，請參閱 *GitHub* 上的[AWS IoT 安全通道](https://github.com/aws-samples/aws-iot-securetunneling-localproxy/blob/main/README.md#as-of-312-may-2024-update---destination-client-type-v1-will-be-a-required-parameter-when-connecting-with-the-following)。

以下是在 `destination` 模式下執行本機代理的範例輸出。

```
...
...

Starting proxy in destination mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Resolved proxy  server IP: 10.10.0.11
Connected successfully with proxy server
Performing SSL handshake with proxy server	
Successfully completed SSL handshake with proxy server
HTTP/1.1 101 Switching Protocols

...

Connection: upgrade
channel-id: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
upgrade: websocket

...

Web socket session ID: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
Web socket subprotocol selected: aws.iot.securetunneling-2.0
Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Setting up web socket pings for every 5000 milliseconds
Scheduled next read:

...

Starting web socket read loop continue reading...
```

# 為使用 Web 代理的裝置配置本機代理
<a name="configure-local-proxy-web-proxy"></a>

您可以使用 AWS IoT 裝置上的本機代理與 AWS IoT 安全通道 APIs 通訊。本機代理會透過 WebSocket 安全連線，使用安全通道來傳輸裝置應用程式所傳送的資料。本機代理可在 `source` 或 `destination` 模式中運作。在 `source` 模式中，其會在啟動 TCP 連線的相同裝置或網路上執行。在 `destination` 模式中，本機代理會與目的地應用程式一起在遠端裝置上執行。如需詳細資訊，請參閱[本機代理](local-proxy.md)。

本機代理需要直接連線至網際網路，才能使用 AWS IoT 安全通道。若為與安全通道的長期 TCP 連線，本機代理會升級 HTTPS 請求以建立與[安全通道裝置連線端點](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html)之一的 WebSockets 連線。

若您的裝置位於使用 Web 代理的網路中，Web 代理可在將連線轉送至網際網路之前加以攔截。如要建立與安全通道裝置連線端點的長期連線，請配置本機代理使用 Web 代理，如 [WebSocket 規格](https://tools.ietf.org/html/rfc6455#section-4.1)中所述。

**注意**  
[AWS IoT 裝置用戶端](iot-sdks.md#iot-sdk-device-client) 不支援使用 Web 代理的裝置。如要使用 Web 代理，您需要使用本機代理，並配置其與 Web 代理搭配使用，如下所述。

下列步驟顯示了本機代理如何與 Web 代理搭配使用。

1. 本機代理傳送 HTTP `CONNECT` 請求至 Web 代理，其包含安全通道服務的遠端地址及 Web 代理身分驗證資訊。

1. Web 代理隨後會建立遠端安全通道端點的長期連線。

1. TCP 連線已建立，本機代理現在可以來源和目的地模式運作，進行資料傳輸。

**Topics**
+ [建置本機代理](#build-local-proxy)
+ [配置您的 Web 代理](#configure-web-proxy)
+ [配置並啟動本機代理](#configure-start-local-proxy)

## 建置本機代理
<a name="build-local-proxy"></a>

於 GitHub 儲存庫中開啟[本機代理來源程式碼](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)，並遵循建置和安裝本地代理的說明。

## 配置您的 Web 代理
<a name="configure-web-proxy"></a>

本機代理依賴 [HTTP/1.1 規格](https://tools.ietf.org/html/rfc7231#section-4.3.6)所說明的 HTTP 通道機制。如要符合規格，您的 Web 代理必須允許裝置可以使用 `CONNECT` 方法。

您配置 Web 代理的方式依您使用的 Web 代理及 Web 代理版本而定。如要確保您正確地配置 Web 代理，請查看您的 Web 代理文件。

如要配置您的 Web 代理，請先識別您的 Web 代理 URL，並確認您的 Web 代理是否支援 HTTP 通道。當您配置並啟動本機代理時，Web 代理 URL 將於稍後使用。

1. 

**識別您的 Web 代理 URL**  
您的 Web 代理 URL 將會採用下列格式。

   ```
   protocol://web_proxy_host_domain:web_proxy_port
   ```

   AWS IoT 安全通道僅支援 Web 代理的基本身分驗證。如要使用基本身分驗證，您必須指定 **username** 和 **password** 以做為 Web 代理 URL 的一部分。Web 代理 URL 將會採用下列格式。

   ```
   protocol://username:password@web_proxy_host_domain:web_proxy_port
   ```
   + *通訊協定*可為 `http` 或 `https`。建議您使用 `https`。
   + *web\$1proxy\$1host\$1domain* 是您 Web 代理的 IP 地址，或可解析 Web 代理 IP 地址的 DNS 名稱。
   + *web\$1proxy\$1port* 是 Web 代理接聽的連接埠。
   + web 代理會使用此 **username** 和 **password** 來驗證請求。

1. 

**測試您的 Web 代理 URL**  
如要確認您的 Web 代理是否支援 TCP 通道，請使用 `curl` 命令並確保您取得 `2xx` 或 `3xx` 回應。

   例如，若您的 Web 代理 URL 是 `https://server.com:1235`，請使用具 `curl` 命令的 `proxy-insecure` 旗標，因為 Web 代理可能會依賴自簽憑證。

   ```
   export HTTPS_PROXY=https://server.com:1235
   curl -I https://aws.amazon.com --proxy-insecure
   ```

   若您的 Web 代理 URL 具有 `http` 連接埠 (例如，`http://server.com:1234`)，則您無須使用 `proxy-insecure` 旗標。

   ```
   export HTTPS_PROXY=http://server.com:1234
   curl -I https://aws.amazon.com
   ```

## 配置並啟動本機代理
<a name="configure-start-local-proxy"></a>

如要將本機代理配置為使用 Web 代理，您必須以 Web 代理使用的 DNS 網域名稱或 IP 地址和連接埠號來配置 `HTTPS_PROXY` 環境環境變數。

在您配置本機代理之後，您可以使用本機代理，如[讀我檔案](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#readme)文件中所述。

**注意**  
您的環境變數宣告區分大小寫。我們建議您使用全部大寫或全部小寫字母來定義每個變數一次。下列範例顯示環境變數以全部大寫字母進行宣告。若同時使用大寫和小寫字母指定相同的變數，則使用小寫字母指定的變數優先。

下列命令顯示如何將執行於目的地上的本機代理配置為使用 Web 代理並啟動本機代理。
+ `AWSIOT_TUNNEL_ACCESS_TOKEN`：此變數會保存目的地的用戶端存取字符 (CAT)。
+ `HTTPS_PROXY`：此變數會保留 Web 代理 URL 或 IP 地址，以配置本機代理。

下列範例中顯示的命令取決於您使用的作業系統，及 Web 代理是否在 HTTP 或 HTTPS 連接埠上進行接聽。

### 在 HTTP 連接埠上接聽 Web 代理
<a name="configure-start-local-proxy-http"></a>

若您的 Web 代理正在接聽 HTTP 連接埠，您可提供 `HTTPS_PROXY` 變數的 Web 代理 URL 或 IP 地址。

------
#### [ Linux/macOS ]

在 Linux 或 macOS 中，請在終端機中執行下列命令，以配置並啟動您目的地上的本機代理，以使用接聽 HTTP 連接埠的 Web 代理。

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http:proxy.example.com:1234
./localproxy -r us-east-1 -d 22
```

若您必須使用代理進行驗證，則必須指定 **username** 和 **password** 以作為 `HTTPS_PROXY` 變數的一部分。

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http://username:password@proxy.example.com:1234
./localproxy -r us-east-1 -d 22
```

------
#### [ Windows ]

在 Windows 中，您可將本機代理配置為類似於您處理 Linux 或 macOS 的方式，但定義環境變數的方式則與其他平台不同。在 `cmd` 視窗中執行下列命令，以配置並啟動您目的地上的本機代理，以使用接聽 HTTP 連接埠的 Web 代理。

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
set HTTPS_PROXY=http://proxy.example.com:1234
.\localproxy -r us-east-1 -d 22
```

若您必須使用代理進行驗證，則必須指定 **username** 和 **password** 以作為 `HTTPS_PROXY` 變數的一部分。

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
set HTTPS_PROXY=http://username:password@10.15.20.25:1234
.\localproxy -r us-east-1 -d 22
```

------

### 在 HTTPS 連接埠上接聽 Web 代理
<a name="configure-start-local-proxy-https"></a>

若您的 Web 代理正在接聽 HTTPS 連接埠，請執行下列命令。

**注意**  
若您使用 Web 代理的自我簽署憑證，或是您在沒有原生 OpenSSL 支援和預設組態的作業系統上執行本機代理，則必須依照 GitHub 儲存庫中的[憑證設定](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#certificate-setup)一節中的說明，設定您的 Web 代理憑證。

下列命令與您為 HTTP 代理配置 Web 代理的方式類似，不同之處在於您還需要指定之前所述所安裝憑證檔案的路徑。

------
#### [ Linux/macOS ]

在 Linux 或 macOS 中，請在終端機中執行下列命令，以配置執行於您目的地上的本機代理，以使用接聽 HTTPS 連接埠的 Web 代理。

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http:proxy.example.com:1234
./localproxy -r us-east-1 -d 22 -c /path/to/certs
```

若您必須使用代理進行驗證，則必須指定 **username** 和 **password** 以作為 `HTTPS_PROXY` 變數的一部分。

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http://username:password@proxy.example.com:1234
./localproxy -r us-east-1 -d 22 -c /path/to/certs
```

------
#### [ Windows ]

在 Windows 中，執行 `cmd` 視窗中的下列命令，可配置並啟動執行於目的地上的本機代理，以使用接聽 HTTP 連接埠的 Web 代理。

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
set HTTPS_PROXY=http://proxy.example.com:1234
.\localproxy -r us-east-1 -d 22 -c \path\to\certs
```

若您必須使用代理進行驗證，則必須指定 **username** 和 **password** 以作為 `HTTPS_PROXY` 變數的一部分。

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
set HTTPS_PROXY=http://username:password@10.15.20.25:1234
.\localproxy -r us-east-1 -d 22 -c \path\to\certs
```

------

### 命令和輸出範例
<a name="example-cmd-output-localproxy-webproxy"></a>

下列會顯示您執行於 Linux 作業系統上的命令範例，及相對應的輸出。該範例顯示接聽 HTTP 連接埠上的 Web 代理，及如何配置本機代理以 `source` 和 `destination` 兩種模式來使用 Web 代理。在執行這些命令之前，您必須先開啟通道並取得來源和目的地的用戶端存取字符。您還必須依照先前所述建置本機代理並配置 Web 代理。

此處概述您啟動本機代理後的步驟。本機代理：
+ 識別 Web 代理 URL，以便其可使用 URL 連線至代理伺服器。
+ 建立與 Web 代理的 TCP 連線。
+ 將 HTTP `CONNECT` 請求傳送至 Web 代理，並等待 `HTTP/1.1 200` 回應，表示已建立連線。
+ 將 HTTPS 通訊協定升級為 WebSockets 以建立一個長期的連接。
+ 透過與安全通道裝置端點的連接，開始傳輸資料。

**注意**  
用於範例中的下列命令會使用 `verbosity` 標記，說明執行本機代理後先前所述之不同步驟的概觀。建議您僅將此標記用於測試目的。

**以來源模式執行本機代理**  
下列命令顯示如何以來源模式執行本機代理。

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http:username:password@10.15.10.25:1234
./localproxy -s 5555 -v 5 -r us-west-2
```

下列會顯示以 `source` 模式執行本機代理的範例輸出。

```
...

Parsed basic auth credentials for the URL
Found Web proxy information in the environment variables, will use it to connect via the proxy.

...

Starting proxy in source mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Resolved Web proxy IP: 10.10.0.11
Connected successfully with Web Proxy
Successfully sent HTTP CONNECT to the Web proxy
Full response from the Web proxy:
HTTP/1.1 200 Connection established
TCP tunnel established successfully
Connected successfully with proxy server
Successfully completed SSL handshake with proxy server
Web socket session ID: 0a109afffee745f5-00001341-000b8138-cc6c878d80e8adb0-f186064b
Web socket subprotocol selected: aws.iot.securetunneling-2.0
Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Seting up web socket pings for every 5000 milliseconds
Scheduled next read:

...

Starting web socket read loop continue reading...
Resolved bind IP: 127.0.0.1
Listening for new connection on port 5555
```

**以目的地模式執行本機代理**  
下列命令顯示如何以目的地模式執行本機代理。

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http:username:password@10.15.10.25:1234
./localproxy -d 22 -v 5 -r us-west-2
```

下列會顯示以 `destination` 模式執行本機代理的範例輸出。

```
...

Parsed basic auth credentials for the URL
Found Web proxy information in the environment variables, will use it to connect via the proxy.

...

Starting proxy in destination mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Resolved Web proxy IP: 10.10.0.1
Connected successfully with Web Proxy
Successfully sent HTTP CONNECT to the Web proxy
Full response from the Web proxy:
HTTP/1.1 200 Connection established
TCP tunnel established successfully
Connected successfully with proxy server
Successfully completed SSL handshake with proxy server
Web socket session ID: 06717bfffed3fd05-00001355-000b8315-da3109a85da804dd-24c3d10d
Web socket subprotocol selected: aws.iot.securetunneling-2.0
Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Seting up web socket pings for every 5000 milliseconds
Scheduled next read:

...

Starting web socket read loop continue reading...
```