
Servidor web de explotación para PS5 en una Raspberry Pi alimentada por el puerto USB de la PS5
Use Raspberry Pi OS Lite 64-bit, Bookworm o posterior con NetworkManager. Una tarjeta SD de 64 GB tiene espacio de sobra. Esto ejecuta el host de Python existente; no flashees el binario del ESP32 en la Pi ni en su tarjeta SD.
La Pi crea una red Wi-Fi para la PS5. Su servidor DHCP asigna a la consola
una dirección IP y le indica que use la Pi para DNS. El DNS resuelve
manuals.playstation.net a 192.168.4.1, donde los servidores de Python sirven este
proyecto por HTTP y HTTPS. Abrir la Guía del Usuario de la PS5 carga la página local.
El instalador copia el sitio a /home/ps5, instala sus dependencias,
genera un certificado TLS autofirmado local y crea servicios systemd.
Inicia el host cuando termina la instalación y lo habilita en cada arranque;
no necesitas dejar abierta una terminal ni una sesión SSH.
Necesitas una Raspberry Pi con Wi-Fi compatible con hotspot, una tarjeta SD con Raspberry Pi OS, una fuente de alimentación adecuada y acceso a Internet durante la instalación. Usa Ethernet para la configuración porque el Wi-Fi integrado de la Pi se convierte en el hotspot. Configura el país de Wi-Fi como US si usas la Pi en Estados Unidos.
Clona este repositorio en la Pi, luego ejecuta el instalador por SSH sobre Ethernet o una consola local:
sudo apt-get update
sudo apt-get install -y git
git clone https://github.com/flex36ty/ps5-pihost.git ~/ps5-selfhost
cd ~/ps5-selfhost
sudo bash setup-pi5.sh
A pesar de su nombre de archivo, el instalador verifica las capacidades de Wi-Fi en lugar de requerir una Pi 5. Otros modelos no han sido verificados en hardware. Este repositorio contiene únicamente la instalación por script.
Las instrucciones del archivo comprimido a continuación aplican si recibiste el tar.gz empaquetado por separado. Alternativamente, descarga el ZIP del repositorio, extráelo y sube su contenido a la Pi.
Usa Raspberry Pi Imager para instalar Raspberry Pi OS. Configura un nombre de usuario,
contraseña y SSH, y establece tu país de Wi-Fi real (o usa sudo raspi-config
después del arranque). Conecta Ethernet para la instalación y el acceso remoto si es posible.
Habilita SSH en Imager, o ejecuta esto desde una terminal en la Pi:
sudo systemctl enable --now ssh
hostname -I
Desde Windows PowerShell, conéctate usando tu nombre de usuario y la dirección IP Ethernet
de la Pi, por ejemplo ssh [email protected].
Usa las mismas credenciales para SFTP en el puerto 22; no se requiere inicio de sesión como root.
Sube ps5-pi5-selfhost.tar.gz desde la carpeta releases del proyecto a la
carpeta home de tu usuario de la Pi usando SFTP. Extráelo e instálalo:
mkdir -p ~/ps5-selfhost
tar -xzf ~/ps5-pi5-selfhost.tar.gz -C ~/ps5-selfhost --strip-components=1
cd ~/ps5-selfhost
sudo bash setup-pi5.sh
El archivo contiene una carpeta de nivel superior, por lo que --strip-components=1 coloca
el instalador directamente en ~/ps5-selfhost. Si subes el proyecto completo
en su lugar, ejecuta el instalador desde la carpeta que contiene setup-pi5.sh.
Opcionalmente elige un nombre/contraseña diferente:
sudo bash setup-pi5.sh --ssid PS5-Host --password 'YourChosenPassword'
La configuración inicia todos los servicios inmediatamente y los habilita en cada arranque. Ejecuta la configuración por SSH sobre Ethernet o con un teclado/pantalla local: la activación convierte el Wi-Fi integrado en un hotspot y desconecta una sesión SSH que use ese Wi-Fi. Se necesita Internet para la instalación de paquetes, no para el hosting normal. La activación en el arranque reintenta mientras el adaptador Wi-Fi se inicializa. La configuración verifica todos los servicios e imprime diagnósticos si el inicio falla.
Para una instalación existente, deténla antes de volver a ejecutar la configuración:
sudo systemctl stop ps5-host.target
cd ~/ps5-selfhost
sudo bash setup-pi5.sh
ps5-host.target agrupa cuatro servicios. Es un target de systemd, no una sesión de terminal.
La configuración lo habilita bajo multi-user.target y lo inicia inmediatamente.
| Unidad | Propósito |
|---|---|
ps5-hotspot.service | Activa el punto de acceso Wi-Fi de NetworkManager; reintenta mientras el adaptador se inicializa |
ps5-dns.service | Proporciona DNS en el puerto 53 y DHCP en el puerto UDP 67 |
ps5-http.service | Ejecuta /home/ps5/serve.py en el puerto TCP 80 |
ps5-https.service | Ejecuta /home/ps5/serve_https.py en el puerto TCP 443 |
Ambos servidores de Python se ejecutan al mismo tiempo. El DNS espera a que se inicie el hotspot. Los procesos web y DNS se reinician en caso de fallo. Detener el target detiene los cuatro servicios; reiniciarlo los reinicia juntos.
Verifica la habilitación en el arranque y el estado de los servicios:
systemctl is-enabled ps5-host.target
systemctl status ps5-host.target ps5-hotspot ps5-dns ps5-http ps5-https --no-pager
El target debería estar enabled, el hotspot active (exited), y los servicios DNS y
web active (running). El hotspot usa un comando de activación de un solo uso,
por lo que active (exited) es normal. Reinicia y repite estas verificaciones para confirmar el
inicio en el arranque en tu Pi.
| Ajuste | Valor |
|---|---|
| Red Wi-Fi | PS5-Host |
| Contraseña | ps5offline (a menos que se cambie durante la configuración) |
| Dirección IP | Automática |
| DNS | Automático |
| Nombre de host DHCP | No especificar |
| MTU / Proxy | Automático / No usar |
| IP del hotspot de la Pi | 192.168.4.1 |
| Pool DHCP | 192.168.4.100–192.168.4.150, concesión de 12 horas |
Abre la Guía del Usuario y continúa más allá del aviso del certificado local si aparece. El DNS dirige manuals.playstation.net a la Pi; HTTPS maneja la solicitud de la guía. R2 envía nanoDNS, ShadowMount Plus, luego kstuff. El hotspot no tiene configurado uso compartido de Internet, por lo que la prueba de conexión a Internet/PSN puede fallar mientras la página local funciona. Ethernet permanece disponible para administrar la Pi.
Después de que el exploit alcanza el cargador ELF, R2 envía estos archivos en orden:
payloads/nanodns.elfpayloads/shadowmountplus.elfpayloads/kstuff.elfMantén estos nombres de archivo y mayúsculas/minúsculas exactos. El orden se define en
src/kexp.js; agregar otro archivo ELF a la carpeta no lo agrega automáticamente
a la secuencia de R2. etaHEN.elf no forma parte de esta secuencia.
sudo systemctl start ps5-host.target
sudo systemctl stop ps5-host.target
sudo systemctl restart ps5-host.target
sudo systemctl status ps5-hotspot ps5-dns ps5-http ps5-https
sudo journalctl -u ps5-hotspot -u ps5-dns -u ps5-https -f
Desde una computadora unida al hotspot:
nslookup manuals.playstation.net 192.168.4.1
curl -k https://192.168.4.1/
Usa /home/ps5 para los archivos web y los payloads. Reinicia los servicios web después de cambiar
archivos de Python; cierra/vuelve a abrir la guía de la PS5 después de cambiar JavaScript. Para reinstalar,
detén el target y vuelve a ejecutar este instalador. No ejecutes el setup-ps5.sh genérico del contenedor
en esta instalación de hotspot: configura un servicio DNS diferente.
El instalador crea un perfil dedicado de NetworkManager y un servicio
ps5-dns dedicado. No cambia los perfiles de Ethernet, no instala NetworkManager
sobre otra pila de red, no reemplaza servicios DNS existentes ni agrega reglas
de NAT/firewall. Si otro servicio DNS/DHCP ocupa los puertos requeridos, resuelve ese
conflicto primero. Cuando un firewall está habilitado, permite UDP 67, TCP/UDP 53 y TCP
80/443 solo en la interfaz del hotspot. Mantén el host en tu red local.