Acceso remoto seguro a Pi Web: túnel SSH, proxy inverso y sin riesgo de autenticación

Acceso remoto seguro a Pi Web: túnel SSH, proxy inverso y sin riesgos de autenticación, que cubre configuración, autenticación, límites de permisos, conmutación por recuperación y mantenimiento a largo plazo.

Este tutorial de Pi Web solo trata la tarea específica del título. Pi Web solo escucha 127.0.0.1 de forma predeterminada y no tiene autenticación de capa de aplicación; puede llamar al Agente con altos privilegios, por lo que se prefiere el reenvío local SSH para el acceso remoto en lugar de vincularse directamente a 0.0.0.0.

Todas las operaciones siguientes se colocan primero en el repositorio de prueba, la cuenta de prueba o el servicio que solo escucha en la interfaz de loopback. El nombre de dominio, el nombre de usuario, la ruta y la clave del comando son marcadores de posición y deben reemplazarse antes de la ejecución.

Primero comprenda el límite de no autenticación de Pi Web

Esta sección resuelve el problema de “comprender primero el límite de no autenticación de Pi Web”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.

Para Pi Web, la base del juicio es: Pi Web solo escucha 127.0.0.1 de forma predeterminada y no tiene autenticación de capa de aplicación; puede llamar al Agente con altos privilegios, por lo que se prefiere el reenvío local SSH para el acceso remoto en lugar de vincularse directamente a 0.0.0.0. No abra accidentalmente más permisos en esta etapa.

1
netstat -ano | Select-String '30141'

Conservar la salida del comando y la marca de tiempo después de la ejecución. Si la salida depende de variables temporales en la terminal actual, abra una nueva terminal y verifique nuevamente.

Verificación de la versión de Node.js 22.19

Procese en el siguiente orden:

  1. Lea la versión real y la configuración actual.
  2. Cambie solo una configuración relevante para esta sección.
  3. Ejecute una solicitud de solo lectura o revocable.
  4. Verifique los registros, los códigos de salida y los archivos finales.
  5. Revierta la modificación anterior si falla.
1
node --version

El criterio de finalización aquí no es que aparezca la interfaz, sino que la “verificación de la versión de Node.js 22.19” tenga resultados repetibles.

Mantenga el monitoreo de loopback para iniciar el servicio

Qué comprobar Rendimiento aceptable Señales de que debes parar
Mantenga el monitoreo de loopback para iniciar servicios Claro alcance de entrada y salida Expandir automáticamente a otros proyectos o cuentas
Permisos Obtenga solo los permisos que necesita para completar la tarea Requerir derechos de administrador o clave completa
Iniciar sesión No se pudo localizar y ha sido insensibilizado Aparece Token, Cookie o texto privado
Revertir Puede restaurar el estado anterior Las modificaciones son irreversibles y no hay respaldo
1
npx @agegr/pi-web@latest --hostname 127.0.0.1 --port 30141 --no-open

Una vez que aparezca la señal de parada en la tabla, deshaga primero los cambios en esta sección y no continúe con la automatización posterior.

Ruta completa para el reenvío de puerto local SSH

Prepare una muestra de éxito y una muestra de error en torno a “Ruta completa para el reenvío de puerto local SSH”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.

1
ssh -L 30141:127.0.0.1:30141 user@server

Se recomienda registrar los siguientes cuatro elementos:

  • Versión previa a la ejecución o confirmación de Git.
  • Entrada real, no se registra ningún valor secreto.
  • Salida observable, código de estado o diferencia.
  • Acciones de recuperación y revisión de resultados tras la recuperación.

Si la causa del error aún no está clara, modifique sólo una variable a la vez; no cambie el puerto, el tiempo de ejecución, el proveedor y el proxy al mismo tiempo.

Confirme desde el cliente que el puerto solo está abierto en esta máquina

Esta sección resuelve el problema de “confirmar desde el cliente que el puerto solo está abierto en esta máquina”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.

Para Pi Web, la base del juicio es: Pi Web solo escucha 127.0.0.1 de forma predeterminada y no tiene autenticación de capa de aplicación; puede llamar al Agente con altos privilegios, por lo que se prefiere el reenvío local SSH para el acceso remoto en lugar de vincularse directamente a 0.0.0.0. No abra accidentalmente más permisos en esta etapa.

1
curl.exe http://127.0.0.1:30141

Conservar la salida del comando y la marca de tiempo después de la ejecución. Si la salida depende de variables temporales en la terminal actual, abra una nueva terminal y verifique nuevamente.

Cómo aislar archivos de sesión en servidores multiusuario

Procese en el siguiente orden:

  1. Lea la versión real y la configuración actual.
  2. Cambie solo una configuración relevante para esta sección.
  3. Ejecute una solicitud de solo lectura o revocable.
  4. Verifique los registros, los códigos de salida y los archivos finales.
  5. Revierta la modificación anterior si falla.
1
Get-ChildItem -Force $env:USERPROFILE\.pi -ErrorAction SilentlyContinue

El criterio de finalización aquí no es que aparezca la interfaz, sino que “cómo un servidor multiusuario aísla los archivos de sesión” tiene resultados repetibles.

¿Por qué no se recomienda utilizar 0.0.0.0 directamente?

Qué comprobar Rendimiento aceptable Señales de que debes parar
¿Por qué no se recomienda utilizar 0.0.0.0 directamente? Claro alcance de entrada y salida Expandir automáticamente a otros proyectos o cuentas
Permisos Obtenga solo los permisos que necesita para completar la tarea Requerir derechos de administrador o clave completa
Iniciar sesión No se pudo localizar y ha sido insensibilizado Aparece Token, Cookie o texto privado
Revertir Puede restaurar el estado anterior Las modificaciones son irreversibles y no hay respaldo
1
pi-web --hostname 127.0.0.1 --port 30141 --no-open

Una vez que aparezca la señal de parada en la tabla, deshaga primero los cambios en esta sección y no continúe con la automatización posterior.

¿Qué protecciones se deben agregar cuando es necesario revertir la generación?

Prepare una muestra de éxito y una muestra de fracaso sobre “qué protecciones se deben agregar cuando es necesaria la retrogeneración”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.

1
caddy validate --config Caddyfile

Se recomienda registrar los siguientes cuatro elementos:

  • Versión previa a la ejecución o confirmación de Git.
  • Entrada real, no se registra ningún valor secreto.
  • Salida observable, código de estado o diferencia.
  • Acciones de recuperación y revisión de resultados tras la recuperación.

Si la causa del error aún no está clara, modifique sólo una variable a la vez; no cambie el puerto, el tiempo de ejecución, el proveedor y el proxy al mismo tiempo.

Cómo pasar variables de entorno de proxy a las solicitudes del servidor

Esta sección resuelve “Cómo pasar variables de entorno proxy a solicitudes del servidor”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.

Para Pi Web, la base del juicio es: Pi Web solo escucha 127.0.0.1 de forma predeterminada y no tiene autenticación de capa de aplicación; puede llamar al Agente con altos privilegios, por lo que se prefiere el reenvío local SSH para el acceso remoto en lugar de vincularse directamente a 0.0.0.0. No abra accidentalmente más permisos en esta etapa.

1
2
3
$env:HTTP_PROXY='http://127.0.0.1:7890'
$env:HTTPS_PROXY=$env:HTTP_PROXY
$env:NO_PROXY='localhost,127.0.0.1'

Conservar la salida del comando y la marca de tiempo después de la ejecución. Si la salida depende de variables temporales en la terminal actual, abra una nueva terminal y verifique nuevamente.

Desconexión del túnel y página falsa en línea

Procese en el siguiente orden:

  1. Lea la versión real y la configuración actual.
  2. Cambie solo una configuración relevante para esta sección.
  3. Ejecute una solicitud de solo lectura o revocable.
  4. Verifique los registros, los códigos de salida y los archivos finales.
  5. Revierta la modificación anterior si falla.
1
Test-NetConnection 127.0.0.1 -Port 30141

El criterio de finalización aquí no es que aparezca la interfaz, sino que “la desconexión del túnel y la página falsa en línea” tengan resultados repetibles.

Cierra el servicio y limpia los puertos restantes.

Qué comprobar Rendimiento aceptable Señales de que debes parar
Cerrar servicios y limpiar los puertos restantes Claro alcance de entrada y salida Expandir automáticamente a otros proyectos o cuentas
Permisos Obtenga solo los permisos que necesita para completar la tarea Requerir derechos de administrador o clave completa
Iniciar sesión No se pudo localizar y ha sido insensibilizado Aparece Token, Cookie o texto privado
Revertir Puede restaurar el estado anterior Las modificaciones son irreversibles y no hay respaldo
1
Get-NetTCPConnection -LocalPort 30141 -ErrorAction SilentlyContinue

Una vez que aparezca la señal de parada en la tabla, deshaga primero los cambios en esta sección y no continúe con la automatización posterior.

Lista de verificación de aceptación de acceso remoto

Prepare una muestra de éxito y una muestra de fracaso en torno a la “Lista de verificación de aceptación de acceso remoto”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.

1
curl.exe -I http://127.0.0.1:30141

Se recomienda registrar los siguientes cuatro elementos:

  • Versión previa a la ejecución o confirmación de Git.
  • Entrada real, no se registra ningún valor secreto.
  • Salida observable, código de estado o diferencia.
  • Acciones de recuperación y revisión de resultados tras la recuperación.

Si la causa del error aún no está clara, modifique sólo una variable a la vez; no cambie el puerto, el tiempo de ejecución, el proveedor y el proxy al mismo tiempo.

Restringir cuentas de reenvío SSH

Esta sección aborda “Restricción de cuentas de reenvío SSH”. Primero registre el estado actual, luego realice la acción mínima y finalmente confirme el resultado con evidencia independiente.

Para Pi Web, la base del juicio es: Pi Web solo escucha 127.0.0.1 de forma predeterminada y no tiene autenticación de capa de aplicación; puede llamar al Agente con altos privilegios, por lo que se prefiere el reenvío local SSH para el acceso remoto en lugar de vincularse directamente a 0.0.0.0. No abra accidentalmente más permisos en esta etapa.

1
ssh -v -L 30141:127.0.0.1:30141 user@server

Conservar la salida del comando y la marca de tiempo después de la ejecución. Si la salida depende de variables temporales en la terminal actual, abra una nueva terminal y verifique nuevamente.

Límites de copia de seguridad para archivos de sesión Pi

Procese en el siguiente orden:

  1. Lea la versión real y la configuración actual.
  2. Cambie solo una configuración relevante para esta sección.
  3. Ejecute una solicitud de solo lectura o revocable.
  4. Verifique los registros, los códigos de salida y los archivos finales.
  5. Revierta la modificación anterior si falla.
1
Get-ChildItem -Force $env:USERPROFILE\.pi -ErrorAction SilentlyContinue

El criterio de finalización aquí no es que aparezca la interfaz, sino que haya resultados reproducibles para “Límites de copia de seguridad de los archivos de sesión Pi”.

Desactive inmediatamente el enrutamiento si falla la autenticación de generación inversa

Qué comprobar Rendimiento aceptable Señales de que debes parar
Desactive inmediatamente el enrutamiento si falla la autenticación antigeneración Claro alcance de entrada y salida Expandir automáticamente a otros proyectos o cuentas
Permisos Obtenga solo los permisos que necesita para completar la tarea Requerir derechos de administrador o clave completa
Iniciar sesión No se pudo localizar y ha sido insensibilizado Aparece Token, Cookie o texto privado
Revertir Puede restaurar el estado anterior Las modificaciones son irreversibles y no hay respaldo
1
caddy stop

Una vez que aparezca la señal de parada en la tabla, deshaga primero los cambios en esta sección y no continúe con la automatización posterior.

Revisar la dirección de escucha después de la actualización

Prepare una muestra de éxito y una muestra de error en torno a “Volver a verificar la dirección de escucha después de la actualización”. Las muestras exitosas verifican la ruta normal y las muestras fallidas verifican si las restricciones realmente surten efecto.

1
Get-NetTCPConnection -LocalPort 30141 -ErrorAction SilentlyContinue

Se recomienda registrar los siguientes cuatro elementos:

  • Versión previa a la ejecución o confirmación de Git.
  • Entrada real, no se registra ningún valor secreto.
  • Salida observable, código de estado o diferencia.
  • Acciones de recuperación y revisión de resultados tras la recuperación.

Si la causa del error aún no está clara, modifique sólo una variable a la vez; no cambie el puerto, el tiempo de ejecución, el proveedor y el proxy al mismo tiempo.

Preguntas frecuentes sobre PiWeb

¿Es posible omitir el entorno de prueba y usar Pi Web directamente en el proyecto oficial?

No recomendado. Primero complete al menos una solicitud de éxito mínimo, una falla intencional y un simulacro de recuperación.

El comando Pi Web se puede ejecutar pero el resultado es incorrecto, ¿dónde comprobarlo primero?

Primero verifique el rango de entrada, la configuración efectiva real y la respuesta ascendente, y luego verifique el resumen del modelo. Un proceso normal no significa que los resultados del negocio sean correctos.

¿Cómo evitar que las claves o tokens web de Pi ingresen a Git?

Utilice variables de entorno del sistema, administración de secretos o archivos de configuración fuera del proyecto y busque diferencias antes de confirmar. Las claves deben rotarse después de que se descubre una infracción.

¿Qué es lo que más comúnmente se pasa por alto al actualizar Pi Web?

Es más fácil pasar por alto el formato de configuración, la dirección de escucha predeterminada, el alcance de los permisos y la compatibilidad de la caché. Guarde la versión y los ejemplos de verificación antes de actualizar.

Problemas de aceptación de Pi Web

Al finalizar, debería poder responder las siguientes preguntas:

  • ¿Qué versión exacta estás usando?
  • ¿A qué directorios, puertos, cuentas y servicios externos se puede acceder?
  • ¿Cómo devolver el resultado exitoso a los datos originales o Git diff?
  • Cuando falla el flujo ascendente, ¿informará un error, lo volverá a intentar o cambiará?
  • ¿Es posible que la clave aparezca en los registros o en el historial?
  • ¿Cómo volver al estado previo a la modificación en diez minutos?

Si no se puede responder a alguna de estas preguntas, Pi Web aún se encuentra en estado de prueba y no debería ampliar los permisos ni aprovechar la automatización de la producción.