Vous êtes sur la page 1sur 18

Page 1 / 18  

https://ngrok.com/docs

Detectar idioma español

ngrok CÓMO FUNCIONA PRECIOS DESCARGAR DOCUMENTOS INICIAR SESIÓN REGISTRARSE →

Empezando Documentación
Exponer un servidor web local a
Internet
Inspeccionando su tráfico
Exponer un servidor web local a Internet
Reproducción de solicitudes ngrok le permite exponer un servidor web que se ejecuta en su máquina local a Internet. Solo dile a ngrok en
Solicitar validación del cuerpo qué puerto está escuchando tu servidor web.
Instalando su authtoken
Si no sabe en qué puerto está escuchando su servidor web, probablemente sea el puerto 80, el
predeterminado para HTTP.
Túneles HTTP
Nombres de subdominio Ejemplo: exponer un servidor web en el puerto 80 de su máquina local a Internet
personalizados
Contraseña protegiendo tu túnel  ngrok http 80 
Túneles en dominios personalizados
(URL de etiqueta blanca)
Desactivando la inspección Cuando inicie ngrok, mostrará una IU en su terminal con la URL pública de su túnel y otra información de
Reescribiendo el encabezado del estado y métricas sobre las conexiones realizadas a través de su túnel.
host
La interfaz de usuario de la consola ngrok
Túneles solo HTTP o HTTPS
Websockets
 ngrok by @inconshreveable Tunnel Status online Version 2.0/2.0 Web Interface http://127.0.0.
1:4040 Forwarding http://92832de0.ngrok.io ‐> localhost:80 Forwarding https://92832de0.ngrok.
Túneles TLS
io ‐> localhost:80 Connnections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00 
Túneles TLS sin advertencias de
certificado
Terminando conexiones TLS
Ejecución de servicios que no son
HTTP sobre túneles TLS Inspeccionando su trá co
Clientes compatibles
ngrok proporciona una interfaz de usuario web en tiempo real en la que puede introspectar todo el tráfico
HTTP que se ejecuta en sus túneles. Después de iniciar ngrok, abra http: // localhost: 4040 en un navegador
Túneles TCP
web para inspeccionar los detalles de la solicitud.
Ejemplos
Escuchando en una dirección remota Intente hacer una solicitud a su URL pública. Después de hacerlo, mira hacia atrás en la interfaz de usuario de
reservada inspección. Verá todos los detalles de la solicitud y respuesta, incluidos el tiempo, la duración, los
encabezados, los parámetros de consulta y la carga útil de la solicitud, así como los bytes brutos en el cable.
Más opciones de túnel Introspección detallada de las solicitudes y respuestas HTTP
Dominios comodín
Reglas de dominio comodín
Reenvío a servidores en una máquina
diferente (servicios no locales)

Infraestructura global
Ubicaciones
Uso
Limitaciones

Acceso al túnel de la lista


blanca de IP
Administrar la lista blanca
Rangos de IP

Archivo de con guración


Ubicación del archivo de
configuración
Ubicación predeterminada del
archivo de configuración
Definiciones de túneles
Ejecutando múltiples túneles
simultáneos
Ejemplo de archivos de
configuración
Opciones de configuración

Usando ngrok con ... Reproducción de solicitudes


Page 1 / 18  
Page 2 / 18  
Wordpress El desarrollo de webhooks emitidos por API externas a menudo puede ralentizar su ciclo de desarrollo al
Hosts virtuales (pow, MAMP, WAMP requerirle que haga algo de trabajo, como marcar un teléfono, para activar la solicitud de enlace. ngrok le
y otros) permite reproducir cualquier solicitud con un solo clic, acelerando drásticamente su ciclo de iteración. Haga
Estudio visual clic en el botón Reproducir en la esquina superior derecha de cualquier solicitud en la interfaz de usuario de
Un proxy de salida inspección web para reproducirlo.
node.js
Marioneta Repite cualquier solicitud contra tu servidor web tunelizado con un clic

Solución de problemas
CORS con autenticación básica HTTP

API cliente
Base URL y Autenticación
Tipos de contenido admitidos
Versiones y estabilidad de API
Listar túneles
Comience el túnel
Detalle del túnel
Stop Tunnel
Lista de solicitudes capturadas
Reproducción de solicitud capturada
Eliminar solicitudes capturadas
Detalle de solicitud capturada
Solicitar validación del cuerpo
Compatibilidad al revés
ngrok tiene soporte especial para los formatos de intercambio de datos más comunes en uso en la web.
Promesa de compatibilidad
Cualquier dato XML o JSON en los cuerpos de solicitud o respuesta se imprime automáticamente para usted
¿Qué interfaces están sujetas a la
y se comprueba si hay errores de sintaxis.
promesa?
Cambios en 2.2 La ubicación de un error de sintaxis JSON está resaltada
Cambios en 2.1
ngrok 1.x sunset

Preguntas más frecuentes


¿Qué información se almacena sobre
mis túneles?
¿Cómo pronuncio ngrok?

documentación de enlace
ngrok

Instalando su Authtoken
Muchas funciones avanzadas del servicio ngrok.com que se describen en secciones posteriores requieren que
se registre para obtener una cuenta . Una vez que se haya registrado, debe configurar ngrok con la
autenticación que aparece en su tablero. Esto le otorgará acceso a funciones de solo cuenta. ngrok tiene un
simple comando 'authtoken' para hacer esto fácil. Debajo del capó, todo lo que hace el comando authtoken
es agregar (o modificar) la propiedad authtoken en su archivo de configuración ngrok .

Instala tu authtoken

 ngrok authtoken <YOUR_AUTHTOKEN> 

Page 2 / 18  
Page 3 / 18  

Túneles HTTP
Nombres de subdominio personalizados
ngrok asigna nombres hexadecimales aleatorios a los túneles HTTP que abre para usted. Esto está bien para
los usos personales de una sola vez. Pero si muestra la URL en un hackathon o se integra con un webhook de
un tercero, puede ser frustrante si el nombre del túnel cambia o es difícil de leer. Puede especificar un
subdominio personalizado para su URL de túnel con el ‐subdomain .

Ejemplo: abra un túnel con el subdominio 'inconshreveable'

 ngrok http ‐subdomain=inconshreveable 80 

 ngrok by @inconshreveable ... Forwarding http://inconshreveable.ngrok.io ‐> 127.0.0.1:80 For
warding https://inconshreveable.ngrok.io ‐> 127.0.0.1:80 

Contraseña protegiendo tu túnel


Cualquiera que pueda adivinar la URL de su túnel puede acceder a su servidor web local a menos que lo
proteja con una contraseña. Puede hacer que sus túneles sean seguros con el ‐auth interruptor. Esto aplica
HTTP Basic Auth en todas las solicitudes con el nombre de usuario y la contraseña que especifique como
argumento.

Ejemplo: proteger con contraseña tu túnel

 ngrok http ‐auth="username:password" 8080 

Túneles en dominios personalizados (URL de etiqueta


blanca)
En lugar de que su túnel aparezca como un subdominio de ngrok.io , puede ejecutar túneles ngrok sobre
sus dominios. Para ejecutar un túnel sobre dev.example.com , siga estos pasos:

1. Ingrese dev.example.com como un dominio reservado en la pestaña Reservada de su panel de control de


ngrok.com . Esto garantiza que nadie más pueda secuestrar su nombre de dominio con su propio túnel.
2. En su tablero, haga clic en el icono 'CNAME' para copiar su objetivo CNAME.

3. Cree un registro DNS CNAME desde dev.example.com a su destino CNAME. En este ejemplo,
apuntaríamos el registro CNAME a 2w9c34maz.cname.ngrok.io
4. Invoca ngrok con el parámetro ‐hostname y especifica el nombre de tu dominio personalizado como
argumento. Asegúrese de que la región que especifique coincida con la región en la que reservó su
dominio.

Ejemplo: ejecutar un túnel sobre un dominio personalizado

 ngrok http ‐region=us ‐hostname=dev.example.com 8000 

El acceso a túneles de dominio personalizado a través de HTTPS seguirá funcionando, pero el


certificado no coincidirá. Si tiene un certificado / par de claves TLS, intente utilizar un túnel TLS.

Desactivando la inspección
ngrok registra cada solicitud HTTP y respuesta sobre sus túneles para inspección y reproducción. Si bien esto
es realmente útil para el desarrollo, cuando está ejecutando ngrok en servicios de producción, es posible que
desee deshabilitarlo para seguridad y rendimiento. Use el interruptor ‐inspect para deshabilitar la
inspección en su túnel.

Page 3 / 18  
Page 4 / 18  
Ejemplo: un túnel http sin inspección

 ngrok http ‐inspect=false 80 

Reescribiendo el encabezado del host


Al reenviar a un puerto local, ngrok no modifica las solicitudes HTTP en túnel, se copian a su servidor byte por
byte a medida que se reciben. Algunos servidores de aplicaciones como WAMP, MAMP y pow usan el
encabezado Host para determinar qué sitio de desarrollo mostrar. Por esta razón, ngrok puede reescribir sus
solicitudes con un encabezado de host modificado. Use el conmutador ‐host‐header para reescribir las
solicitudes HTTP entrantes.

Si se especifica rewrite , el encabezado del Host se reescribirá para que coincida con la parte de nombre de
host de la dirección de reenvío. Cualquier otro valor hará que el encabezado del Host se reescriba a ese
valor.

Vuelve a escribir el encabezado del host en 'site.dev'

 ngrok http ‐host‐header=rewrite site.dev:80 

Vuelva a escribir el encabezado del host en 'example.com'

 ngrok http ‐host‐header=example.com 80 

Túneles solo HTTP o HTTPS


De forma predeterminada, cuando ngrok ejecuta un túnel HTTP, abre puntos finales para el tráfico HTTP y
HTTPS. Si solo desea reenviar tráfico HTTP o HTTPS, pero no ambos, puede alternar este comportamiento con
el ‐bind‐tls .

Ejemplo: escuchar solo en un punto nal del túnel HTTP

 ngrok http ‐bind‐tls=false site.dev:80 

Ejemplo: escuchar solo en un punto nal del túnel HTTPS

 ngrok http ‐bind‐tls=true site.dev:80 

Websockets
Los puntos finales de Websocket funcionan a través de los túneles http de ngrok sin ningún cambio. Sin
embargo, actualmente no hay soporte para introspectarlos más allá de la respuesta inicial de 101 Protocolos
de Conmutación.

Túneles TLS
Los túneles HTTPS terminan todo el tráfico TLS (SSL) en los servidores ngrok.com utilizando los certificados
ngrok.com. Para los servicios de nivel de producción, querrá que su tráfico en túnel se cifre con su propia clave
y certificado TLS. ngrok lo hace extraordinariamente fácil con los túneles TLS.

Reenviar trá co TLS a un servidor HTTPS local en el puerto 443

 ngrok tls ‐subdomain=encrypted 443 

Una vez que el túnel se esté ejecutando, intente acceder a él con curl.

 curl ‐‐insecure https://encrypted.ngrok.io 

Túneles TLS sin advertencias de certi cado


Tenga en cuenta que ‐‐insecure opción en el ejemplo del comando curl anterior? ngrok.io especificarlo

Page 4 / 18  
Page 5 / 18  
porque su servidor HTTPS local no tiene la clave TLS y el certificado necesarios para finalizar el tráfico de los
subdominios ngrok.io . Si intenta cargar esa página en un navegador web, notará que le dice que la página
podría ser insegura porque el certificado no coincide.

Si desea que sus certificados coincidan y estén protegidos de los ataques de hombre en el medio, necesita dos
cosas. En primer lugar, deberá comprar un certificado SSL (TLS) para un nombre de dominio que tenga y
configurar su servidor web local para usar ese certificado y su clave privada para finalizar las conexiones TLS.
Cómo hacer esto es específico para su servidor web y proveedor de certificado SSL y más allá del alcance de
esta documentación. A modo de ejemplo, supondremos que recibió un certificado SSL para el dominio
secure.example.com .

Una vez que tenga su clave y certificado y los haya instalado correctamente, es hora de ejecutar un túnel TLS
en su propio nombre de dominio personalizado. Las instrucciones para configurar esto son idénticas a las
descritas en la sección de túneles HTTP: túneles en dominios personalizados . El dominio personalizado que
registra debe ser el mismo que el de su certificado SSL ( secure.example.com ). Después de configurar el
dominio personalizado, use el argumento ‐hostname para iniciar el túnel TLS en su propio dominio.

Reenviar trá co TLS sobre su propio dominio personalizado

 ngrok tls ‐region=us ‐hostname=secure.example.com 443 

Terminando conexiones TLS


Es posible que el servicio que intentas exponer no tenga la capacidad de finalizar las conexiones TLS. El cliente
de ngrok puede hacer esto por usted para que pueda encriptar su tráfico de extremo a extremo, pero sin
tener que preocuparse de si el servicio local tiene soporte TLS. Especifique las opciones de línea de comando
‐crt y ‐key para especificar las rutas del sistema de archivos a su clave y certificado TLS y el cliente ngrok
se encargará de terminar las conexiones TLS por usted.

Descargar la terminación TLS al cliente ngrok

 ngrok tls ‐region=us ‐hostname secure.example.com ‐key /path/to/tls.key ‐crt /path/to/tls.cr
t 80 

Ejecución de servicios que no son HTTP sobre túneles


TLS
Los túneles ngrok TLS n o hacen suposiciones sobre el protocolo subyacente que se transporta. Todos
los ejemplos en esta documentación usan HTTPS porque es el caso de uso más común, pero puede ejecutar
cualquier protocolo envuelto en TLS sobre un túnel TLS (por ejemplo, imaps, smtps, sips, etc.) sin ningún
cambio.

Clientes compatibles
Los túneles TLS funcionan inspeccionando los datos presentes en la extensión de información del nombre del
servidor (SNI) en las conexiones TLS entrantes. No todos los clientes que inician conexiones TLS admiten la
configuración de los datos de la extensión SNI. Estos clientes no funcionarán correctamente con los túneles
TLS de ngrok. Afortunadamente, casi todos los navegadores modernos usan SNI. Algunas bibliotecas de
software modernas no lo hacen. La siguiente lista de clientes no es compatible con SNI y no funcionará con
túneles TLS:

Microsoft Internet Explorer 6.0


Microsoft Internet Explorer 7 y 8 en Windows XP o versiones anteriores
Navegador nativo en Android 2.X
Java <= 1.6
Python 2.X, 3.0, 3.1 si los módulos requeridos no están instalados

Se puede encontrar una lista más completa en la página de Indicaciones del nombre del servidor en Wikipedia

Túneles TCP
No todos los servicios que desea exponer están basados ​en HTTP o TLS. Los túneles ngrok TCP le permiten
exponer cualquier servicio de red que se ejecute a través de TCP. Esto se usa comúnmente para exponer SSH,
servidores de juegos, bases de datos y más. Iniciar un túnel TCP es fácil.

Exponer un servicio basado en TCP que se ejecuta en el puerto 1234

 ngrok tcp 1234 

Page 5 / 18  
Page 6 / 18  

Ejemplos
Exponer un servidor SSH escuchando en el puerto predeterminado

 ngrok tcp 22 

Exponer un servidor Postgres escuchando en el puerto predeterminado

 ngrok tcp 5432 

Exponer un servidor de Minecraft escuchando en el puerto predeterminado

 ngrok tcp 25565 

Escuchando en una dirección remota reservada


Normalmente, la dirección y el puerto remotos se asignan aleatoriamente cada vez que inicia un túnel TCP.
Para servicios de producción (y conveniencia), a menudo desea una dirección remota estable y garantizada.
Para hacerlo, primero, inicie sesión en su panel de control de ngrok.com y haga clic en "Reservar dirección" en
la sección "Direcciones TCP reservadas". Luego use la opción ‐remote‐addr cuando invoque ngrok para
enlazar un túnel en su dirección TCP reservada. Asegúrese de que la región que especifique coincida con la
región en la que reservó su dirección.

Enlace un túnel TCP en una dirección remota reservada

 ngrok tcp ‐‐region=us ‐‐remote‐addr 1.tcp.ngrok.io:20301 22 

Más opciones de túnel


Dominios comodín
ngrok le permite vincular túneles HTTP y TLS a dominios comodín. Todos los dominios comodín, incluso
aquellos que son subdominios de ngrok.io , primero deben reservarse para su cuenta en su tablero. Al usar
‐hostname o ‐subdomain , especifique un asterisco ‐subdomain para vincular un dominio comodín.

E n l a c e u n t ú n e l p a r a r e c i b i r t r á c o e n t o d o s l o s s u b d o m i n i o s d e example.com

 ngrok http ‐‐region=us ‐‐hostname *.example.com 80 

Reglas de dominio comodín


El uso de dominios comodín crea ambigüedades en algunos aspectos del servicio ngrok.com. Las siguientes
reglas se usan para resolver estas situaciones y es importante comprender si está usando dominios comodín.

A fines de ejemplo, suponga que ha reservado la dirección *.example.com para su cuenta.

Las conexiones a los subdominios anidados (por ejemplo, foo.bar.baz.example.com ) se


foo.bar.baz.example.com a su túnel comodín.
Puede vincular túneles en cualquier subdominio válido de example.com sin crear una entrada de dominio
reservada adicional.
Ninguna otra cuenta puede reservar foo.example.com o cualquier otro subdominio que coincida con un
dominio comodín reservado por otra cuenta.
Las conexiones se enrutan al túnel de coincidencia más específico en línea. Si está ejecutando túneles
para foo.example.com y *.example.com , las solicitudes a foo.example.com siempre se
foo.example.com a foo.example.com

Reenvío a servidores en una máquina diferente


(servicios no locales)
ngrok puede reenviar a los servicios que no se ejecutan en su máquina local. En lugar de especificar un
número de puerto, simplemente especifique una dirección de red y un puerto.

Ejemplo: Reenviar a un servidor web en una máquina diferente


Page 6 / 18  
Page 7 / 18  

 ngrok http 192.168.1.1:8080 

Infraestructura global
ngrok ejecuta servidores de túnel distribuidos por todo el mundo para permitir un tráfico rápido y de baja
latencia a sus aplicaciones.

Ubicaciones
ngrok ejecuta servidores de túnel en centros de datos de todo el mundo. La ubicación del centro de datos
dentro de una región determinada puede cambiar sin previo aviso (por ejemplo, los servidores europeos
pueden trasladarse de Frankfurt a Londres).

nosotros - Estados Unidos (Ohio)

eu - Europa (Frankfurt)

ap - Asia / Pací co (Singapur)

au - Australia (Sydney)

Uso
Si no selecciona explícitamente una región, su túnel se alojará en la región predeterminada,
Estados Unidos . Escoger la región más cercana es tan fácil como especificar la configuración del indicador
de línea de comando ‐region o establecer la propiedad de region en su archivo de configuración. Por
ejemplo, para comenzar un túnel en la región de Europa:

 ngrok http ‐region eu 8080 

Los dominios reservados y las direcciones reservadas se asignan a una región específica (la región de EE. UU.
Por defecto). Cuando reserva un dominio o una dirección, debe seleccionar una región objetivo. No puede
enlazar un dominio o dirección reservada en otra región que no sea para la que se asignó. Intentar hacerlo
producirá un error y evitará que su sesión de túnel se inicialice.

Limitaciones
Un cliente ngrok solo puede estar conectado a una sola región . Esto puede cambiar en el futuro,
pero por el momento un solo cliente ngrok no puede alojar túneles en múltiples regiones simultáneamente.
Ejecute varios clientes ngrok si necesita hacer esto.

Un dominio no puede reservarse para múltiples regiones simultáneamente. No es posible hacer


un balance geográfico de DNS con el mismo nombre de túnel en múltiples regiones. Utilice subdominios o
TLD específicos de la región si necesita hacer esto ( eu.tunnel.example.com , us.tunnel.example.com , etc.).

Acceso al túnel de la lista blanca de IP


Puede incluir en la lista blanca el acceso a los puntos finales del túnel en su cuenta. Los servidores de
ngrok.com imponen la lista blanca. Se aplica globalmente a todos los puntos finales de su túnel. Se verifica
cualquier conexión entrante a cualquiera de los puntos finales de su túnel para garantizar que la dirección IP
de origen de la conexión coincida con al menos una entrada en su lista blanca. Si una conexión no coincide con
la lista blanca, se cancela inmediatamente y nunca se reenvía a un cliente ngrok.

Como un caso especial, si su lista blanca está vacía, se permiten todas las conexiones .

Administrar la lista blanca


Puede administrar la lista blanca de IP en la pestaña de autenticación de su panel de control ngrok . Ingrese
una nueva dirección IP en la sección "IP Whitelist" y luego haga clic en Agregar entrada a la lista blanca .
Los cambios en la lista blanca de IP pueden tardar hasta 30 segundos en surtir efecto.

Rangos de IP
A veces, es posible que desee incluir en la lista blanca un rango completo de direcciones IP. En lugar de
ingresar solo una dirección IP, puede especificar un bloque de direcciones IP usando la notación CIDR . Por
ejemplo, para permitir todas las direcciones IP de 10.1.2.0 a 10.1.2.255, debería agregar 10.1.2.0/24 a su lista
blanca.

Page 7 / 18  
Page 8 / 18  

El archivo de con guración ngrok


Algunas veces su configuración para ngrok es demasiado compleja para ser expresada en opciones de línea de
comando. ngrok es compatible con un archivo de configuración de YAML extremadamente simple y
opcional que le brinda la posibilidad de ejecutar múltiples túneles simultáneamente y de ajustar algunas de
las configuraciones más arcanas de ngrok.

Ubicación del archivo de con guración


Puede pasar una ruta a un archivo de configuración explícito con la opción ‐config . Esto se recomienda para
todas las implementaciones de producción.

Especi que explícitamente una ubicación de archivo de con guración

 ngrok http ‐config=/opt/ngrok/conf/ngrok.yml 8000 

Puede pasar la opción ‐config más de una vez. Si lo hace, la primera configuración se analiza y cada
configuración sucesiva se fusiona en la parte superior. Esto le permite tener archivos de configuración de
ngrok por proyecto con definiciones de túnel, pero un archivo de configuración maestra en su directorio de
inicio con su authtoken y otras configuraciones globales.

Especi que un archivo de con guración adicional con anulaciones especí cas del proyecto

 ngrok start ‐config ~/ngrok.yml ‐config ~/projects/example/ngrok.yml demo admin 

Ubicación predeterminada del archivo de con guración


Si no especifica una ubicación para un archivo de configuración, ngrok intenta leer uno desde la ubicación
predeterminada $HOME/.ngrok2/ngrok.yml . El archivo de configuración es opcional; no se emite ningún
error si esa ruta no existe.

En la ruta predeterminada, $ HOME es el directorio de inicio para el usuario actual tal como lo define su
sistema operativo. No es la variable de entorno $ HOME , aunque a menudo son lo mismo. Para los
principales sistemas operativos, si su nombre de usuario es example la configuración predeterminada
probablemente se encuentre en las siguientes rutas:

OS X /Users/example/.ngrok2/ngrok.yml

Linux /home/example/.ngrok2/ngrok.yml

Windows C:\Users\example\.ngrok2\ngrok.yml

De niciones de túnel
El uso más común del archivo de configuración es definir configuraciones de túnel. La definición de
configuraciones de túneles es útil porque puedes iniciar túneles preconfigurados por nombre desde tu línea
de comando sin recordar todos los argumentos correctos cada vez.

Los túneles se definen como mapeo de nombre -> configuración bajo la propiedad tunnels en su archivo de
configuración.

De nir dos túneles llamados 'httpbin' y 'demo'

 tunnels: httpbin: proto: http addr: 8000 subdomain: alan‐httpbin demo: proto: http addr: 909
0 hostname: demo.inconshreveable.com inspect: false auth: "demo:secret" 

Comienza el túnel llamado 'httpbin'

 ngrok start httpbin 

Cada túnel que define es un mapa de nombres de opciones de configuración a valores. El nombre de una
opción de configuración suele ser el mismo que el de su línea de comando correspondiente. Cada túnel debe
definir proto y addr . Otras propiedades están disponibles y muchas son específicas del protocolo.

Propiedades de con guración del túnel

proto necesario nombre de protocolo de túnel, uno de http , tcp , tls


todas

Page 8 / 18  
Page 9 / 18  
addr necesario reenviar el tráfico a este número de puerto local o dirección de
todas red

inspect todas habilitar la inspección de solicitud http

auth http Credenciales de autenticación básica de HTTP para hacer cumplir


en solicitudes de túnel

host_header http Vuelva a escribir el encabezado del host HTTP en este valor, o
preserve para dejarlo sin cambios

bind_tls http enlazar un punto final HTTPS o HTTP o ambos true , false o
both

subdomain http tls nombre del subdominio para solicitar. Si no se especifica, usa el
nombre del túnel

hostname http tls nombre de host para solicitar (requiere nombre reservado y DNS
CNAME)

crt tls Certificado PEM TLS en esta ruta para finalizar el tráfico TLS antes
de reenviar localmente

key tls La clave privada PEM TLS en esta ruta para terminar el tráfico TLS
antes de reenviar localmente

client_cas tls La autoridad de certificación PEM TLS en esta ruta verificará los
certificados de conexión de cliente TLS entrantes.

remote_addr tcp enlazar el puerto TCP remoto en la dirección dada

Ejecutando múltiples túneles simultáneos


Puede pasar múltiples nombres de túnel a ngrok start y ngrok los ejecutará todos simultáneamente.

Comience tres túneles nombrados desde el archivo de con guración

 ngrok start admin ssh metrics 

 ngrok by @inconshreveable Tunnel Status online Version 2.0/2.0 Web Interface http://127.0.0.
1:4040 Forwarding http://admin.ngrok.io ‐> 10.0.0.1:9001 Forwarding http://device‐metrics.ngr
ok.io ‐> localhost:2015 Forwarding https://admin.ngrok.io ‐> 10.0.0.1:9001 Forwarding https:/
/device‐metrics.ngrok.io ‐> localhost:2015 Forwarding tcp://0.tcp.ngrok.io:48590 ‐> localhost
:22 ... 

También puede solicitarle a ngrok que inicie todos los túneles definidos en el archivo de configuración con el
‐‐all switch.

Comience todos los túneles de nidos en el archivo de con guración

 ngrok start ‐‐all 

Por el contrario, puede pedirle a ngrok que ejecute sin iniciar ningún túnel con el ‐‐none . Esto es útil si
planea administrar los túneles de ngrok completamente a través de la API.

Ejecute ngrok sin iniciar túneles

 ngrok start ‐‐none 

Ejemplo de archivos de con guración


Ejemplos de archivos de configuración se presentan a continuación. La siguiente sección contiene
documentación completa para todos los parámetros de configuración que se muestran en estos ejemplos.

Ejecuta túneles para múltiples sitios de desarrollo alojados virtuales

 authtoken: 4nq9771bPxe8ctg7LKr_2ClH7Y15Zqe4bWLWF9p tunnels: app‐foo: addr: 80 proto: http ho
st_header: app‐foo.dev app‐bar: addr: 80 proto: http host_header: app‐bar.dev 

Page 9 / 18  
Page 10 / 18  

Haga un túnel de un dominio personalizado sobre http y https con su propio certi cado

 authtoken: 4nq9771bPxe8ctg7LKr_2ClH7Y15Zqe4bWLWF9p tunnels: myapp‐http: addr: 80 proto: http
 hostname: example.com bind_tls: false mypp‐https: addr: 443 proto: tls hostname: example.com
 

Exponer la interfaz de inspección web de ngrok y API en un túnel

 authtoken: 4nq9771bPxe8ctg7LKr_2ClH7Y15Zqe4bWLWF9p tunnels: myapp‐http: addr: 4040 proto: ht
tp subdomain: myapp‐inspect auth: "user:secretpassword" inspect: false 

Ejemplo de archivo de con guración con todas las opciones

 authtoken: 4nq9771bPxe8ctg7LKr_2ClH7Y15Zqe4bWLWF9p region: us console_ui: true compress_conn
: false http_proxy: false inspect_db_size: 50000000 log_level: info log_format: json log: /va
r/log/ngrok.log metadata: '{"serial": "00012xa‐33rUtz9", "comment": "For customer alan@exampl
e.com"}' root_cas: trusted socks5_proxy: "socks5://localhost:9150" update: false update_chann
el: stable web_addr: localhost:4040 tunnels: website: addr: 8888 auth: bob:bobpassword bind_t
ls: true host_header: "myapp.dev" inspect: false proto: http subdomain: myapp e2etls: addr: 9
000 proto: tls hostname: myapp.example.com crt: example.crt key: example.key ssh‐access: addr
: 22 proto: tcp remote_addr: 1.tcp.ngrok.io:12345 

Opciones de con guración


authtoken
Esta opción especifica el token de autenticación utilizado para autenticar a este cliente cuando se conecta al
servicio ngrok.com. Después de que haya creado una cuenta de ngrok.com, su tablero mostrará la
autorización asignada a su cuenta.

ngrok.yml que especi ca un authtoken

 authtoken: 4nq9771bPxe8ctg7LKr_2ClH7Y15Zqe4bWLWF9p 

console_ui

true habilitar la interfaz de usuario de la consola

false deshabilitar la interfaz de usuario de la consola

iftty defecto habilitar la interfaz de usuario solo si la salida estándar es un TTY (no un
archivo o una tubería)

console_ui_color

transparent no establecer un color de fondo cuando se muestra la interfaz de


usuario de la consola

black defecto establecer el fondo de la interfaz de usuario de la consola en negro

http_proxy
URL de un proxy HTTP para usar para establecer la conexión de túnel. Muchos proxies HTTP tienen límites de
duración y tamaño de conexión que harán que falle ngrok. Al igual que muchas otras herramientas de red,
ngrok también respetará la variable de entorno http_proxy si está configurada.

Ejemplo de ngrok sobre un proxy HTTP autenticado

 http_proxy: "http://user:password@proxy.company:3128" 

Page 10 / 18  
Page 11 / 18  

inspect_db_size

enteros tamaño en bytes del límite superior en la memoria para asignar para
positivos guardar solicitudes en túneles HTTP para inspección y reproducción.

0 defecto utilice el límite de asignación predeterminado, 50 MB

‐1 desactivar la base de datos de inspección; esto tiene el


comportamiento efectivo de la inspección de desactivación para todos
los túneles

log_level
Nivel de detalle de registro. En orden creciente de verbosidad, los valores posibles son: crit , warn , error
, info , debug

log_format
Formato de registros de registro escritos.

logfmt pares llave / valor amigables para el hombre y la máquina

json objetos JSON separados por línea nueva

term defecto formato humano a color personalizado si la salida estándar es un TTY, de


lo contrario es lo mismo que logfmt

log
Escribir registros en este destino de destino.

stdout escribir a la salida estándar

stderr escribir a error estándar

false defecto deshabilitar el registro

otros valores escribir registros de registro en la ruta del archivo en el disco

 log: /var/log/ngrok.log 

metadata
Cadena opaca, proporcionada por el usuario, que se devolverá como parte de la respuesta de la API de
ngrok.com al recurso List Online Tunnels para todos los túneles iniciados por este cliente. Este es un
mecanismo útil para identificar túneles con su propio dispositivo o identificador de cliente. Máximo 4096
caracteres.

 metadata: bad8c1c0‐8fce‐11e4‐b4a9‐0800200c9a66 

region
Elija la región donde se conectará el cliente ngrok para alojar sus túneles.

us defecto Estados Unidos

eu Europa

ap Asia / Pacífico

au Australia

Page 11 / 18  
Page 12 / 18  

root_cas
Las autoridades del certificado raíz utilizadas para validar la conexión TLS al servidor ngrok.

trusted defecto use solo la raíz de certificado de confianza para el servicio de túnel
ngrok.com

host use los certificados raíz de confianza del sistema operativo del host. Es
probable que desee utilizar esta opción para conectarse a servidores
ngrok de terceros.

otros ruta a un archivo de certificado PEM en el disco con las autoridades de


valores certificación para confiar

socks5_proxy
URL de un proxy SOCKS5 a usar para establecer una conexión con el servidor ngrok.

 socks5_proxy: "socks5://localhost:9150" 

tunnels
Un mapa de nombres para tunelizar definiciones. Ver definiciones de túneles para más detalles.

update

true actualiza automáticamente ngrok a la última versión, cuando esté


disponible

false defecto Nunca actualice ngrok a menos que lo inicie manualmente el usuario

update_channel
El canal de actualización determina la estabilidad de las versiones publicadas para actualizar. Use 'estable'
para todas las implementaciones de producción.

stable defecto canal

beta actualizar a nuevas compilaciones beta cuando esté disponible

web_addr
Dirección de red a la que enlazar para servir la interfaz web local y la API.

dirección de red enlazar a esta dirección de red

127.0.0.1:4040 defecto dirección de red predeterminada

false desactivar la interfaz de usuario web

Usando ngrok con ...


Wordpress
Para hacer que ngrok funcione correctamente con las instalaciones de Wordpress, generalmente necesita
hacer dos cosas:

1. Debe asegurarse de que Wordpress emite URL relativos. Puede hacerlo instalando uno de los siguientes
complementos
https://github.com/optimizamx/odt-relative-urls
http://wordpress.org/plugins/relative-url/
http://wordpress.org/plugins/root-relative-urls/
2. Debe asegurarse de que Wordpress comprenda que está destinado a servirse a sí mismo desde su nombre
Page 12 / 18  
Page 13 / 18  
de host tunelizado. Puede configurar WordPress para hacer eso modificando su `wp-config` para incluir las
siguientes líneas:

 define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); define('WP_HOME', 'http://' . $
_SERVER['HTTP_HOST']); 

Hosts virtuales (MAMP, WAMP, etc.)


Los servidores web populares como MAMP y WAMP se basan en una técnica conocida popularmente como
'Virtual Hosting', lo que significa que consultan el encabezado de Host la solicitud HTTP para determinar a
cuál de sus múltiples sitios deben servir. Para exponer un sitio como este, es posible solicitarle a ngrok que
reescriba el encabezado de Host de todas las solicitudes de túnel para que coincida con lo que su servidor
web espera. Puede hacerlo utilizando la opción ‐host‐header (consulte: Reescribir el encabezado Host ) para
elegir a qué host virtual desea orientar. Por ejemplo, para dirigir a su sitio local myapp.dev , ejecutaría:

 ngrok http ‐host‐header=myapp.dev 80 

Visual Studio / IIS Express


Use la extensión visual studio de dproterho que agrega soporte ngrok directamente a Visual Studio: extensión
ngrok para Visual Studio

Un proxy de salida
ngrok funciona correctamente a través de un proxy HTTP o SOCKS5. ngrok respeta la variable de entorno unix
estándar http_proxy . También puede establecer la configuración del proxy explícitamente en el archivo de
configuración de ngrok:

Establezca la variable de configuración http_proxy


Establecer la configuración varible socks5_proxy

node.js
Utilice el paquete npm de bubenshchykov para interactuar con ngrok desde node.js:

ngrok module en npm


ngrok npm module en github

Marioneta
Utilice el módulo de marionetas de gabe para instalar y configurar los recursos de ngrok y asegúrese de que el
proceso de ngrok client se esté ejecutando: módulo ngrok para Puppet

Solución de problemas
CORS con autenticación básica HTTP
Sí, pero no puedes usar la opción -auth de ‐auth . Los túneles http de ngrok te permiten especificar
credenciales de autenticación básicas para proteger tus túneles. Sin embargo, ngrok impone esta política en
las solicitudes * all *, incluidas las solicitudes de OPTIONS verificación previa que son requeridas por la
especificación CORS. En este caso, su aplicación debe implementar su propia autenticación básica. Para más
detalles, mira este problema de github .

ngrok Client API


El cliente ngrok expone una API REST que concede acceso programático a:

Recopilar información de estado y métricas


Recopila y reproduce solicitudes capturadas
Comience y pare túneles dinámicamente

Base URL y Autenticación


URL base http://127.0.0.1:4040/api

Autenticación Ninguna

La API del cliente ngrok está expuesta como parte de la interfaz de inspección web local de ngrok. Debido a
Page 13 / 18  
Page 14 / 18  
que se sirve en una interfaz local, la API no tiene autenticación. La URL base cambiará si anula web_addr en su
archivo de configuración.

Acceda al recurso raíz de la API de un cliente ngrok en ejecución

 curl http://localhost:4040/api/ 

Tipos de contenido admitidos


Los parámetros de solicitud deben codificarse en la API mediante application/json . Asegúrese de que su
cliente establezca apropiadamente el encabezado Content‐Type la solicitud. Todas las respuestas devueltas
por la API son application/json .

Versiones y estabilidad de API


La API del cliente ngrok garantiza que no se realizarán cambios en la API a menos que la persona que llama
opte explícitamente por una versión más nueva. El mecanismo por el cual una persona que llama opta por
una nueva versión de la API se determinará en el futuro cuando sea necesario. Entre los ejemplos de cambios
sin interrupción en la API que no se aceptarán, se incluyen los siguientes.

La adición de nuevos recursos


La adición de nuevos métodos a los recursos existentes
La adición de nuevos campos en representaciones de recursos existentes
Corrección de errores que cambian la API para que coincida con el comportamiento documentado

Listar túneles
Devuelve una lista de túneles en ejecución con información de estado y métricas.

Solicitud

GET / api / túneles

Respuesta

Parámetros

tunnels lista de todos los túneles en ejecución. Ver el recurso de detalle Tunnel para
documentos sobre los parámetros de cada objeto de túnel

Ejemplo de respuesta

 { "tunnels": [ { "name": "command_line", "uri": "/api/tunnels/command_line", "public_url": "
https://d95211d2.ngrok.io", "proto": "https", "config": { "addr": "localhost:80", "inspect": 
true, }, "metrics": { "conns": { "count": 0, "gauge": 0, "rate1": 0, "rate5": 0, "rate15": 0,
 "p50": 0, "p90": 0, "p95": 0, "p99": 0 }, "http": { "count": 0, "rate1": 0, "rate5": 0, "rat
e15": 0, "p50": 0, "p90": 0, "p95": 0, "p99": 0 } } }, ... ], "uri": "/api/tunnels" } 

Comience el túnel
Inicia dinámicamente un nuevo túnel en el cliente ngrok. Los parámetros del cuerpo de la solicitud son los
mismos que usaría para definir el túnel en el archivo de configuración.

Solicitud

POST / api / túneles

Parámetros

Los nombres y comportamientos de los parámetros son idénticos a los definidos en el archivo de
configuración. Use la sección de definiciones del túnel como referencia para los parámetros de configuración
y sus comportamientos.

Ejemplo de cuerpo de solicitud

 { "addr": "22", "proto": "tcp", "name": "ssh" } 

Respuesta
Código de estado 201 con un cuerpo de respuesta que describe el túnel iniciado. Ver el recurso de detalle
Tunnel para documentos sobre los parámetros del objeto de respuesta

Page 14 / 18  
Page 15 / 18  
Ejemplo de respuesta

 { "name": "", "uri": "/api/tunnels/", "public_url": "tcp://0.tcp.ngrok.io:53476", "proto": "
tcp", "config": { "addr": "localhost:22", "inspect": false, }, "metrics": { "conns": { "count
": 0, "gauge": 0, "rate1": 0, "rate5": 0, "rate15": 0, "p50": 0, "p90": 0, "p95": 0, "p99": 0
 }, "http": { "count": 0, "rate1": 0, "rate5": 0, "rate15": 0, "p50": 0, "p90": 0, "p95": 0, 
"p99": 0 } } } 

Detalle del túnel


Obtenga el estado y las métricas sobre el túnel de ejecución nombrado

Solicitud

GET / api / tunnels /: nombre

Respuesta

Ejemplo de respuesta

 { "name": "command_line", "uri": "/api/tunnels/command_line", "public_url": "https://ac29412
5.ngrok.io", "proto": "https", "config": { "addr": "localhost:80", "inspect": true, }, "metri
cs": { "conns": { "count": 0, "gauge": 0, "rate1": 0, "rate5": 0, "rate15": 0, "p50": 0, "p90
": 0, "p95": 0, "p99": 0 }, "http": { "count": 0, "rate1": 0, "rate5": 0, "rate15": 0, "p50":
 0, "p90": 0, "p95": 0, "p99": 0 } } } 

Stop tunnel
Detener un túnel en ejecución

Solicitud

ELIMINAR / api / túneles /: nombre

Respuesta
Código de estado 204 con un cuerpo vacío

Lista de solicitudes capturadas


Devuelve una lista de todas las solicitudes HTTP capturadas para su inspección. Esto solo devolverá las
solicitudes que todavía están en la memoria (ngrok desaloja las solicitudes capturadas cuando su uso de
memoria excede inspect_db_size )

Solicitud

GET / api / requests / http

Parámetros de consulta

limit número máximo de solicitudes para regresar

tunnel_name solicitudes de filtro solo para el nombre de túnel dado

Solicitud de ejemplo

 curl http://localhost:4040/api/requests/http?limit=50 

Respuesta

requests lista de solicitudes capturadasConsulte el recurso de Detalle de solicitud


capturada para documentos en los objetos de solicitud

Ejemplo de respuesta

 { "uri": "/api/requests/http", "requests": [ { "uri": "/api/requests/http/548fb5c700000002",
 "id": "548fb5c700000002", "tunnel_name": "command_line (http)", "remote_addr": "192.168.100.
25", "start": "2014‐12‐15T20:32:07‐08:00", "duration": 3893202, "request": { "method": "GET",
 "proto": "HTTP/1.1", "headers": { "Accept": [ "*/*" ], "Accept‐Encoding": [ "gzip, deflate, 
sdch" ], "Accept‐Language": [ "en‐US,en;q=0.8" ], "Connection": [ "keep‐alive" ], "User‐Agent
": [ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) C

Page 15 / 18  
Page 16 / 18  
hrome/39.0.2171.71 Safari/537.36" ], "X‐Original‐Host": [ "c159663f.ngrok.io" ] }, "uri": "/f
avicon.ico", "raw": " " }, "response": { "status": "502 Bad Gateway", "status_code": 502, "pr
oto": "HTTP/1.1", "headers": { "Content‐Length": [ "1716" ] }, "raw": " ", } }, ... ] }  { "u
ri": "/api/requests/http", "requests": [ { "uri": "/api/requests/http/548fb5c700000002", "id"
: "548fb5c700000002", "tunnel_name": "command_line (http)", "remote_addr": "192.168.100.25", 
"start": "2014‐12‐15T20:32:07‐08:00", "duration": 3893202, "request": { "method": "GET", "pro
to": "HTTP/1.1", "headers": { "Accept": [ "*/*" ], "Accept‐Encoding": [ "gzip, deflate, sdch"
 ], "Accept‐Language": [ "en‐US,en;q=0.8" ], "Connection": [ "keep‐alive" ], "User‐Agent": [ 
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome
/39.0.2171.71 Safari/537.36" ], "X‐Original‐Host": [ "c159663f.ngrok.io" ] }, "uri": "/favico
n.ico", "raw": " " }, "response": { "status": "502 Bad Gateway", "status_code": 502, "proto":
 "HTTP/1.1", "headers": { "Content‐Length": [ "1716" ] }, "raw": " ", } }, ... ] }  { "uri": 
"/api/requests/http", "requests": [ { "uri": "/api/requests/http/548fb5c700000002", "id": "54
8fb5c700000002", "tunnel_name": "command_line (http)", "remote_addr": "192.168.100.25", "star
t": "2014‐12‐15T20:32:07‐08:00", "duration": 3893202, "request": { "method": "GET", "proto": 
"HTTP/1.1", "headers": { "Accept": [ "*/*" ], "Accept‐Encoding": [ "gzip, deflate, sdch" ], "
Accept‐Language": [ "en‐US,en;q=0.8" ], "Connection": [ "keep‐alive" ], "User‐Agent": [ "Mozi
lla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0
.2171.71 Safari/537.36" ], "X‐Original‐Host": [ "c159663f.ngrok.io" ] }, "uri": "/favicon.ico
", "raw": " " }, "response": { "status": "502 Bad Gateway", "status_code": 502, "proto": "HTT
P/1.1", "headers": { "Content‐Length": [ "1716" ] }, "raw": " ", } }, ... ] } 

Reproducción de solicitud capturada


Reproduce una solicitud contra el punto final local de un túnel

Solicitud

POST / api / requests / http

Parámetros

id id de solicitud para reproducir

tunnel_name nombre del túnel para jugar la solicitud en contra. Si no se especifica, la


solicitud se juega contra el mismo túnel en el que se grabó

Solicitud de ejemplo

 curl ‐H "Content‐Type: application/json" ‐d '{"id": "548fb5c700000002"}' http://localhost:40
40/api/requests/http 

Respuesta
Código de estado 204 con un cuerpo vacío

Eliminar solicitudes capturadas


Elimina todas las solicitudes capturadas

Solicitud

BORRAR / api / solicitudes / http

Respuesta
Código de estado 204 sin cuerpo de respuesta

Detalle de solicitud capturada


Devuelve metadatos y bytes sin formato de una solicitud capturada. Los datos brutos están codificados en
base64 en la respuesta JSON. El response valor puede ser null si el servidor local aún no ha respondido a
una solicitud.

Solicitud

GET / api / requests / http /: request_id

Respuesta

Ejemplo de respuesta

 { "uri": "/api/requests/http/548fb5c700000002", "id": "548fb5c700000002", "tunnel_name": "co
mmand_line (http)", "remote_addr": "192.168.100.25", "start": "2014‐12‐15T20:32:07‐08:00", "d

Page 16 / 18  
Page 17 / 18  
uration": 3893202, "request": { "method": "GET", "proto": "HTTP/1.1", "headers": { "Accept": 
[ "*/*" ], "Accept‐Encoding": [ "gzip, deflate, sdch" ], "Accept‐Language": [ "en‐US,en;q=0.8
" ], "Connection": [ "keep‐alive" ], "User‐Agent": [ "Mozilla/5.0 (Macintosh; Intel Mac OS X 
10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36" ], "X‐Origi
nal‐Host": [ "c159663f.ngrok.io" ] }, "uri": "/favicon.ico", "raw": " " }, "response": { "sta
tus": "502 Bad Gateway", "status_code": 502, "proto": "HTTP/1.1", "headers": { "Content‐Lengt
h": [ "1716" ] }, "raw": " ", } }  { "uri": "/api/requests/http/548fb5c700000002", "id": "548
fb5c700000002", "tunnel_name": "command_line (http)", "remote_addr": "192.168.100.25", "start
": "2014‐12‐15T20:32:07‐08:00", "duration": 3893202, "request": { "method": "GET", "proto": "
HTTP/1.1", "headers": { "Accept": [ "*/*" ], "Accept‐Encoding": [ "gzip, deflate, sdch" ], "A
ccept‐Language": [ "en‐US,en;q=0.8" ], "Connection": [ "keep‐alive" ], "User‐Agent": [ "Mozil
la/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.
2171.71 Safari/537.36" ], "X‐Original‐Host": [ "c159663f.ngrok.io" ] }, "uri": "/favicon.ico"
, "raw": " " }, "response": { "status": "502 Bad Gateway", "status_code": 502, "proto": "HTTP
/1.1", "headers": { "Content‐Length": [ "1716" ] }, "raw": " ", } }  { "uri": "/api/requests/
http/548fb5c700000002", "id": "548fb5c700000002", "tunnel_name": "command_line (http)", "remo
te_addr": "192.168.100.25", "start": "2014‐12‐15T20:32:07‐08:00", "duration": 3893202, "reque
st": { "method": "GET", "proto": "HTTP/1.1", "headers": { "Accept": [ "*/*" ], "Accept‐Encodi
ng": [ "gzip, deflate, sdch" ], "Accept‐Language": [ "en‐US,en;q=0.8" ], "Connection": [ "kee
p‐alive" ], "User‐Agent": [ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.3
6 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36" ], "X‐Original‐Host": [ "c159663f.ng
rok.io" ] }, "uri": "/favicon.ico", "raw": " " }, "response": { "status": "502 Bad Gateway", 
"status_code": 502, "proto": "HTTP/1.1", "headers": { "Content‐Length": [ "1716" ] }, "raw": 
" ", } } 

Compatibilidad al revés
ngrok hace promesas sobre la compatibilidad y la estabilidad de sus interfaces para que pueda construir con
confianza integraciones en la parte superior y saber qué cambios esperar al actualizar a versiones más nuevas.

Promesa de compatibilidad
Liberación de punto (2.0.0 -> 2.0.1) - ngrok promete que no habrá cambios bruscos en las versiones
puntuales
Cambio de versión menor (2.0 -> 2.1) - ngrok puede hacer pequeños cambios que rompen la
compatibilidad en un cambio de versión menor. ngrok promete que cualquier cambio de ruptura estará
precedido por un lanzamiento que advierte sobre el comportamiento que será modificado o
desaprobado.
Cambio importante de versión (2.0 -> 3.0) - ngrok no promete que las interfaces son estables en un
cambio importante de versión.

¿Qué interfaces están sujetas a la promesa?


La interfaz de línea de comandos ngrok: los comandos y sus opciones
El archivo de configuración ngrok
La API del cliente ngrok

Cualquier otra interfaz como el formato de registro o la interfaz de usuario web no está sujeta a ninguna
promesa de compatibilidad y puede cambiar sin previo aviso entre versiones.

Cambios en 2.2
La API del cliente ngrok ya no acepta application/x‐www‐form‐urlencoded cuerpos de solicitud. En la
práctica, esto solo afecta al /api/requests/http/:id punto final porque la publicación en el
/api/tunnels punto final con este tipo de cuerpo de solicitud causó previamente que ngrok se bloquee.

Este cambio se realizó para ayudar a proteger contra páginas web creadas de forma malintencionada que
podrían provocar que el usuario interactúe inadvertidamente con su API local de ngrok.

Cambios en 2.1
Cambios de comportamiento http y tls túneles definidos en el archivo de configuración o iniciados a través
de la API que no tienen una propiedad subdomain o hostname .

 tunnels: webapp: proto: http addr: 80 

Dado este ejemplo de configuración de túnel, el comportamiento cambiará de las siguientes maneras.

Comportamiento anterior
Inicia un túnel utilizando el nombre del túnel como el subdominio que da como resultado la URL
Page 17 / 18  
Page 18 / 18  
http://webapp.ngrok.io

Nuevo Comportamiento
Inicia un túnel con un subdominio aleatorio, por ejemplo, una URL como http://d95211d2.ngrok.io

Cómo mantener el viejo comportamiento


Agregue una subdomain propiedad con el mismo nombre que el túnel:

 tunnels: webapp: proto: http addr: 80 subdomain: webapp 

Este comportamiento cambió para permitir el lanzamiento de túneles con dominios aleatorios. Esto impedía
el uso del archivo de configuración y la API cliente para liberar usuarios de nivel.

ngrok 1.x sunset


El servicio ngrok 1.X se cerró el 4 de abril de 2016. Se pueden encontrar más detalles en el anuncio de puesta
de sol de ngrok 1.x.

Preguntas más frecuentes


¿Qué información se almacena sobre mis túneles?
ngrok no registra ni almacena ningún dato transmitido a través de sus conexiones de túnel.
ngrok registra cierta información sobre las conexiones que se utilizan con fines de depuración y métricas
como el nombre del túnel y la duración de las conexiones. Para una seguridad completa de extremo a
extremo, use un túnel TLS .

¿Cómo pronouce ngrok?


en-grok

© inconshreveable 2018

Page 18 / 18  

Vous aimerez peut-être aussi