

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cómo usar el proxy local
<a name="how-use-local-proxy"></a>

Puede ejecutar el proxy local en los dispositivos de origen y destino para transmitir datos a los puntos de conexión de tunelización seguros. Si sus dispositivos están en una red que utiliza un proxy web, este puede interceptar las conexiones antes de reenviarlas a Internet. En este caso, tendrá que configurar su proxy local para utilizar el proxy web. Para obtener más información, consulte [Configure el proxy local para los dispositivos que utilizan el proxy web](configure-local-proxy-web-proxy.md). 

## Flujo de trabajo de proxy local
<a name="local-proxy-workflow"></a>

Los siguientes pasos muestran cómo se ejecuta el proxy local en los dispositivos de origen y destino.

1. 

**Conecta el proxy local a una tunelización segura**  
En primer lugar, el proxy local debe establecer una conexión para asegurar el túnel. Al iniciar el proxy local, utilice los siguientes argumentos:
   + El `-r` argumento para especificar el lugar Región de AWS en el que se abre el túnel.
   + El argumento `-t` para pasar el token de acceso del cliente de origen o de destino devuelto por el `OpenTunnel`.
**nota**  
Dos proxies locales que utilicen el mismo valor de token de acceso de cliente no se pueden conectar al mismo tiempo.

1. 

**Realizar acciones de origen o destino**  
Una vez establecida la WebSocket conexión, el proxy local realiza acciones en modo de origen o en modo de destino, según su configuración.

   De forma predeterminada, el proxy local intenta volver a conectarse a un túnel seguro si se produce algún error input/output (de E/S) o si la WebSocket conexión se cierra inesperadamente. Esto hace que la conexión TCP se cierre. Si se produce algún error de socket TCP, el proxy local envía un mensaje a través del túnel para notificar al otro extremo que cierre su conexión TCP. De forma predeterminada, el proxy local siempre usa la comunicación SSL.

1. 

**Detener el proxy local**  
Después de utilizar el túnel, puede detener el proceso del proxy local sin problemas. Le recomendamos que cierre explícitamente el túnel llamando a `CloseTunnel`. Es posible que los clientes del túnel activos no se cierren inmediatamente después de llamar a `CloseTunnel`.

Para obtener más información sobre cómo utilizar el Consola de administración de AWS para abrir un túnel e iniciar una sesión SSH, consulte. [Abra un túnel e inicie una sesión SSH en el dispositivo remoto](secure-tunneling-tutorial-open-tunnel.md)

## Mejores prácticas del proxy local
<a name="local-proxy-security"></a>

Al ejecutar el proxy local, siga estas prácticas recomendadas:
+ Evite el uso del argumento `-t` del proxy local para pasar un token de acceso. Se recomienda utilizar la variable de entorno `AWSIOT_TUNNEL_ACCESS_TOKEN` para establecer el token de acceso del proxy local.
+ Ejecute el ejecutable del proxy local con privilegios mínimos en el sistema operativo o en el entorno.
  + Evite ejecutar el proxy local como administrador en Windows.
  + Evite ejecutar el proxy local como raíz en Linux y macOS.
+ Considere la posibilidad de ejecutar el proxy local en hosts distintos, contenedores, entornos de pruebas, chroot jail o en un entorno virtualizado.
+ Cree el proxy local con indicadores de seguridad relevantes, en función de su cadena de herramientas.
+ En dispositivos con varias interfaces de red, utilice el argumento `-b` para enlazar el socket TCP a la interfaz de red utilizada para comunicarse con la aplicación de destino. 

## Comando y salida de ejemplo
<a name="example-cmd-output-localproxy"></a>

A continuación se muestra un ejemplo de comando que se ejecuta y el resultado correspondiente. El ejemplo muestra cómo se puede configurar el proxy local en ambos modos `source` y `destination`. El proxy local actualiza el protocolo HTTPS para establecer una conexión duradera y, WebSockets a continuación, comienza a transmitir datos a través de la conexión a los puntos finales del dispositivo de tunelización segura.

**Antes de ejecutar estos comandos:**  
Debe haber abierto un túnel y haber obtenido los tokens de acceso del cliente para el origen y el destino. También debe haber creado el proxy local tal y como se describió anteriormente. Para crear el proxy local, abra el [código fuente del proxy local](https://github.com/aws-samples/aws-iot-securetunneling-localproxy) en el GitHub repositorio y siga las instrucciones para crear e instalar el proxy local.

**nota**  
Los siguientes comandos utilizados en los ejemplos usan la marca `verbosity` para ilustrar una descripción general de los diferentes pasos descritos anteriormente después de ejecutar el proxy local. Le recomendamos que utilice esta marca sólo con fines de prueba.

**Ejecutar el proxy local en modo fuente**  
En los siguientes comandos se muestra cómo ejecutar el proxy local en modo origen.

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

En Linux o macOS, ejecute los siguientes comandos en el terminal para configurar e iniciar el proxy local en su fuente.

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

Donde:
+ `-s` es el puerto de escucha de origen, que inicia el proxy local en modo fuente.
+ `-v` es la verbosidad de la salida, que puede tener un valor entre cero y seis.
+ `-r` es la región del punto de conexión en la que se abre el túnel.

Para obtener más información sobre los parámetros, consulte [Opciones configuradas mediante argumentos de línea de comandos](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

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

En Windows, el proxy local se configura de forma similar a como se hace en Linux o macOS, pero la forma en que se definen las variables de entorno es diferente a la de otras plataformas. Ejecute los siguientes comandos en la ventana `cmd` para configurar e iniciar el proxy local en su fuente.

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

Donde:
+ `-s` es el puerto de escucha de origen, que inicia el proxy local en modo fuente.
+ `-v` es la verbosidad de la salida, que puede tener un valor entre cero y seis.
+ `-r` es la región del punto de conexión en la que se abre el túnel.

Para obtener más información sobre los parámetros, consulte [Opciones configuradas mediante argumentos de línea de comandos](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------

**nota**  
Si utiliza la última versión del proxy local en modo fuente, debe incluir el AWS CLI parámetro `--destination-client-type V1` en el dispositivo de origen para garantizar la compatibilidad con versiones anteriores. Esto se aplica cuando se conecta a cualquiera de estos modos destino:  
AWS IoT Dispositivo: cliente
AWS IoT Componente de tunelización segura o componente de tunelización AWS IoT Greengrass Version 2 segura
Cualquier código de demostración de AWS IoT Secure Tunneling escrito antes de 2022
Versiones 1.X del proxy local
Este parámetro garantiza una comunicación adecuada entre el proxy de origen actualizado y los clientes de destino anteriores. Para obtener más información sobre las versiones de proxy locales, consulte [AWS IoT Secure Tunneling](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) on. *GitHub*

A continuación, se muestra un ejemplo de resultado de la ejecución del proxy local en el modo `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
```

**Ejecutar el proxy local en el modo de destino**  
En los siguientes comandos se muestra cómo ejecutar el proxy local en el modo destino.

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

En Linux o macOS, ejecute los siguientes comandos en el terminal para configurar e iniciar el proxy local en su destino.

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

Donde:
+ `-d` es la aplicación de destino que inicia el proxy local en modo de destino.
+ `-v` es la verbosidad de la salida, que puede tener un valor entre cero y seis.
+ `-r` es la región del punto de conexión en la que se abre el túnel.

Para obtener más información sobre los parámetros, consulte [Opciones configuradas mediante argumentos de línea de comandos](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

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

En Windows, el proxy local se configura de forma similar a como se hace en Linux o macOS, pero la forma en que se definen las variables de entorno es diferente a la de otras plataformas. Ejecute los siguientes comandos en la ventana `cmd` para configurar e iniciar el proxy local en su destino.

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

Donde:
+ `-d` es la aplicación de destino que inicia el proxy local en modo de destino.
+ `-v` es la verbosidad de la salida, que puede tener un valor entre cero y seis.
+ `-r` es la región del punto de conexión en la que se abre el túnel.

Para obtener más información sobre los parámetros, consulte [Opciones configuradas mediante argumentos de línea de comandos](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------

**nota**  
Si utiliza la última versión del proxy local en el modo de destino, debe incluir el AWS CLI parámetro `--destination-client-type V1` en el dispositivo de destino para garantizar la compatibilidad con versiones anteriores. Esto se aplica cuando se conecta a cualquiera de estos modos origen:  
Tunelización segura basada en el navegador desde la consola. AWS 
Versiones 1.X del proxy local
Este parámetro garantiza una comunicación adecuada entre el proxy de destino actualizado y los clientes de origen anteriores. [Para obtener más información sobre las versiones de proxy locales, consulte 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)

A continuación, se muestra un ejemplo de resultado de la ejecución del proxy local en el modo `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...
```