---
title: configuración del host
slug: develop/es/configuracion-del-host
docTags: 
createdAt: 2025-03-11T07:07:19.526Z
---

El objeto *hostconfiguration* le permite recuperar información sobre interfaces de red y conectividad a Internet.

**IDL de hostconfiguration**

```javascript
interface NetworkHost {
    HostConfig defaultConfig();
    Promise<HostConfig> getConfig();
    Promise<void> applyConfig(HostConfigWritable config);
};

interface HostConfig {
    [optional] attribute String proxy;
    [optional] attribute Array<String> proxyBypassList;
    [optional] attribute Array<String> timeServerList;
    [optional] attribute String timeServerInterval;
    [optional] attribute String hostName;
	[optional] attribute bool loginPassword;
    [optional] attribute bool forwardingEnabled;
    [optional] attribute bool masqueradingEnabled;
	[optional] attribute Array<NatRule> natList;
	[optional] attribute Array<String> sshAuthorizedKeys;
};

interface HostConfigWritable : HostConfig {
    [optional] attribute String[or bool] loginPassword;
    [optional] attribute String[or bool] obfuscatedLoginPassword;
};

interface NatRule {
    attribute NatRuleMatch match;
    attribute NatRuleReplacement replace;
};

interface NatRuleMatch {
    attribute String protocol;
    [optional] attribute String sourceAddressRange;
    attribute String destinationAddressRange;
    attribute unsigned short destinationPort;
};

interface NatRuleReplacement {
    attribute String destinationAddress;
    attribute unsigned short destinationPort;
};
```

## Creación de objetos

Para crear un objeto *hostconfiguration* , primero cargue el módulo `brightsign/hostconfiguration`  usando el método `require()` . Luego cree una instancia de la clase *hostconfiguration* .

```javascript
var HostConfigurationClass = require("@brightsign/hostconfiguration");
var hc = new HostConfigurationClass();
```

## NetworkHost

Utilice esta interfaz para recuperar y modificar la configuración del host.

### getConfig()

```javascript
Promise<HostConfig> getConfig() 
```

Devuelve una interfaz `HostConfig` que contiene información actual de configuración del host:

- `proxy` <font color="#704ae0">String</font>: El servidor proxy utilizado para solicitudes HTTP, HTTPS y FTP.&#x20;
- `proxyBypassList` <font color="#704ae0">String</font>: Una lista de hosts exentos de la configuración proxy
- `timeServerList` <font color="#704ae0">String</font>: Una lista de servidores de hora. Consulte [roNetworkConfiguration.SetTimeServer()](docId\:NB5KGuPhYmfJugcnGukRT) para obtener más información.
- `timeServerInterval` <font color="#704ae0">String</font>: con qué frecuencia el reproductor se comunica con el servidor de hora y ajusta su reloj. Un valor de 0 especifica el intervalo predeterminado (12 horas).&#x20;
- `nombreDeHost` <font color="#704ae0">String</font>: El nombre de host del dispositivo
- `loginPassword` <font color="#704ae0">bool</font>: Indica si se ha configurado una contraseña de inicio de sesión para la conexión SSH.
- `reenvío habilitado ` <font color="#704ae0">bool</font>: Habilita o deshabilita el reenvío IP. Si `falso`, no se realiza ningún reenvío IP.&#x20;
- `suplantaciónActivada ` <font color="#704ae0">bool</font>: Habilita o deshabilita la traducción de direcciones con reenvío IP. Si `reenvío_habilitado` es `verdadero`, `masquerading_enabled` debe especificarse como `verdadero` o `falso`. 
  - Si `reenvío_habilitado` es `verdadero` y `masquerading_enabled` es `falso`, los datagramas IP se reenvían entre todas las interfaces y no se realiza ninguna traducción de direcciones. 
  - Si `reenvío_habilitado` es `verdadero` y `masquerading_enabled` es `verdadero`, los datagramas IP se reenvían entre todas las interfaces, pero SNAT se aplica a cualquier datagrama enviado desde una interfaz "upstream". Para este propósito, una interfaz "upstream" es cualquiera en la que se establece una ruta predeterminada. Tenga en cuenta que puede haber más de una interfaz de este tipo. Los datagramas destinados a una interfaz que no tiene una ruta predeterminada se reenvían sin NAT. 
- `natList `<font color="#704ae0">Array &lt;NatRule&gt;</font>:
- `sshAuthorizedKeys` <font color="#704ae0">Array&lt;String&gt;</font>: Una matriz de cadenas de claves públicas autorizadas. La misma propiedad puede pasarse al método `applyConfig()` para establecer las claves públicas autorizadas. Disponible a partir de BOS 10.0.11.

### applyConfig()

```javascript
Promise<void> applyConfig(HostConfigWritable config)
```

Aplica configuraciones de host al reproductor. Este método acepta una interfaz `HostConfigWritable`.

El parámetro `configuración` debe contener la configuración deseada completa. Cualquier configuración previa se sobrescribe. Si desea cambiar un elemento mientras mantiene el resto de la configuración igual, llame a `getConfig` y modifique el objeto devuelto (consulte el ejemplo en la sección Examples).

## HostConfig

Esta interfaz contiene parámetros de configuración del host:

- `proxy` <font color="#704ae0">String</font>:  El nombre o la dirección del servidor proxy utilizado para solicitudes HTTP y FTP. La cadena del proxy debe tener el formato "http\://user\:password\@hostname\:port". El nombre de host puede contener hasta cuatro caracteres "\*"; cada carácter "\*" puede utilizarse para reemplazar un octeto de la dirección IP actual. Por ejemplo, si la dirección IP es actualmente 192.168.1.2 y el proxy está configurado como "proxy-\*-\*", entonces el reproductor intentará usar un proxy llamado "proxy-192-168".
- `proxyBypassList` <font color="#704ae0">Array</font><font color="#704ae0">&lt;String&gt;</font>: Una lista de nombres de host exentos de la configuración del proxy. El reproductor intentará acceder a los hosts especificados directamente en lugar de usar el proxy especificado en el atributo `proxy` . Por ejemplo, el nombre de host "example.com" excluiría "example.com", "example.com:80" y "www\.example.com" de la configuración del proxy.
- `timeServerList` <font color="#704ae0">Array</font><font color="#704ae0">&lt;String&gt;</font>: Una matriz que contiene cero o un servidor de hora para ser utilizado por el reproductor. Una matriz vacía deshabilita el ajuste automático del reloj del reproductor. Una sola entrada indica el servidor de hora y el protocolo que deben utilizarse como URL. Los protocolos admitidos son HTTP, HTTPS y NTP. Para mantener la compatibilidad con versiones anteriores, se admite el uso de solo un nombre de host e indica que debe utilizarse NTP. Tenga en cuenta que, al usar HTTPS, la verificación del host y del par están deshabilitadas ya que el reloj del reproductor puede no ser correcto. Las siguientes son direcciones válidas de servidores de hora:
  - http\://time.brightsignnetwork.com/
  - https\://time.brightsignnetwork.com/
  - ntp\://time.brightsignnetwork.com/
  - time.brightsignnetwork.com
- `timeServerInterval` <font color="#704ae0">String</font>: Un valor que especifica con qué frecuencia (en segundos) el reproductor debe comunicarse con el servidor de hora para ajustar su reloj. El intervalo predeterminado es de 12 horas. El intervalo mínimo permitido es de 120 segundos.
- `nombreDeHost` <font color="#704ae0">String</font>: El nombre de host del reproductor. Si no se ha establecido explícitamente un nombre de host, se genera automáticamente un nombre de host basado en el número de serie del dispositivo. Pasar una cadena vacía a este método restablece el nombre de host del dispositivo a su valor generado automáticamente.
- `loginPassword` <font color="#704ae0">bool</font>: Un valor de `verdadero` significa que la contraseña existe, `falso` significa que no hay contraseña.
- `reenvíoHabilitado`  <font color="#704ae0">bool</font>: Habilita o deshabilita el reenvío IP. El reenvío IP está deshabilitado (`falso`) de forma predeterminada.
- `masqueradingEnabled` <font color="#704ae0">bool</font>: Habilita o deshabilita la traducción de direcciones de origen con reenvío de IP. Si `reenvíoHabilitado` es true, `masqueradingEnabled` debe especificarse como true o false:
  - Si `masqueradingEnabled` es false, los datagramas IP se reenvían entre todas las interfaces y no se realiza ninguna traducción de direcciones.&#x20;
  - Si `masqueradingEnabled` es true, los datagramas IP se reenvían entre todas las interfaces, pero [SNAT](https://ipwithease.com/snat-vs-dnat/) se aplica a cualquier datagrama que se envíe fuera de una interfaz "upstream" (cualquier interfaz o interfaces en las que se configure una ruta predeterminada). Los datagramas destinados a una interfaz que no tenga una ruta predeterminada se reenvían sin [NAT](https://ipwithease.com/snat-vs-dnat/).&#x20;
- `natList` <font color="#704ae0">Array&lt;NatRule&gt;</font>: Una lista de reglas de [DNAT](https://ipwithease.com/snat-vs-dnat/) que permite a los usuarios cambiar la dirección y el puerto de destino de un paquete.

## HostConfigWritable

Esta interfaz contiene configuraciones de contraseña para SSH. Al escribir configuraciones usando el método `applyConfig()` , algunos miembros de la interfaz `HostConfig` tienen un comportamiento especial.

- `loginPassword` <font color="#704ae0">String</font> o <font color="#704ae0">bool</font>:&#x20;
  - Si se proporciona una cadena, establece una contraseña de inicio de sesión en texto plano para la conexión SSH (tenga en cuenta que SSH también debe habilitarse por separado en el registro para que esto sea útil).
  - Si se proporciona el valor booleano `Verdadero` , la contraseña existente (si existe) permanece sin cambios.
  - Si se proporciona el valor booleano `Falso` , se elimina cualquier contraseña existente.
- `obfuscatedLoginPassword` <font color="#704ae0">String</font> o <font color="#704ae0">bool</font>:&#x20;
  - Como se indicó anteriormente, excepto que la contraseña debe haberse ofuscado previamente utilizando un secreto compartido. Póngase en contacto con [support@brightsign.biz](mailto\:support@brightsign.biz) para obtener más información sobre cómo generar una clave para la ofuscación y almacenarla en el reproductor.&#x20;

Este comportamiento garantiza que código como `getConfig().then((c) => { applyConfig(c); })` conserve cualquier contraseña existente, aunque la propia contraseña no sea devuelta por `getConfig()`.

## NatRuleMatch

Las reglas de esta interfaz se comparan con los destinos de los paquetes TCP o UDP que ingresan al reproductor. Si los campos del paquete coinciden con las propiedades establecidas en `NatRuleMatch`, la IP y el puerto de destino se sobrescribirán con los valores deseados en la interfaz `NatRulesReplacement` .

- `protocolo` <font color="#704ae0">String</font>: Filtro para "udp" o "tcp" (la entrada debe estar en minúsculas).
- `rango de direcciones de origen` <font color="#704ae0">String</font> <font color="#01a0af">optional</font>: Filtro para este rango de direcciones IP de origen (en formato [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#:~\:text=CIDR%20introduced%20a%20new%20method,db8%3A%3A%2F32%20for%20IPv6.) ). Se incluirá tráfico de todas las direcciones IP de origen si no se especifica este atributo opcional.&#x20;
- `destinationAddressRange` <font color="#704ae0">String</font>: El rango de direcciones IP de destino (en formato [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#:~\:text=CIDR%20introduced%20a%20new%20method,db8%3A%3A%2F32%20for%20IPv6.) ) que se sobrescribirá.
- `puerto de destino` <font color="#704ae0">unsigned short</font>: El puerto de destino que se sobrescribirá.

## NatRuleReplacement

Las propiedades de dirección y puerto especificadas en `NatRuleReplacement` se escriben en el paquete para reemplazar las propiedades seleccionadas de dirección IP y puerto. 

- `dirección de destino` <font color="#704ae0">String</font>: La dirección IP que reemplazará la dirección IP anterior en el destino.
- `puerto de destino` <font color="#704ae0">unsigned short</font>: El puerto que reemplazará el puerto anterior en el destino.

## Ejemplos

El siguiente script usa el método `applyConfig()` para configurar el nombre de host, el servidor de hora y el intervalo de actualización del servidor de hora:

```javascript
var HostConfigurationClass = require("@brightsign/hostconfiguration");
var hc = new HostConfigurationClass();

var configData = {};
configData.hostName = "myplayer";
configData.proxy = "";
configData.proxyBypassList = [];
configData.timeServerInterval = 1200;
configData.timeServerList = ["time.brightsignnetwork.com"];

console.log("***Configuring Host***")
hc.applyConfig(configData).then(
        function() {
            console.log("Success");
        })
    .catch(
        function(data) {
            console.log(JSON.stringify(data));
        }); 
```

Para cambiar un elemento mientras mantiene el resto de la configuración igual, llame a `getConfig` y modifique el objeto devuelto:

```javascript
  var HostConfiguration = require('@brightsign/hostconfiguration');
  var hostConfiguration = new HostConfiguration;
  hostConfiguration.getConfig()
  .then(function(config) {
    config.hostName = "host-brightsign";
    hostConfiguration.applyConfig(config);
  })
  .then(function() {
    console.log("Success");
  })
  .catch(function(error) {
    console.log(`${JSON.stringify(error)}`);
  });
```

