

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.

# Abra un túnel mediante la configuración manual y conéctelo a un dispositivo remoto
<a name="tunneling-tutorial-manual-setup"></a>

Al abrir un túnel, puede elegir el método de configuración rápida o manual para abrir un túnel en el dispositivo remoto. Este tutorial muestra cómo abrir un túnel mediante el método de configuración manual y cómo configurar e iniciar el proxy local para conectarse al dispositivo remoto.

Si utiliza el método de configuración manual, debe especificar manualmente las configuraciones del túnel al crear el túnel. Tras crear el túnel, puedes usar SSH en el navegador o abrir un terminal fuera de la AWS IoT consola. Este tutorial muestra cómo usar el terminal externo a la consola para acceder al dispositivo remoto. También aprenderá a configurar el proxy local y a conectarse a él para interactuar con el dispositivo remoto. Para conectarse al proxy local, debe descargar el token de acceso de origen al crear el túnel.

Con este método de configuración, puede utilizar servicios distintos de SSH, como FTP para conectarse al dispositivo remoto. Para más información sobre los distintos métodos de configuración, consulte [Métodos de configuración de túnel](secure-tunneling-tutorial-open-tunnel.md#tunneling-tutorial-setup-methods).

## Requisitos previos para el método de configuración manual
<a name="tunneling-tutorial-manual-prerequisites"></a>
+ Los firewalls detrás del dispositivo remoto deben permitir el tráfico saliente en el puerto 443. El túnel que cree utilizará este puerto para conectarse al dispositivo remoto.
+ Tiene un agente de dispositivo de IoT (consulte[Fragmento de agente de IoT](configure-remote-device.md#agent-snippet)) ejecutándose en el dispositivo remoto que se conecta a la puerta de enlace del AWS IoT dispositivo y está configurado con una suscripción a un tema de MQTT. Para obtener más información, consulte [conectar un dispositivo a la puerta de enlace del AWS IoT dispositivo](https://docs.aws.amazon.com/iot/latest/developerguide/sdk-tutorials.html).
+ Debe tener un daemon SSH ejecutándose en el dispositivo remoto.
+ Ha descargado el código fuente del proxy local [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)y lo ha creado para la plataforma que ha elegido. Nos referiremos al archivo ejecutable del proxy local compilado como `localproxy` en este tutorial.

## Abrir un túnel
<a name="open-tunnel"></a>

Puede abrir un túnel seguro utilizando la Consola de administración de AWS referencia de la AWS IoT API o la AWS CLI. Si lo desea, puede configurar un nombre de destino, pero no es obligatorio para este tutorial. Si configura el destino, la tunelización segura entregará automáticamente el token de acceso al dispositivo remoto mediante MQTT. Para obtener más información, consulte [Métodos de creación de túneles en la AWS IoT consola](secure-tunneling-tutorial-open-tunnel.md#tunneling-tutorial-flows).

**Para abrir un túnel en la consola**

1. Vaya al [Centro de túneles de la consola de AWS IoT](https://console.aws.amazon.com/iot/home#/tunnelhub) y elija **Crear túnel**.  
![\[AWS IoT consola que muestra una lista vacía de túneles con opciones para crear, cerrar o eliminar túneles.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/tunnels-page.png)

1. Para este tutorial, seleccione **Configuración manual** como método de creación del túnel y, a continuación, seleccione **Siguiente**. Para obtener información sobre el uso del método de **configuración rápida** para crear un túnel, consulte [Abra un túnel y usa SSH basado en un navegador para acceder al dispositivo remoto](tunneling-tutorial-quick-setup.md).
**nota**  
Si crea un túnel seguro desde la página de detalles de una cosa que ha creado, puede elegir si desea crear un túnel nuevo o utilizar uno existente. Para obtener más información, consulte [Abra un túnel para el dispositivo remoto y utilice SSH basado en navegador](tunneling-tutorial-existing-tunnel.md).  
![\[Hay dos opciones para configurar una conexión de túnel: configuración rápida (SSH) o configuración manual, que requiere configurar un proxy local y administrar los tokens de acceso.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/tunnels-choose-manual.PNG)

1. (Opcional) Introduzca los ajustes de configuración del túnel. También puede omitir este paso y continuar con el siguiente paso para crear un túnel. 

   Introduzca la descripción del túnel, la duración del tiempo de espera del túnel y las etiquetas de recursos como pares clave-valor para ayudarle a identificar el recurso. Para este tutorial, puede omitir la configuración de destino.
**nota**  
No se le cobrará en función de la duración durante la que mantenga abierto un túnel. Solo incurrirá en cargos al crear un túnel nuevo. Para obtener información sobre los precios, consulte **Tunelización segura** en [precios de AWS IoT Device Management](https://aws.amazon.com/iot-device-management/pricing/)

1. Descargue los tokens de acceso del cliente y, a continuación, seleccione **Listo**. Los tokens no estarán disponibles para su descarga después de seleccionar **Listo**.

   Estas fichas solo se pueden utilizar una vez para conectarse al túnel. Si extravía los tokens o el túnel se desconecta, puede generar y enviar nuevos tokens a su dispositivo remoto para volver a conectarse al túnel.  
![\[Tokens de acceso de origen y destino para crear una conexión de túnel segura, con instrucciones sobre cómo rotar y reenviar los tokens si es necesario.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/tunnel-success.png)

**Para abrir un túnel mediante la API**  
Para abrir un túnel nuevo, puede utilizar la operación [OpenTunnel](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-secure-tunneling_OpenTunnel.html)API. También puede especificar configuraciones adicionales mediante la API, como la duración del túnel y la configuración de destino.

```
aws iotsecuretunneling open-tunnel \ 
    --region us-east-1 \ 
    --endpoint https://api.us-east-1.tunneling.iot.amazonaws.com
```

Al ejecutar este comando, se crea un túnel nuevo y se proporcionan los tokens de acceso de origen y destino. 

```
{
    "tunnelId": "01234567-89ab-0123-4c56-789a01234bcd",
    "tunnelArn": "arn:aws:iot:us-east-1:123456789012:tunnel/01234567-89ab-0123-4c56-789a01234bcd",
    "sourceAccessToken": "<SOURCE_ACCESS_TOKEN>",
    "destinationAccessToken": "<DESTINATION_ACCESS_TOKEN>"
}
```

## Reenviar los tokens de acceso al túnel
<a name="resend-access-tokens"></a>

Los tokens que se obtienen al crear un túnel sólo se pueden utilizar una vez para conectarse al mismo. Si pierdes el token de acceso o el túnel se desconecta, puedes volver a enviar nuevos tokens de acceso al dispositivo remoto mediante MQTT sin coste adicional. AWS IoT Un túnel seguro revocará los tokens actuales y devolverá los nuevos al volver a conectarse al túnel.

**Para girar los tokens desde la consola**

1. Ve al [centro de túneles de la AWS IoT consola y elige el](https://console.aws.amazon.com/iot/home#/tunnels) túnel que has creado.

1. En la página de detalles del túnel, seleccione **Generar nuevos tokens de acceso** y, a continuación, seleccione **Siguiente**.

1. Descargue los nuevos tokens de acceso para tu túnel y seleccione **Listo**. Estos tokens solo se pueden usar una vez. Si extravía estos tokens o el túnel se desconecta, puede volver a enviar nuevas fichas de acceso.  
![\[Tokens de acceso para dispositivos de origen y destino con opciones para copiarlos o descargarlos. El texto explica que al rotar los tokens se revocan los tokens actuales y se generan nuevos de un solo uso para volver a conectar un túnel desconectado.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/tunnel-token-rotated.PNG)

**Para rotar los tokens de acceso mediante la API**  
Para rotar los tokens de acceso al túnel, puedes usar la operación de la [RotateTunnelAccessToken](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-secure-tunneling_RotateTunnelAccessToken.html)API para revocar los tokens actuales y devolver nuevos tokens de acceso para volver a conectarte al túnel. Por ejemplo, el siguiente comando rota los tokens de acceso del dispositivo de destino, *`RemoteThing1`*. 

```
aws iotsecuretunneling rotate-tunnel-access-token \ 
    --tunnel-id <tunnel-id> \ 
    --client-mode DESTINATION \ 
    --destination-config thingName=<RemoteThing1>,services=SSH \ 
    --region <region>
```

Al ejecutar este comando, se genera el nuevo token de acceso, como se muestra en el siguiente ejemplo. A continuación, el token se entrega al dispositivo mediante MQTT para conectarse al túnel, si el agente del dispositivo está configurado correctamente.

```
{
    "destinationAccessToken": "destination-access-token", 
    "tunnelArn": "arn:aws:iot:region:account-id:tunnel/tunnel-id"
}
```

Para ver ejemplos que muestran cómo y cuándo rotar los tokens de acceso, consulte [Resolver problemas de conectividad de túneles AWS IoT seguros mediante la rotación de los tokens de acceso de los clientes](iot-secure-tunneling-troubleshooting.md).

## Configure e inicie el proxy local
<a name="start-local-proxy"></a>

Para conectarse al dispositivo remoto, abra un terminal en su portátil y configure e inicie el proxy local. El proxy local transmite los datos enviados por la aplicación que se ejecuta en el dispositivo de origen mediante una tunelización segura a través de una conexión segura. WebSocket Puede descargar la fuente del proxy local desde. [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)

Después de configurar el proxy local, copie el token de acceso del cliente de origen y utilícelo para iniciar el proxy local en modo origen. A continuación se muestra un ejemplo de comando para iniciar el proxy local. En el siguiente comando, el proxy local está configurado para atender nuevas conexiones en el puerto 5555. En este comando:
+ `-r`especifica la Región de AWS, que debe ser la misma región en la que se creó el túnel.
+ `-s` especifica el puerto al que debe conectarse el proxy.
+ `-t` especifica el texto del token del cliente.

```
./localproxy -r us-east-1 -s 5555 -t source-client-access-token
```

Al ejecutar este comando, se iniciará el proxy local en modo fuente. Si recibe el siguiente error después de ejecutar el comando, configure la ruta CA. Para obtener más información, consulte [Proteger el proxy local de tunelización](https://github.com/aws-samples/aws-iot-securetunneling-localproxy) en. GitHub

```
Could not perform SSL handshake with proxy server: certificate verify failed
```

A continuación se muestra un ejemplo de resultado de la ejecución del proxy local en modo `source`.

```
...
...

Starting proxy in source mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-east-1.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-east-1.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
```

## Iniciar una sesión SSH
<a name="start-ssh-session"></a>

Abra otro terminal y utilice el siguiente comando para iniciar una nueva sesión SSH conectándose al proxy local en el puerto 5555.

```
ssh username@localhost -p 5555
```

Es posible que se pida una contraseña para la sesión SSH. Cuando haya terminado con la sesión SSH, escriba **exit** para cerrar la sesión.

## Limpieza
<a name="tunnel-cleanup-manual"></a>
+ 

**Cerrar el túnel**  
Le recomendamos que cierre el túnel una vez que haya terminado de usarlo. Un túnel también puede cerrarse si permanece abierto durante más tiempo del especificado. Un túnel no se puede volver a abrir una vez cerrado. Aún puede duplicar un túnel abriendo el túnel cerrado y, a continuación, seleccionando **Duplicar túnel**. Especifique la duración del túnel que quiere usar y, a continuación, cree el túnel nuevo.
  + Para cerrar un túnel individual o varios túneles desde la AWS IoT consola, vaya al [centro de túneles](https://console.aws.amazon.com/iot/home#/tunnels), elija los túneles que desee cerrar y, a continuación, elija **Cerrar túnel**.
  + Para cerrar un túnel individual o varios túneles mediante la AWS IoT API de referencia de la API, utilice la operación de la [CloseTunnel](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-secure-tunneling_CloseTunnel.html)API.

    ```
    aws iotsecuretunneling close-tunnel \ 
        --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd"
    ```
+ 

**Eliminar túnel**  
Puedes eliminar un túnel de forma permanente de tu Cuenta de AWS.
**aviso**  
Las acciones de eliminación son permanentes y no se pueden deshacer.
  + Para eliminar un túnel individual o varios túneles desde la consola de AWS IoT , vaya al [centro de túneles](https://console.aws.amazon.com/iot/home#/tunnels), elija los túneles que desee cerrar y, a continuación, elija **Eliminar túnel**.
  + Para eliminar un túnel individual o varios túneles mediante la AWS IoT API de referencia de la API, utilice la operación [CloseTunnel](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-secure-tunneling_CloseTunnel.html)API. Cuando utilice la API, ajuste la marca `delete` a `true`.

    ```
    aws iotsecuretunneling close-tunnel \ 
        --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd"
        --delete true
    ```