Servidor de impresión vía VPN: cómo compartir una impresora USB en un portátil con LPR/LPD (guía completa)

¿Quieres que una app sanitaria imprima por un servidor de impresión aunque el usuario esté fuera del hospital y solo tenga una impresora USB conectada al portátil por VPN? Sí es posible con LPR/LPD: te explico cómo configurarlo paso a paso, validar cada tramo y resolver los fallos típicos.

Índice

Resumen del caso

La aplicación clínica debe imprimir mediante un servidor de impresión. En campo, el profesional se conecta por VPN con un portátil que tiene una impresora USB local. La idea es compartir esa impresora en el portátil y que el servidor de impresión le envíe los trabajos por LPR. Entre portátiles funciona, pero del servidor al portátil no: el trabajo sale del servidor (LPR) y las trazas muestran que se encamina al portátil (LPD), pero no entra en la cola compartida del portátil. ¿Está faltando algo o es inviable?

Respuesta corta

Sí es viable, pero solo si se cumple toda la cadena de extremo a extremo:

Aplicación → Servidor de impresión (renderiza) → LPR → Portátil (LPD) → Impresora USB

Si un eslabón falla (VPN unidireccional, nombre de cola incorrecto, puerto 515 bloqueado, byte counting desactivado, etc.), el trabajo puede “salir” del servidor pero nunca aparecer en la cola del portátil. A continuación, una guía completa para implementarlo con garantías.

Arquitectura y flujo de impresión

Este patrón utiliza el protocolo clásico LPR/LPD (puerto TCP 515):

  • Servidor: origen LPR. Renderiza con el driver del modelo y envía el job.
  • Portátil: destino LPD. Recibe el job y lo cola en su impresora compartida.
  • Impresora USB: conectada al portátil; la cola compartida debe coincidir por nombre con la cola LPR del servidor.
  • VPN: debe permitir conexiones entrantes desde el servidor hacia el cliente (portátil) por el puerto 515/TCP.

Requisitos previos clave

ComponenteQué verificarCómo comprobar
VPNRuta y ACL desde servidor → IP VPN del portátil; sin NAT asimétricoTest-NetConnection <IP-portátil> -Port 515 desde el servidor
PortátilServicio LPD habilitado y en ejecución; impresora USB compartidaServicios: LPDSVC y Spooler; Panel de impresoras → Compartir
Firewall portátilRegla de entrada TCP 515 permitida para la IP del servidorReglas de Windows Defender Firewall o netsh advfirewall
ServidorPuerto LPR apuntando a la IP del portátil y cola exacta = nombre del recurso compartidoPropiedades del puerto; prueba con lpr
ControladoresDriver correcto del modelo instalado en el servidor (renderizado en servidor)Cola del servidor → Propiedades → Avanzadas

Conectividad y VPN

La mayoría de los problemas “invisibles” son de topología (la VPN permite el tráfico del cliente al servidor, pero no desde el servidor hacia el cliente).

  1. Desde el servidor, verifica apertura del puerto 515/TCP en la IP VPN del portátil: Test-NetConnection <IP-VPN-portátil> -Port 515 Alternativa (si tienes Telnet Client): telnet <IP-VPN-portátil> 515
  2. Si falla, corrige en el concentrador VPN:
    • Habilita tráfico entrante hacia clientes (hairpin/peer-to-peer/“allow server-initiated”).
    • Crea ACL específicas: Servidor → TCP/515 → Portátiles (pool VPN).
    • Evita NAT o políticas asimétricas para ese flujo.
  3. Considera IP estática o reserva del pool para cada portátil, o usa FQDN con DNS dinámico de la VPN.

Portátil: LPD + impresora compartida

Habilitar LPD

  • Windows 10/11: Activar o desactivar características de WindowsServicios de impresión y documentos → marca Servicio LPD.
  • Windows Server (si el “portátil” es un servidor): agrega el rol Print and Document Services y el servicio LPD Service.

Comprueba el servicio:

# Debe existir y estar en ejecución
Get-Service LPDSVC, Spooler | Format-Table Name, Status, StartType
En caso necesario:
Set-Service LPDSVC -StartupType Automatic
Start-Service LPDSVC

Compartir la impresora USB

  1. Instala el driver correcto del modelo en el portátil y prueba una página de test local.
  2. En Propiedades → Compartir, habilita “Compartir esta impresora” y define un Nombre del recurso compartido simple, sin espacios (p. ej., HP1102).
  3. Recuerda: ese nombre exacto será la cola LPR en el servidor.

Firewall del portátil

Abre únicamente a la(s) IP(s) del servidor:

netsh advfirewall firewall add rule name="LPD 515 (desde Servidor)" ^
  dir=in action=allow protocol=TCP localport=515 remoteip=&lt;IP-servidor&gt;

Para depuración (temporal), puedes habilitar “Compartir archivos e impresoras”, pero no es necesario para LPR/LPD en producción.

Permisos y spooler

  • Asegura que el Spooler está en ejecución y que Usuarios autenticados tienen permiso de “Imprimir” (para test inicial).
  • Evita rutas de spooler en discos con poco espacio (%SystemRoot%\System32\spool\PRINTERS).

Servidor de impresión: origen LPR

Crear/editar el puerto LPR

  1. Crea un puerto tipo LPR apuntando a la IP VPN del portátil.
  2. Cola LPR: exactamente el nombre del recurso compartido en el portátil (p. ej., HP1102).
  3. Habilita LPR byte counting (conteo de bytes).
  4. Deshabilita SNMP Status en ese puerto (el destino no es una impresora SNMP).

Driver y renderizado

  • Usa el driver del modelo en el servidor; el servidor renderiza (PDL correcto: PCL/PS/PDF según aplique).
  • Evita que el portátil relinkee o re-renderice: el LPD entregará el job tal cual.

Prueba rápida con LPR

Habilita el “Cliente LPR” en el servidor si no lo tienes, y ejecuta:

lpr -S &lt;IP-VPN-portátil&gt; -P &lt;NombreColaCompartida&gt; C:\Windows\win.ini

Si llega al portátil, verás el trabajo en “En cola” de esa impresora. Si no, pasa al bloque de validación y diagnóstico.

Validación paso a paso

  1. Conectividad: confirma el 515/TCP abierto desde el servidor (ver comandos arriba).
  2. LPD escuchando en el portátil: Get-NetTCPConnection -LocalPort 515 -State Listen
  3. Nombre de cola: que el nombre LPR en el puerto del servidor coincida al milímetro con el recurso compartido del portátil (mejor sin espacios ni tildes).
  4. Enviar un job mínimo: lpr con un archivo pequeño como win.ini.
  5. Eventos en el portátil:
    • Visor de eventosMicrosoft > Windows > PrintService > Operational (habilita el registro si está desactivado).
    • Filtra por advertencias/errores del servicio LPD o de la impresora.
  6. Si el trabajo aparece pero no imprime:
    • Prueba página de prueba local (descarta fallo físico/driver).
    • Comprueba que el tipo de datos sea compatible (RAW/Text) y que el driver del servidor sea el mismo que el del portátil/modelo.

Por qué “sale del servidor” pero “no entra a la cola”

Estos son los motivos más frecuentes y cómo reconocerlos:

SíntomaCausa probableCómo comprobarAcción
El job “sale” del servidor, pero no aparece en el portátilNombre de cola LPR incorrectoComparar nombre de recurso compartido vs. cola LPR (ojo a espacios y mayúsculas)Poner el mismo nombre, p. ej. HP1102 en ambos lados
Conectividad aparente pero LPR no conectaFirewall del portátil bloquea 515/TCPTest-NetConnection <IP> -Port 515 falla; no hay eventos LPDAbrir regla TCP 515 solo para la IP del servidor
Trabajos grandes fallan, pequeños pasanByte counting desactivado o MTU VPNEn puerto LPR, opción de conteo; revisar logs/fragmentaciónActiva conteo de bytes; ajusta MSS/MTU en la VPN
Servidor no logra iniciar sesión LPRVPN unidireccional (solo cliente→red)Reglas del concentrador deniegan servidor→clientePermitir conexiones iniciadas desde el servidor hacia clientes
Job llega pero imprime jeroglíficosDriver o PDL incorrecto en el servidorRevisar driver/modelo en la cola del servidorInstalar el driver exacto del modelo; forzar RAW adecuado (PCL/PS)

Buenas prácticas de nombres y colas

  • Usa nombres cortos y alfanuméricos para el recurso compartido (ej. EpsonUSB).
  • Evita espacios, tildes o caracteres especiales.
  • Si hay varias impresoras en un portátil, crea un puerto LPR por cada share (HP1102, Epson01, etc.).

Seguridad: mínimo privilegio

  • Limita la regla de firewall a la(s) IP(s) del servidor (nada de “Any”).
  • En la VPN, utiliza políticas por grupo y segmentación (servidor de impresión → clientes LPD únicamente).
  • Considera auditoría de PrintService (Operational) y retención de logs.
  • Si el pool de VPN es dinámico, registra los clientes en DNS de manera segura o reserva IPs por usuario.

Automatización y comandos útiles

Portátil

# Comprobar servicios
Get-Service LPDSVC, Spooler | Format-Table Name, Status, StartType

Arrancar y poner en automático si fuera necesario

Set-Service LPDSVC -StartupType Automatic
Start-Service LPDSVC

Regla de firewall (sustituye \)

netsh advfirewall firewall add rule name="LPD 515 (desde Servidor)" ^
dir=in action=allow protocol=TCP localport=515 remoteip=\

Ver conexiones escuchando en 515

Get-NetTCPConnection -LocalPort 515 -State Listen 

Servidor

Prueba de envío con LPR (imprescindible para aislar problemas):

lpr -S &lt;IP-VPN-portátil&gt; -P &lt;NombreColaCompartida&gt; C:\Windows\win.ini

Creación del puerto LPR (vía interfaz gráfica es lo más estable). Si necesitas script, en muchos equipos sigue existiendo prnport.vbs; ajústalo a tu idioma del sistema:

cscript //nologo %WINDIR%\System32\PrintingAdminScripts\es-ES\prnport.vbs ^
  -a -r LPRPortPortatil ^
  -h &lt;IP-VPN-portátil&gt; -o lpr -q &lt;NombreColaCompartida&gt;

Después, asigna ese puerto a la cola del modelo en el servidor y desactiva SNMP en el puerto.

Comprobaciones de eventos

  • Portátil:
    • Visor de eventos → Microsoft > Windows > PrintService > Operational (habilitar).
    • Errores de “cola no encontrada”, “tamaño inválido” o rechazos LPD.
  • Servidor:
    • Eventos de puerto/monitor LPR y de la cola del modelo.
    • Si el servidor cree que imprimió pero el portátil no registra nada, sospecha de ACL/Firewall o nombre de cola.

Cuándo activar/desactivar LPR byte counting

Algunos LPD descartan trabajos si el tamaño anunciado no coincide. En Windows, habilitar “Enable LPR Byte Counting” suele evitar cortados silenciosos o trabajos “fantasma”. Si notas lentitud anómala solo en LPR, prueba a alternarlo y revisa logs.

MTU/MSS y trabajos grandes

Si archivos pequeños pasan y los grandes no, puede haber fragmentación en la VPN. Ajusta la MSS (clamp) en el túnel o reduce la MTU efectiva del cliente. También puedes validar con pruebas de ping con la flag “no fragmentar” para detectar el tamaño máximo útil.

Alternativas si la política de red no permite LPR/LPD

  • RDP + Easy Print: ejecuta la app en un servidor de aplicaciones y redirige la impresora local del portátil por RDP (no requiere abrir 515 hacia el cliente).
  • Microsoft Universal Print / IPP: usa el conector en el servidor y el agente en el portátil.
  • Servidor de impresión USB dedicado: dispositivos que exponen RAW 9100/LPR por red, accesibles por VPN.
  • Soluciones con agente (pull): el cliente “recoge” trabajos del servidor (Direct/Mobility Print, etc.).

FAQ

¿Debe instalarse el driver también en el portátil? Sí, porque la impresora USB es local; pero quien renderiza el documento es el servidor. Mantener versiones coherentes evita símbolos raros o páginas en blanco.

¿Puedo usar RAW 9100 en lugar de LPR? No con una impresora USB local al portátil: esa impresora no expone 9100 por red. LPR/LPD es el camino para entregar al spooler del cliente.

¿Importa el nombre de equipo del portátil? No para LPR si apuntas por IP. Si usas FQDN, asegúrate de que el cliente VPN se registra en DNS.

¿El LPD de Windows distingue mayúsculas/minúsculas? En la práctica, usa coincidencia exacta. Evita sorpresas con nombres sencillos y sin espacios.

Checklist exprés listo para marcar

  • [ ] La VPN permite conexiones del servidor → portátil.
  • [ ] LPD habilitado y en ejecución en el portátil; Spooler activo.
  • [ ] Cola LPR = nombre exacto del recurso compartido de la impresora.
  • [ ] Firewall del portátil abre TCP 515 (solo para la(s) IP(s) del servidor).
  • [ ] Byte counting habilitado en el puerto LPR del servidor.
  • [ ] Driver correcto instalado en el servidor.
  • [ ] Prueba con lpr y revisa PrintService/LPD en el Visor de eventos.

Plantilla de resolución rápida

PruebaEsperadoSi falla…
Test-NetConnection <IP-portátil> -Port 515TCP TrueAjusta ACL de VPN o firewall del portátil
Get-Service LPDSVCRunningHabilita LPD y Start-Service LPDSVC
Nombre de cola LPR = nombre de recurso compartidoCoincidencia exactaRenombra cola/puerto para que coincidan
lpr -S ... -P ... win.iniTrabajo llega al portátilSi no llega: conectividad/cola; si llega y no imprime: driver/PDL
Evento en PrintService/OperationalRecepción o impresión registradaSin eventos = bloqueo previo; errores = diagnosticar por código

Conclusión

Hacer que una aplicación sanitaria imprima “siempre a través del servidor” aun cuando el usuario está en movilidad con una impresora USB local sí es posible con LPR/LPD, pero la solución solo funciona si todos los tramos están correctamente configurados: VPN bidireccional, LPD activo, cola LPR = nombre del share, firewall afinado, byte counting correcto y driver adecuado en el servidor. Con las pruebas y el checklist de arriba, podrás aislar rápidamente dónde se pierde el trabajo y documentar una configuración repetible y segura.

Si las políticas de red dificultan abrir el 515/TCP hacia los clientes, valora alternativas como RDP + Easy Print, Universal Print/IPP o un print server USB dedicado. En todos los casos, prioriza seguridad (reglas específicas, mínimos privilegios, auditoría) y experiencia de usuario (drivers correctos, nombres simples y pruebas automatizadas).

Índice