Aski Aski
Funciones Seguridad Precios Descargar

Conectar Aski a un ERP que no sale a internet

Guía de instalación · unos 15 minutos · No se abre ningún puerto del firewall

Descargar esta guía en PDF — el mismo contenido en un documento que puedes adjuntar o imprimir.

Si el ERP vive dentro de la red de la empresa y no tiene una dirección pública, Aski llega a él por un túnel cifrado. Para eso se instala un programa pequeño —Tailscale— en una máquina de esa red.

Antes de empezar

  • La clave de instalación. Si todavía no la tienes, solicítala antes de empezar. Sirve una sola vez y caduca: ese plazo es para instalarla, no para la duración del acceso.
  • Una máquina de la red del ERP que esté siempre encendida. Puede ser el propio servidor del ERP o cualquier otra de la misma red.
  • Permisos de administrador en esa máquina, solo para instalar.
  • Salida a internet desde esa máquina, por el puerto 443. No hay que abrir nada de entrada, pero si ese segmento no sale a internet —o solo sale por un proxy con usuario y contraseña— avísanos antes: es lo único que puede impedir que el nodo levante.

Lo que esto NO hace

  • No abre ningún puerto de entrada. La conexión la abre el nodo hacia afuera.
  • No expone el ERP a internet. Sigue sin ser accesible desde fuera.
  • No modifica el ERP. No se instala nada dentro de él.
  • No entrega tus credenciales a nadie. El usuario y la clave del ERP los escribes tú en la aplicación.

Paso 0 · Decide dónde va el nodo

Esto define todo lo demás, así que decídelo antes de instalar nada. Hay dos opciones y ninguna es mejor: depende de si puedes instalar software en el servidor del ERP.

Opción A · En el propio servidor del ERP (recomendada)

  • Es la más simple. No hay rutas que aprobar ni nada que coordinar.
  • No puede chocar con otro cliente. La dirección que recibe es única en el mundo, así que no hay ambigüedad posible.
  • Requiere poder instalar software en ese servidor.
  • La dirección que se usará en Aski es la que asigne Tailscale, y empieza por 100. Se obtiene en el paso 3.

Opción B · En otra máquina de la misma red

  • Para cuando no se quiere tocar el servidor del ERP. Vale cualquier equipo de esa red que esté siempre encendido.
  • Esa máquina hace de puente: hay que decirle qué red debe alcanzar. Eso es la subred, y va en el comando.
  • Cuando termines hay que avisar: ese puente se habilita del lado de Aski.
  • La dirección que se usará en Aski es la IP interna del ERP (192.168.x.x o similar), no la que empieza por 100.

Importante · con la opción B, un puente Linux necesita un comando más. Recién instalado no reenvía tráfico: hay que activar el reenvío. Es un solo comando, está en la sección de Linux, y sin él la conexión falla por tiempo de espera sin dar ninguna pista. Está medido: no es una precaución teórica.

El puente puede ser Windows o Linux, indistintamente, también con un ERP en HTTPS —el caso típico es el Service Layer de SAP Business One—. El ajuste de tamaño de paquete que antes hacía falta en el puente ahora lo aplica Aski en su propio extremo. En Windows el reenvío lo activa el propio Tailscale al instalarse, así que ahí no hay nada que hacer.

Con todo eso, la A sigue siendo preferible cuando se pueda: no tiene ninguno de estos pasos, y además evita otra molestia. Si dos empresas distintas usan la misma red interna —y 192.168.1.0/24 es la más común del mundo— hay que desambiguar, y con la A eso no pasa nunca. Si vas a por la B, indica qué red usas para comprobarlo antes.

Qué es la subred, y cómo se saca

Solo hace falta en la opción B. Es la red donde vive el ERP, escrita como «dirección base + barra + número»:

192.168.1.0/24        (la más habitual en oficinas)
10.0.0.0/24
172.16.5.0/24

Para deducirla, mira la IP del servidor del ERP y cambia el último número por 0, añadiendo /24:

El ERP está en   192.168.1.20    ->   la subred es   192.168.1.0/24
El ERP está en   10.0.5.44       ->   la subred es   10.0.5.0/24

El /24 significa «las 254 direcciones de esa red», que es como está montada casi cualquier oficina. Si tu red es más grande y no estás seguro, dínoslo con la IP del ERP y la máscara, para que te lo confirmen.

Dato imprescindible en la opción B: la IP interna del ERP y su puerto.

Instalación en Windows Server / Windows 10 u 11

Es lo habitual cuando el ERP es SAP Business One. Hace falta la consola una sola vez: la ventana de Tailscale no admite claves de instalación —solo iniciar sesión con una cuenta— y aquí no queremos crear ninguna cuenta.

  1. Descarga el instalador desde tailscale.com/download/windows y ejecútalo. Siguiente, Siguiente, Instalar.
  2. Al terminar no abras la ventana de Tailscale ni inicies sesión. Si se abrió algo, ciérralo. La conexión se hace con la clave, no con una cuenta.
  3. Abre PowerShell como administrador: clic derecho sobre el botón de Inicio → «Terminal (Administrador)» o «Windows PowerShell (Administrador)». Acepta el aviso de permisos.
  4. Pega el comando que te dieron y pulsa Enter. Tiene esta forma:
tailscale up --authkey=LA_CLAVE --hostname=aski-tuempresa --unattended

Y así si el nodo va en otra máquina (opción B), con la subred al final:

tailscale up --authkey=LA_CLAVE --hostname=aski-tuempresa \
    --advertise-routes=192.168.1.0/24 --unattended

Importante. --unattended es imprescindible en Windows. Sin él, Tailscale se detiene al cerrar sesión, y en un servidor eso pasa siempre: la conexión se caería sola a las pocas horas, sin causa aparente.

Si salió bien no imprime nada. Para comprobarlo:

tailscale ip -4

Devuelve una única línea con una dirección que empieza por 100. Esa es la señal de que funcionó.

Instalación en Ubuntu, Debian, RHEL, Rocky u otro Linux

1. Instala Tailscale (el script detecta la distribución):

curl -fsSL https://tailscale.com/install.sh | sh

2. Conéctalo con tu clave de instalación:

sudo tailscale up --authkey=LA_CLAVE --hostname=aski-tuempresa

Y si el nodo va en otra máquina (opción B):

sudo tailscale up --authkey=LA_CLAVE --hostname=aski-tuempresa \
    --advertise-routes=192.168.1.0/24

3. Comprueba que entró:

tailscale ip -4

4. Y que el servicio arranca con el sistema, para que sobreviva a un reinicio:

sudo systemctl is-enabled tailscaled

Debe responder enabled. Si responde disabled, actívalo con sudo systemctl enable tailscaled. En Linux no hace falta --unattended: eso es cosa de Windows.

Solo en la opción B · el paso que falta

Si el nodo va en el propio servidor del ERP (opción A), sáltate esto: ya terminaste. Lo que viene es para la máquina que hace de puente. Sin este paso el túnel se ve conectado y la conexión falla por tiempo de espera. Es el fallo que más tiempo cuesta encontrar, precisamente porque no da ningún error.

Permitir que la máquina reenvíe tráfico. Un puente, por definición, pasa paquetes que no van dirigidos a él, y Linux de fábrica no lo hace:

echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-tailscale.conf
sudo sysctl --system

Se escribe en /etc/sysctl.d/ a propósito, y no con sysctl -w: así sigue puesto después de un reinicio. Compruébalo con sysctl net.ipv4.ip_forward, que debe responder = 1.

Después hay que repetir el tailscale up del paso 2 mencionando también el nombre, o dará un error; está en «Si algo no funciona».

Si el túnel se cae después de que alguien toque el cortafuegos, lo primero que hay que probar es sudo systemctl restart tailscaled. Recargar firewalld —o cualquier firewall-cmd --reload— borra las reglas que Tailscale había puesto en el sistema, y a partir de ahí el nodo sigue apareciendo conectado pero ya no pasa tráfico. Reiniciar Tailscale las repone. Es el mismo síntoma de arriba y la causa más frecuente de que un túnel que llevaba semanas funcionando deje de hacerlo de golpe.

Antes de avisar de que terminaste, comprueba desde esta misma máquina que el ERP responde, con el punto 7 de las comprobaciones. Si desde el puente no responde, por el túnel tampoco, y el problema está en la red interna —no en Aski—.

Ya no hace falta tocar el tamaño de paquete. Si seguiste una versión anterior de esta guía que pedía una regla de iptables con TCPMSS, puedes dejarla o quitarla: da igual. Ese ajuste ahora lo aplica Aski en su propio extremo, así que no hay nada que configurar en tu servidor ni nada que se pierda al reiniciar.

Si el ERP corre en Docker

Se levanta un contenedor al lado, compartiendo la red del ERP. Dos datos importan: el volumen, porque sin él el nodo pierde su identidad al reiniciar y hay que reinstalarlo; y el nombre, porque sin él el nodo aparece con el del contenedor del ERP y no se distingue de los demás.

docker run -d --name tailscale \
  --network container:NOMBRE_DEL_CONTENEDOR_DEL_ERP \
  --cap-add NET_ADMIN --device /dev/net/tun \
  -v tailscale-state:/var/lib/tailscale \
  -e TS_AUTHKEY=LA_CLAVE \
  -e TS_HOSTNAME=aski-tuempresa \
  -e TS_STATE_DIR=/var/lib/tailscale \
  tailscale/tailscale:latest

Paso final · qué nos tienes que decir

Si elegiste la opción A (nodo en el servidor del ERP): nada más, el nodo nos aparece solo. Basta con avisar de que terminaste para que te confirmen la dirección que debes usar.

Si elegiste la opción B (nodo en otra máquina):

  • Hay que avisar, porque el puente se habilita del lado de Aski.
  • Indica la IP interna del ERP y su puerto. Por ejemplo 192.168.1.20 y 8069.

Importante. Hasta que habilitemos el puente, la conexión no funcionará aunque todo lo demás esté bien. Es un solo clic del lado de Aski.

Crear la conexión en Aski · campo por campo

En la app: Conexiones → Nueva conexión. Estos son los campos tal como aparecen en pantalla:

Tipo de ERP

Odoo · SAP S/4HANA · SAP B1. El que corresponda.

Apodo

El nombre con el que verás esta conexión en tu lista. Es solo para ti: pon lo que te sirva para reconocerla, como «Odoo producción» o «SAP oficina».

Casilla «Mi ERP no es alcanzable desde internet»

Esta casilla hay que marcarla. Está justo debajo del campo URL. Es lo que hace que la app acepte una dirección interna: sin marcarla, la rechaza a propósito y no te dejará guardar.

Si no ves la casilla, avisa: significa que el túnel todavía no está activo, y se habilita del lado de Aski.

URL

Aquí va la dirección que quedó de la instalación, con el puerto del ERP:

Opción A  (nodo en el servidor del ERP)
    http://100.71.252.92:8069
    ^^^ lo que devolvió `tailscale ip -4`, más el puerto

Opción B  (nodo en otra máquina de la red)
    http://192.168.1.20:8069
    ^^^ la IP interna del ERP, más el puerto

El puerto es el del ERP, el mismo que se usa dentro de la oficina: 8069 en Odoo por defecto, 50000 en el Service Layer de Business One.

Importante. Tiene que ser una dirección IP, no un nombre. Un nombre lo resolvería el DNS del lado de Aski, no el de tu red, y apuntaría a otro sitio o a nada.

Los tres campos que siguen —Base de datos, Usuario / login y API Key— cambian según el ERP y son los que más dudas generan. Están explicados paso a paso, con dónde encontrar cada uno en Odoo, Business One y S/4HANA, en la guía aski.dev/guia-credenciales. Aquí va el resumen.

Base de datos

El nombre de la base en Odoo —se ve en la URL al entrar, como ?db=miempresa—. En Business One es la Company DB, algo como SBO_MiEmpresa. En S/4HANA este campo no aparece.

Usuario / login

El usuario del ERP con el que se van a hacer las consultas. Cada persona pone el suyo, no uno compartido.

API Key

En Odoo: se genera desde tu perfil → Seguridad de la cuenta → Nueva clave de API, y solo se muestra una vez. En Business One: la contraseña de ese usuario de SAP. En S/4HANA: la API Key de tu instancia.

Probar y guardar

Pulsa Probar conexión para verificar antes de guardar, y luego Conectar y guardar. Si la prueba falla, mira la última sección de esta guía.

Varias personas en la misma empresa

El túnel se instala una sola vez para toda la empresa. Cada persona que vaya a usar Aski crea su conexión en su cuenta:

  • La misma URL y la misma base de datos para todos.
  • Su propio usuario y su propia API Key del ERP.
  • Todos marcan la casilla.

No hay que reinstalar ni reconfigurar nada por cada persona. Y usar credenciales propias no es burocracia: hace que cada una vea exactamente lo que su usuario ve en el ERP, ni más ni menos. Con un usuario compartido, todos verían lo mismo.

Cortar el acceso, cuando quieras

Sin pedir permiso a nadie y con efecto inmediato, cualquiera de estas dos:

  • Apagar el nodo: tailscale down en esa máquina, o desinstalar Tailscale.
  • Deshabilitar en el ERP el usuario que usa Aski.

También puedes pedir que revoquen la clave y el acceso desaparece.

Comprobaciones · los comandos que ahorran una tarde

En la máquina donde vas a instalar el nodo. En Windows, PowerShell como administrador; en Linux, una terminal con sudo. Cada comprobación responde una pregunta que, sin respuesta, se descubre a mitad de la instalación.

1 · ¿Esta máquina sale a internet?

Test-NetConnection controlplane.tailscale.com -Port 443     # Windows
curl -sI https://controlplane.tailscale.com | head -1        # Linux

Busca TcpTestSucceeded : True o una respuesta HTTP/2 200. Si no sale, el nodo no va a levantar y es lo primero que hay que pedirle a infraestructura. No hace falta abrir nada de entrada, solo que pueda salir.

2 · ¿Es esta la máquina del ERP, o solo un equipo de la red?

Get-NetTCPConnection -State Listen | Select-Object LocalPort | Sort-Object LocalPort
Get-Service | Where-Object DisplayName -match "SAP|Odoo"     # Windows

sudo ss -lntp | grep -E ':(8069|8071|50000|443)'             # Linux
systemctl status odoo 2>/dev/null | head -3

Si entre los puertos aparece 8069 u 8071 (Odoo), 50000 (Service Layer de Business One) o 443 (cualquiera de los dos detrás de un proxy), el ERP está aquí y te toca la opción A.

Si en los servicios solo sale «SAP Business One Client Agent», esta es una máquina de usuario y el ERP vive en otro equipo. En Odoo el equivalente es que no haya servicio odoo ni nada escuchando en 8069.

3 · ¿Y en qué máquina está el ERP?

Odoo: es la dirección con la que entran desde la oficina. Si es un nombre y no una IP, resuélvelo:

Resolve-DnsName erp.miempresa.local        # Windows
getent hosts erp.miempresa.local           # Linux

Business One: desde un equipo con el cliente abierto, las conexiones establecidas lo delatan:

Get-NetTCPConnection -State Established |
    Where-Object RemotePort -in 30000,40000,50000 |
    Select-Object RemoteAddress, RemotePort

El RemoteAddress que salga es el servidor (30000 es el servidor de licencias, 40000 el SLD). También aparece en la ventana de login del cliente, en «Servidor de licencias».

4 · ¿Alcanzo el ERP desde aquí, y en qué puerto?

Test-NetConnection LA_IP_DEL_ERP -Port 8069      # Odoo (o 443, o 50000 en B1)
nc -vz LA_IP_DEL_ERP 8069                        # Linux

LA_IP_DEL_ERP es la dirección del punto 3. Un True —o un succeeded— resuelve el punto. Si tu ERP está en otro puerto, dínoslo: hay que autorizarlo de nuestro lado, y si no lo sabemos la conexión falla sin dar detalle.

5 · Tu dirección y tu subred (solo para la opción B)

Get-NetIPAddress -AddressFamily IPv4 |
    Select-Object IPAddress, PrefixLength, InterfaceAlias     # Windows
ip -4 -br addr                                                # Linux

Una IP 192.168.10.30 con PrefixLength 24 significa subred 192.168.10.0/24: la misma dirección con el último número en 0, y la barra con ese número. Ignora 127.0.0.1 y los adaptadores de Docker o Hyper-V; te interesa la tarjeta de red real.

6 · ¿Su red usa el mismo rango que el túnel?

Get-NetRoute -AddressFamily IPv4 | Select-Object DestinationPrefix    # Windows
ip -4 route                                                           # Linux

Si aparece algo entre 100.64.x.x y 100.127.x.x —lo usan algunas VPN corporativas— avísanos antes de instalar: choca con el rango del túnel y se ajusta de nuestro lado, sin tocar tu servidor. No es frecuente, pero descubrirlo después cuesta una tarde.

7 · Probar el acceso al ERP antes de tocar la app

Esto valida de una sola vez la dirección, el puerto, la base, el usuario y su clave. Si responde bien aquí, la conexión en Aski va a entrar.

Odoo — devuelve un número (el id del usuario) si todo está bien, o false si la base, el usuario o la clave no cuadran:

Invoke-RestMethod -Method Post -Uri "http://LA_IP_DEL_ERP:8069/jsonrpc" -ContentType "application/json" -Body '{"jsonrpc":"2.0","method":"call","params":{"service":"common","method":"authenticate","args":["LA_BASE","USUARIO","CLAVE_O_API_KEY",{}]},"id":1}'

Business One — devuelve un SessionId si todo está bien. Valida además que el usuario tenga licencia asignada:

[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
Invoke-RestMethod -Method Post -Uri "https://LA_IP_DEL_ERP:50000/b1s/v1/Login" -ContentType "application/json" -Body '{"CompanyDB":"SBO_MiEmpresa","UserName":"USUARIO","Password":"CLAVE"}'

El Service Layer de Business One siempre es HTTPS. Con http:// responde un 400 cuyo texto dice que se está hablando HTTP plano a un puerto SSL. La primera línea es para que PowerShell acepte su certificado autofirmado, que es lo normal en una instalación on-premise; sin ella falla con «no se puede establecer una relación de confianza SSL/TLS», que no es un problema ni del ERP ni de Aski. En Odoo, en cambio, lo habitual dentro de la red es HTTP plano en el 8069. Y al pegar cualquiera de los dos comandos, comprueba que la línea empieza por Invoke: se pierde la primera letra más veces de lo que parece.

8 · El nombre de la base de datos

Odoo: aparece en la URL al entrar (?db=miempresa) y en el selector de bases si el servidor tiene varias. Si solo hay una, suele poder dejarse vacío.

Business One: en el cliente, Seleccionar empresa, columna «Nombre de base de datos». Se parece a SBO_MiEmpresa. No es el nombre comercial de la empresa: si nos pasas ese, el login falla con un mensaje que habla de credenciales y se busca el problema donde no está.

9 · Lo que suele faltar del lado del ERP

Odoo: la API Key del usuario, que se genera en su perfil → Seguridad de la cuenta → Nueva clave API, y se muestra una sola vez. Y que ese usuario tenga permiso de lectura en lo que se va a consultar: Aski ve exactamente lo que ve él.

Business One: una licencia asignada —la de tipo Indirect Access es la pensada para aplicaciones externas y la más económica, y se ve en Administración → Licencias → Gestión autorización, columna «Disponible»— y autorización de lectura en Interlocutores comerciales como mínimo: sin ese módulo la conexión no llega a guardarse.

Si algo no funciona

«La clave no es válida» al ejecutar el comando

Las claves sirven una sola vez y caducan. Si ya la usaste o pasó el plazo, pide otra: se genera al momento.

Instalé todo y Aski dice que no alcanza el ERP

  • Comprueba que el ERP responde desde la máquina donde instalaste Tailscale, en esa misma dirección y puerto. Si desde ahí no responde, por el túnel tampoco.
  • Si el nodo está en otra máquina (opción B): avisa, falta habilitar el puente.
  • En Windows: comprueba que el comando llevaba --unattended.
  • Revisa que la URL lleve el puerto y que sea una IP, no un nombre.

No me deja guardar: dice que la dirección no es válida

Falta marcar la casilla «Mi ERP no es alcanzable desde internet».

Funcionaba y dejó de funcionar

Casi siempre es que la máquina del nodo se apagó. Enciéndela y se reconecta sola; no hay que reinstalar nada ni pedir otra clave.

«tailscale» no se reconoce como comando

O no está instalado, o la ventana de PowerShell estaba abierta desde antes de instalarlo y no ve el programa nuevo. Ciérrala y abre otra como administrador, o llámalo por su ruta completa:

& "C:\Program Files\Tailscale\tailscale.exe" up --authkey=LA_CLAVE --hostname=aski-tuempresa --unattended

Guardo la conexión y se queda cargando hasta que falla

Es el síntoma más común de la opción B, y tiene cuatro causas. Míralas en este orden, de la más frecuente a la menos:

  • Falta habilitar el puente de nuestro lado. Avísanos: es un clic.
  • Falta activar el reenvío en la máquina puente («el paso que falta»). sysctl net.ipv4.ip_forward tiene que decir = 1. Si dice = 0 después de haberlo puesto, es que se escribió con sysctl -w y se perdió en el último reinicio.
  • Alguien tocó el cortafuegos y borró las reglas de Tailscale. Es la causa típica de que un túnel que llevaba semanas bien deje de funcionar de golpe, y la más desconcertante, porque el nodo sigue apareciendo conectado. Se arregla con sudo systemctl restart tailscaled.
  • El servidor del ERP está apagado o su servicio no está escuchando. La pista que lo distingue de todo lo anterior: desde el propio puente, curl al ERP tampoco responde.

«changing settings via 'tailscale up' requires mentioning all non-default flags»

Sale al añadir la subred a un nodo que ya estaba conectado, y no es un fallo: Tailscale avisa de que le estás omitiendo un ajuste que ya tenía —el nombre— y se detiene antes de borrártelo. El propio mensaje imprime el comando corregido al final:

sudo tailscale up --advertise-routes=192.168.1.0/24 --hostname=aski-tuempresa

Si sale bien no imprime nada, salvo un aviso sobre IPv6 que puedes ignorar.

Funcionaba, alguien tocó el cortafuegos y se cayó

Recargar o reconfigurar el cortafuegos borra las reglas internas de Tailscale. Se repone con un comando, sin reinstalar nada ni pedir otra clave:

sudo systemctl restart tailscaled

Si el puente llevaba la regla de tamaño de paquete y no estaba guardada como permanente, vuelve a ponerla también.

Business One: «rechazó el login» o «revisa la URL y las credenciales»

  • La URL lleva https:// y el puerto: https://IP:50000/b1s/v1.
  • La Company DB es el nombre de la base, no el de la empresa.
  • El usuario necesita licencia asignada y lectura en Interlocutores comerciales — sin ese módulo la conexión no se guarda, y el mensaje habla de credenciales.
  • El comando del punto 7 de las comprobaciones distingue los tres casos en 15 segundos.
Aski Aski

Tu Odoo en lenguaje natural. Hecho con cuidado en Perú 🇵🇪.

Producto
  • Funciones
  • Aski para SAP
  • Precios
  • FAQ
Legal y soporte
  • Política de privacidad
  • Seguridad y cumplimiento
  • Términos y condiciones
  • Política de reembolsos
  • Soporte por WhatsApp
  • Soporte por correo
Socios
  • Programa de socios
  • Panel de socio
🌐 English
© 2026 Aski · Producto independiente, no afiliado ni respaldado por Odoo S.A. Odoo® es una marca registrada de Odoo S.A.