

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Lokaler Proxy
<a name="local-proxy"></a>

Der lokale Proxy überträgt Daten, die von der auf dem Quellgerät ausgeführten Anwendung gesendet werden, mithilfe von sicherem Tunneling über eine WebSocket sichere Verbindung. Sie können die lokale Proxyquelle von herunterladen. [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy) 

Der lokale Proxy kann in zwei Modi ausgeführt werden: `source` oder `destination`. Im Quellmodus wird der lokale Proxy auf demselben Gerät oder Netzwerk ausgeführt wie die Clientanwendung, die die TCP-Verbindung initiiert. Im Zielmodus wird der lokale Proxy zusammen mit der Zielanwendung auf dem Remote-Gerät ausgeführt. Ein einzelner Tunnel kann mithilfe von Tunnelmultiplexing bis zu drei Datenströme gleichzeitig unterstützen. Für jeden Datenstrom werden beim Secure Tunneling mehrere TCP-Verbindungen verwendet, wodurch das Risiko eines Timeouts reduziert wird. Weitere Informationen finden Sie unter [Multiplex-Datenströme und gleichzeitige Verwendung von TCP-Verbindungen in einem sicheren Tunnel](multiplexing.md).

# Wie man den lokalen Proxy benutzt
<a name="how-use-local-proxy"></a>

Sie können den lokalen Proxy auf den Quell- und Zielgeräten ausführen, um Daten an die sicheren Tunneling-Endpunkte zu übertragen. Wenn sich Ihre Geräte in einem Netzwerk befinden, das einen Web-Proxy verwendet, kann der Web-Proxy die Verbindungen abfangen, bevor er sie an das Internet weiterleitet. In diesem Fall müssen Sie Ihren lokalen Proxy so konfigurieren, dass er den Web-Proxy verwendet. Weitere Informationen finden Sie unter [Konfigurieren Sie den lokalen Proxy für Geräte, die einen Web-Proxy verwenden](configure-local-proxy-web-proxy.md). 

## Workflow des lokalen Proxy
<a name="local-proxy-workflow"></a>

Die folgenden Schritte zeigen, wie der lokale Proxy auf den Quell- und Zielgeräten ausgeführt wird.

1. 

**Lokalen Proxy mit Secure Tunneling verbinden**  
Der lokale Proxy stellt zunächst eine Verbindung zum Secure Tunneling her. Wenn Sie den lokalen Proxy starten, verwenden Sie die folgenden Argumente:
   + Das `-r` Argument zur Angabe des, AWS-Region in dem der Tunnel geöffnet wird.
   + Verwenden Sie das `-t`-Argument, um entweder das vom `OpenTunnel` zurückgegebene Quell- oder Zielclient-Zugriffstoken zu übergeben.
**Anmerkung**  
Zwei lokale Proxys, die dasselbe Client-Zugriffstoken verwenden, können nicht gleichzeitig verbunden werden.

1. 

**Quell- oder Zielaktionen ausführen**  
Nachdem die WebSocket Verbindung hergestellt wurde, führt der lokale Proxy je nach Konfiguration entweder Aktionen im Quellmodus oder im Zielmodus aus.

   Standardmäßig versucht der lokale Proxy, erneut eine Verbindung zum Secure Tunneling herzustellen, wenn irgendwelche input/output (I/O-) Fehler auftreten oder wenn die WebSocket Verbindung unerwartet geschlossen wird. Dadurch wird die TCP-Verbindung geschlossen. Wenn TCP-Socket-Fehler auftreten, sendet der lokale Proxy eine Nachricht über den Tunnel, um die andere Seite zu benachrichtigen, dass die TCP-Verbindung geschlossen wird. Standardmäßig verwendet der lokale Proxy immer die SSL-Kommunikation.

1. 

**Lokalen Proxy stoppen**  
Nachdem Sie den Tunnel verwendet haben, ist es sicher, den lokalen Proxyprozess zu stoppen. Wir empfehlen Ihnen, den Tunnel explizit durch Aufrufen von `CloseTunnel` zu schließen. Aktive Tunnelclients werden möglicherweise nicht sofort nach dem Aufruf geschlossen. `CloseTunnel`

Weitere Informationen zur Verwendung von zum Öffnen eines Tunnels und AWS-Managementkonsole zum Starten einer SSH-Sitzung finden Sie unter[Öffnen Sie einen Tunnel und starten Sie eine SSH-Sitzung zum Remote-Gerät](secure-tunneling-tutorial-open-tunnel.md).

## Bewährte Methoden des lokalen Proxy
<a name="local-proxy-security"></a>

Befolgen Sie beim Ausführen des lokalen Proxy die folgenden bewährten Methoden:
+ Vermeiden Sie beim Übergeben von Zugriffstoken die Verwendung des lokalen Proxy-Arguments `-t`. Es wird empfohlen, dass Sie die `AWSIOT_TUNNEL_ACCESS_TOKEN`-Umgebungsvariable verwenden, um das Zugriffstoken für den lokalen Proxy festzulegen.
+ Führen Sie die ausführbare Datei des lokalen Proxys mit den geringsten Berechtigungen im Betriebssystem oder in der Umgebung aus.
  + Führen Sie den lokalen Proxy nicht als Administrator unter Windows aus.
  + Führen Sie den lokalen Proxy als Root unter Linux und macOS aus.
+ Erwägen Sie, den lokalen Proxy auf separaten Hosts, Containern, Sandboxen, Chroot-Jail oder einer virtualisierten Umgebung auszuführen.
+ Erstellen Sie den lokalen Proxy mit relevanten Sicherheits-Flags, abhängig von Ihrer Toolchain.
+ Verwenden Sie auf Geräten mit mehreren Netzwerkschnittstellen das `-b`-Argument, um den TCP-Socket an die Netzwerkschnittstelle zu binden, die zur Kommunikation mit der Zielanwendung verwendet wird. 

## Beispielbefehl und Ausgabe
<a name="example-cmd-output-localproxy"></a>

Hier ein Beispiel für einen Befehl, den Sie ausführen, und die entsprechende Ausgabe. Das Beispiel zeigt, wie der lokale Proxy sowohl im `source`- als auch im `destination`-Modus konfiguriert werden kann. Der lokale Proxy aktualisiert das HTTPS-Protokoll, WebSockets um eine langlebige Verbindung herzustellen, und beginnt dann mit der Übertragung von Daten über die Verbindung an die Endpunkte der sicheren Tunneling-Geräte.

**Bevor Sie diese Befehle ausführen:**  
Müssen Sie einen Tunnel geöffnet und die Client-Zugriffstoken für die Quelle und das Ziel abgerufen haben. Müssen Sie auch den lokalen Proxy wie zuvor beschrieben erstellt haben. Um den lokalen Proxy zu erstellen, öffnen Sie den [lokalen Proxy-Quellcode](https://github.com/aws-samples/aws-iot-securetunneling-localproxy) im GitHub Repository und folgen Sie den Anweisungen zum Erstellen und Installieren des lokalen Proxys.

**Anmerkung**  
Die folgenden Befehle, die in den Beispielen verwendet werden, verwenden das `verbosity`-Flag, um einen Überblick über die verschiedenen zuvor beschriebenen Schritte zu veranschaulichen, nachdem Sie den lokalen Proxy ausgeführt haben. Wir empfehlen, dass Sie das Flag nur für Tests verwenden.

**Lokalen Proxy im Quellmodus betreiben**  
Die folgenden Befehle zeigen, wie der lokale Proxy im Quellmodus ausgeführt wird.

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

Führen Sie unter Linux oder macOS die folgenden Befehle im Terminal aus, um den lokalen Proxy auf Ihrer Quelle zu konfigurieren und zu starten.

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

Wobei Folgendes gilt:
+ `-s` ist der Quell-Listen-Port, der den lokalen Proxy im Quellmodus startet.
+ `-v` ist die Ausführlichkeit der Ausgabe, die ein Wert zwischen null und dechs sein kann.
+ `-r` ist die Endpunktregion, in der der Tunnel geöffnet ist.

Weitere Informationen zu den Parametern finden Sie unter [Mit Befehlszeilenargumenten festgelegte Optionen](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

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

In Windows konfigurieren Sie den lokalen Proxy ähnlich wie für Linux oder macOS, aber die Art und Weise, wie Sie die Umgebungsvariablen definieren, unterscheidet sich von den anderen Plattformen. Führen Sie die folgenden Befehle im `cmd`-Fenster aus, um den lokalen Proxy auf Ihrer Quelle zu konfigurieren und zu starten.

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

Wobei Folgendes gilt:
+ `-s` ist der Quell-Listen-Port, der den lokalen Proxy im Quellmodus startet.
+ `-v` ist die Ausführlichkeit der Ausgabe, die ein Wert zwischen null und dechs sein kann.
+ `-r` ist die Endpunktregion, in der der Tunnel geöffnet ist.

Weitere Informationen zu den Parametern finden Sie unter [Mit Befehlszeilenargumenten festgelegte Optionen](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------

**Anmerkung**  
Wenn Sie die neueste Version des lokalen Proxys im Quellmodus verwenden, müssen Sie den AWS CLI Parameter aus Gründen der Abwärtskompatibilität `--destination-client-type V1` auf dem Quellgerät angeben. Dies gilt, wenn Sie eine Verbindung zu einem der folgenden Zielmodi herstellen:  
AWS IoT Geräte-Client
AWS IoT Komponente für sicheres Tunneling oder Komponente für AWS IoT Greengrass Version 2 sicheres Tunneling
Beliebiger AWS IoT Secure Tunneling-Democode, der vor 2022 geschrieben wurde
1.X-Versionen des lokalen Proxys
Dieser Parameter gewährleistet die korrekte Kommunikation zwischen dem aktualisierten Quell-Proxy und älteren Zielclients. Weitere Informationen zu lokalen Proxyversionen finden Sie unter [AWS IoT Secure Tunneling on. *GitHub*](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)

Im Folgenden finden Sie ein Beispiel für die Ausführung des lokalen Proxys im `source` Modus.

```
...
...

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
```

**Lokalen Proxy im Zielmodus betreiben**  
Die folgenden Befehle zeigen, wie der lokale Proxy im Zielmodus ausgeführt wird.

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

Führen Sie unter Linux oder macOS die folgenden Befehle im Terminal aus, um den lokalen Proxy auf Ihrem Ziel zu konfigurieren und zu starten.

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

Wobei Folgendes gilt:
+ `-d` ist die Zielanwendung, die den lokalen Proxy im Zielmodus startet.
+ `-v` ist die Ausführlichkeit der Ausgabe, die ein Wert zwischen null und dechs sein kann.
+ `-r` ist die Endpunktregion, in der der Tunnel geöffnet ist.

Weitere Informationen zu den Parametern finden Sie unter [Mit Befehlszeilenargumenten festgelegte Optionen](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

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

In Windows konfigurieren Sie den lokalen Proxy ähnlich wie für Linux oder macOS, aber die Art und Weise, wie Sie die Umgebungsvariablen definieren, unterscheidet sich von den anderen Plattformen. Führen Sie die folgenden Befehle im `cmd`-Fenster aus, um den lokalen Proxy auf Ihrem Ziel zu konfigurieren und zu starten.

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

Wobei Folgendes gilt:
+ `-d` ist die Zielanwendung, die den lokalen Proxy im Zielmodus startet.
+ `-v` ist die Ausführlichkeit der Ausgabe, die ein Wert zwischen null und dechs sein kann.
+ `-r` ist die Endpunktregion, in der der Tunnel geöffnet ist.

Weitere Informationen zu den Parametern finden Sie unter [Mit Befehlszeilenargumenten festgelegte Optionen](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------

**Anmerkung**  
Wenn Sie die neueste Version des lokalen Proxys im Zielmodus verwenden, müssen Sie den AWS CLI Parameter aus Gründen der Abwärtskompatibilität `--destination-client-type V1` auf dem Zielgerät angeben. Dies gilt, wenn Sie eine Verbindung zu einem der folgenden Quellmodi herstellen:  
Browserbasiertes Secure Tunneling von der Konsole aus. AWS 
1.X-Versionen des lokalen Proxys
Dieser Parameter gewährleistet die korrekte Kommunikation zwischen dem aktualisierten Ziel-Proxy und älteren Quellclients. Weitere Informationen zu lokalen Proxyversionen finden Sie unter [AWS IoT Secure Tunneling on. *GitHub*](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)

Im Folgenden finden Sie ein Beispiel für die Ausführung des lokalen Proxys im `destination` Modus.

```
...
...

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...
```

# Konfigurieren Sie den lokalen Proxy für Geräte, die einen Web-Proxy verwenden
<a name="configure-local-proxy-web-proxy"></a>

Sie können den lokalen Proxy auf AWS IoT Geräten verwenden, um mit AWS IoT Secure APIs Tunneling zu kommunizieren. Der lokale Proxy überträgt Daten, die von der Geräteanwendung gesendet werden, mithilfe von sicherem Tunneling über eine sichere Verbindung. WebSocket Der lokale Proxy kann im Modus `source` oder `destination` arbeiten. Im `source`-Modus läuft er auf demselben Gerät oder Netzwerk, das die TCP-Verbindung initiiert. Im `destination`-Modus wird der lokale Proxy zusammen mit der Zielanwendung auf dem Remote-Gerät ausgeführt. Weitere Informationen finden Sie unter [Lokaler Proxy](local-proxy.md).

Der lokale Proxy muss eine direkte Verbindung zum Internet herstellen, um AWS IoT sicheres Tunneling verwenden zu können. Für eine langlebige TCP-Verbindung mit sicherem Tunneling aktualisiert der lokale Proxy die HTTPS-Anfrage, um eine Verbindung zu einem der WebSockets Verbindungsendpunkte für [sichere](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html) Tunnelgeräte herzustellen.

Wenn sich Ihre Geräte in einem Netzwerk befinden, das einen Web-Proxy verwendet, kann der Web-Proxy die Verbindungen abfangen, bevor er sie an das Internet weiterleitet. Um eine dauerhafte Verbindung zu den Verbindungsendpunkten für Secure Tunneling-Geräte herzustellen, konfigurieren Sie Ihren lokalen Proxy so, dass er den Web-Proxy verwendet, wie in der [Websocket-Spezifikation](https://tools.ietf.org/html/rfc6455#section-4.1) beschrieben.

**Anmerkung**  
[AWS IoT Geräteclient](iot-sdks.md#iot-sdk-device-client) unterstützt keine Geräte, die einen Web-Proxy verwenden. Um mit dem Web-Proxy arbeiten zu können, müssen Sie einen lokalen Proxy verwenden und ihn so konfigurieren, dass er mit einem Web-Proxy funktioniert, wie unten beschrieben.

Die folgenden Schritte zeigen, wie der lokale Proxy mit einem Web-Proxy funktioniert.

1. Der lokale Proxy sendet eine HTTP `CONNECT`-Anfrage an den Web-Proxy, die die Remote-Adresse des Secure Tunneling-Service zusammen mit den Authentifizierungsinformationen für den Web-Proxy enthält.

1. Der Web-Proxy stellt dann eine langlebige Verbindung zu den Remote-Secure-Tunneling-Endpunkten her.

1. Die TCP-Verbindung ist hergestellt und der lokale Proxy funktioniert jetzt sowohl im Quell- als auch im Zielmodus für die Datenübertragung.

**Topics**
+ [Erstellen Sie den lokalen Proxy](#build-local-proxy)
+ [Konfigurieren Sie Ihren Web-Proxy](#configure-web-proxy)
+ [Konfigurieren und Starten des lokalen Proxys](#configure-start-local-proxy)

## Erstellen Sie den lokalen Proxy
<a name="build-local-proxy"></a>

Öffnen Sie den [lokalen Proxy-Quellcode](https://github.com/aws-samples/aws-iot-securetunneling-localproxy) im GitHub Repository und folgen Sie den Anweisungen zum Erstellen und Installieren des lokalen Proxys.

## Konfigurieren Sie Ihren Web-Proxy
<a name="configure-web-proxy"></a>

Der lokale Proxy basiert auf dem HTTP-Tunneling-Mechanismus, der in der [HTTP/1.1-Spezifikation](https://tools.ietf.org/html/rfc7231#section-4.3.6) beschrieben wird. Um den Spezifikationen zu entsprechen, muss Ihr Web-Proxy Geräten die Verwendung der `CONNECT`Methode ermöglichen.

Wie Sie Ihren Web-Proxy konfigurieren, hängt von dem von Ihnen verwendeten Web-Proxy und der Web-Proxy-Version ab. Um die korrekte Konfiguration des Web-Proxys sicherzustellen, lesen Sie die Anleitung Ihres Web-Proxys.

Zur Konfiguration Ihres Web-Proxys müssen Sie zunächst die URL Ihres Web-Proxys ermitteln und prüfen, ob Ihr Web-Proxy HTTP-Tunneling unterstützt. Die URL des Web-Proxys wird später verwendet, wenn Sie den lokalen Proxy konfigurieren und starten.

1. 

**Identifizieren Sie Ihre URL des Web-Proxys**  
Ihre URL für den Web-Proxy hat das folgende Format.

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

   AWS IoT Secure Tunneling unterstützt nur die Standardauthentifizierung für Web-Proxy. Um die Standardauthentifizierung zu verwenden, müssen Sie das **username** und **password** als Teil der URL des Web-Proxys angeben. Die URL für den Web-Proxy hat das folgende Format.

   ```
   protocol://username:password@web_proxy_host_domain:web_proxy_port
   ```
   + *protocol*kann oder sein. `http` `https` Wir empfehlen Ihnen, `https` zu verwenden.
   + *web\$1proxy\$1host\$1domain*ist die IP-Adresse Ihres Webproxys oder ein DNS-Name, der in die IP-Adresse Ihres Webproxys aufgelöst wird.
   + *web\$1proxy\$1port*ist der Port, auf dem der Web-Proxy lauscht.
   + Der Web-Proxy verwendet dies **username** und **password**, um die Anfrage zu authentifizieren.

1. 

**URL des Web-Proxys testen**  
Um zu überprüfen, ob Ihr Web-Proxy TCP-Tunneling unterstützt, verwenden Sie einen `curl` Befehl und stellen Sie sicher, dass Sie eine Antwort `2xx` oder `3xx` erhalten.

   Wenn Ihre URL für den Web-Proxy beispielsweise lautet `https://server.com:1235`, verwenden Sie ein `proxy-insecure` Flag zusammen mit dem `curl` Befehl, da der Web-Proxy möglicherweise auf einem selbstsignierten Zertifikat basiert.

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

   Wenn Ihre URL für den Web-Proxy einen `http`-Port hat (z. B.`http://server.com:1234`), müssen Sie das `proxy-insecure`-Flag nicht verwenden.

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

## Konfigurieren und Starten des lokalen Proxys
<a name="configure-start-local-proxy"></a>

Um den lokalen Proxy für die Verwendung eines Web-Proxys zu konfigurieren, müssen Sie die `HTTPS_PROXY` Umgebungsvariable entweder mit den DNS-Domain-Namen oder den IP-Adressen und Portnummern konfigurieren, die Ihr Web-Proxy verwendet.

Nachdem Sie den lokalen Proxy konfiguriert haben, können Sie den lokalen Proxy verwenden, wie in diesem [README-Dokument](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#readme) beschrieben.

**Anmerkung**  
Bei der Deklaration Ihrer Umgebungsvariablen wird die Groß-/Kleinschreibung beachtet. Wir empfehlen, jede Variable einmal zu definieren, indem Sie entweder nur Groß- oder Kleinbuchstaben verwenden. In den folgenden Beispielen wird die Umgebungsvariable in Großbuchstaben angegeben. Wenn dieselbe Variable sowohl in Groß- als auch in Kleinbuchstaben angegeben wird, hat die in Kleinbuchstaben angegebene Variable Vorrang. 

Die folgenden Befehle zeigen, wie Sie den lokalen Proxy, der auf Ihrem Ziel ausgeführt wird, so konfigurieren, dass er den Web-Proxy verwendet und den lokalen Proxy startet.
+ `AWSIOT_TUNNEL_ACCESS_TOKEN`: Diese Variable enthält das Client-Zugriffstoken (CAT) für das Ziel.
+ `HTTPS_PROXY`: Diese Variable enthält die URL des Web-Proxys oder die IP-Adresse für die Konfiguration des lokalen Proxys.

Die in den folgenden Beispielen gezeigten Befehle hängen vom verwendeten Betriebssystem ab und davon, ob der Web-Proxy einen HTTP- oder einen HTTPS-Port abhört.

### Der Web-Proxy überwacht einen HTTP-Port
<a name="configure-start-local-proxy-http"></a>

Wenn Ihr Web-Proxy einen HTTP-Port abhört, können Sie die URL des Web-Proxys oder IP-Adresse für die `HTTPS_PROXY` Variable angeben.

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

In Linux oder macOS führen Sie die folgenden Befehle im Terminal aus, um den lokalen Proxy auf Ihrem Ziel zu konfigurieren und zu starten, um einen Web-Proxy zu verwenden, der einen HTTP-Port abhört.

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

Wenn Sie sich beim Proxy authentifizieren müssen, müssen Sie ein **username** und **password** als Teil der `HTTPS_PROXY`-Variablen angeben.

```
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 ]

In Windows konfigurieren Sie den lokalen Proxy ähnlich wie für Linux oder macOS, aber die Art und Weise, wie Sie die Umgebungsvariablen definieren, unterscheidet sich von den anderen Plattformen. Führen Sie die folgenden Befehle im `cmd`-Fenster aus, um den lokalen Proxy auf Ihrem Ziel so zu konfigurieren und zu starten, dass er einen Web-Proxy verwendet, der einen HTTP-Port abhört.

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

Wenn Sie sich beim Proxy authentifizieren müssen, müssen Sie ein **username** und **password** als Teil der `HTTPS_PROXY`-Variablen angeben.

```
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
```

------

### Der Web-Proxy überwacht einen HTTPS-Port
<a name="configure-start-local-proxy-https"></a>

Führen Sie die folgenden Befehle aus, wenn Ihr Web-Proxy einen HTTPS-Port abhört. 

**Anmerkung**  
Wenn Sie ein selbstsigniertes Zertifikat für den Web-Proxy verwenden oder wenn Sie den lokalen Proxy auf einem Betriebssystem ohne native OpenSSL-Unterstützung und Standardkonfigurationen ausführen, müssen Sie Ihre Web-Proxyzertifikate wie im Abschnitt [Zertifikatseinrichtung im Repository beschrieben einrichten](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#certificate-setup). GitHub 

Die folgenden Befehle ähneln der Konfiguration Ihres Web-Proxys für einen HTTP-Proxy, mit der Ausnahme, dass Sie auch den Pfad zu den Zertifikatsdateien angeben, die Sie wie zuvor beschrieben installiert haben.

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

In Linux oder macOS führen Sie die folgenden Befehle im Terminal aus, um den lokalen Proxy auf Ihrem Ziel zu konfigurieren, um einen Web-Proxy zu verwenden, der einen HTTPS-Port abhört.

```
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
```

Wenn Sie sich beim Proxy authentifizieren müssen, müssen Sie ein **username** und **password** als Teil der `HTTPS_PROXY`-Variablen angeben.

```
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 ]

In Windows führen Sie die folgenden Befehle im `cmd`-Fenster aus, um den lokalen Proxy auf Ihrem Ziel so zu konfigurieren und zu starten, dass er einen Web-Proxy verwendet, der einen HTTP-Port abhört.

```
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
```

Wenn Sie sich beim Proxy authentifizieren müssen, müssen Sie ein **username** und **password** als Teil der `HTTPS_PROXY`-Variablen angeben.

```
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
```

------

### Beispielbefehl und Ausgabe
<a name="example-cmd-output-localproxy-webproxy"></a>

Das Folgende zeigt ein Beispiel für einen Befehl, den Sie auf einem Linux OS ausführen, und die entsprechende Ausgabe. Das Beispiel zeigt einen Web-Proxy, der einen HTTP-Port abhört, und wie der lokale Proxy so konfiguriert werden kann, dass er den Web-Proxy in beiden `source` `destination` Modi verwendet. Bevor Sie diese Befehle ausführen können, müssen Sie bereits einen Tunnel geöffnet und die Client-Zugriffstoken für die Quelle und das Ziel erhalten haben. Sie müssen auch den lokalen Proxy erstellt und Ihren Web-Proxy wie zuvor beschrieben konfiguriert haben.

Hier ist eine Übersicht über die Schritte, nachdem Sie den lokalen Proxy gestartet haben. Der lokale Proxy:
+ Identifiziert die URL des Web-Proxys, so dass er die URL zur Verbindung mit dem Proxy-Server verwenden kann.
+ Stellt eine TCP-Verbindung mit dem Web-Proxy her.
+ Sendet eine `CONNECT` HTTP-Anfrage an den Web-Proxy und wartet auf die `HTTP/1.1 200`- Antwort, die darauf hinweist, dass die Verbindung hergestellt wurde.
+ Führt ein Upgrade des HTTPS-Protokolls auf durch WebSockets , um eine langlebige Verbindung herzustellen.
+ Beginnt mit der Übertragung von Daten über die Verbindung zu den Endpunkten der Secure-Tunneling-Geräte. 

**Anmerkung**  
Die folgenden Befehle, die in den Beispielen verwendet werden, verwenden das `verbosity`-Flag, um einen Überblick über die verschiedenen zuvor beschriebenen Schritte zu veranschaulichen, nachdem Sie den lokalen Proxy ausgeführt haben. Wir empfehlen, dass Sie das Flag nur für Tests verwenden.

**Lokalen Proxy im Quellmodus betreiben**  
Die folgenden Befehle veranschaulichen die Ausführung des lokalen Proxys im Quellmodus.

```
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
```

Im Folgenden finden Sie ein Beispiel für die Ausgabe der Ausführung des lokalen Proxys im `source`-Modus.

```
...

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
```

**Lokalen Proxy im Zielmodus betreiben**  
Die folgenden Befehle veranschaulichen die Ausführung des lokalen Proxys im Zielmodus.

```
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
```

Im Folgenden finden Sie ein Beispiel für die Ausgabe der Ausführung des lokalen Proxys im `destination`-Modus.

```
...

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...
```