
Веб-сервер эксплойта PS5 на Raspberry Pi с питанием от USB-порта PS5
Используйте Raspberry Pi OS Lite 64-bit, Bookworm или новее с NetworkManager. SD-карты на 64 ГБ более чем достаточно. Здесь запускается существующий Python-хост; не прошивайте бинарник ESP32 на Pi или его SD-карту.
Pi создаёт Wi-Fi-сеть для PS5. Его DHCP-сервер назначает консоли
IP-адрес и указывает использовать Pi для DNS. DNS разрешает
manuals.playstation.net в 192.168.4.1, где Python-серверы обслуживают этот
проект по HTTP и HTTPS. Открытие Руководства пользователя PS5 загружает локальную страницу.
Установщик копирует сайт в /home/ps5, устанавливает его зависимости,
генерирует локальный самоподписанный TLS-сертификат и создаёт службы systemd.
Он запускает хост по завершении установки и включает его при каждой загрузке;
вам не нужно держать открытым терминал или SSH-сессию.
Вам нужен Raspberry Pi с Wi-Fi, поддерживающим режим точки доступа, SD-карта с Raspberry Pi OS, подходящий блок питания и доступ в Интернет во время установки. Используйте Ethernet для настройки, поскольку встроенный Wi-Fi Pi становится точкой доступа. Установите страну Wi-Fi в US, если используете Pi в Соединённых Штатах.
Клонируйте этот репозиторий на Pi, затем запустите установщик через Ethernet SSH или локальную консоль:
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
Несмотря на имя файла, установщик проверяет возможности Wi-Fi, а не требует Pi 5. Другие модели не были проверены на оборудовании. Этот репозиторий содержит только установку скрипта.
Инструкции по архиву ниже применимы, если вы получили упакованный tar.gz отдельно. В качестве альтернативы скачайте ZIP репозитория, распакуйте его и загрузите его содержимое на Pi.
Используйте Raspberry Pi Imager для установки Raspberry Pi OS. Настройте имя пользователя,
пароль и SSH, а также установите вашу фактическую страну Wi-Fi (или используйте sudo raspi-config
после загрузки). Подключите Ethernet для установки и удалённого доступа, если возможно.
Включите SSH в Imager или выполните это из терминала на Pi:
sudo systemctl enable --now ssh
hostname -I
Из Windows PowerShell подключитесь, используя ваше имя пользователя и Ethernet
IP-адрес Pi, например ssh [email protected].
Используйте те же учётные данные для SFTP на порту 22; вход root не требуется.
Загрузите ps5-pi5-selfhost.tar.gz из папки releases проекта в домашнюю папку
вашего пользователя Pi с помощью SFTP. Распакуйте и установите его:
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
Архив содержит папку верхнего уровня, поэтому --strip-components=1 помещает
установщик непосредственно в ~/ps5-selfhost. Если вы загрузили весь проект
вместо этого, запустите установщик из папки, содержащей setup-pi5.sh.
При желании выберите другое имя/пароль:
sudo bash setup-pi5.sh --ssid PS5-Host --password 'YourChosenPassword'
Установка сразу запускает все службы и включает их при каждой загрузке. Запускайте установку через Ethernet SSH или локальную клавиатуру/экран: активация преобразует встроенный Wi-Fi в точку доступа и разрывает SSH-сессию, использующую этот Wi-Fi. Интернет нужен для установки пакетов, а не для обычного хостинга. Активация при загрузке повторяет попытки, пока Wi-Fi-адаптер инициализируется. Установка проверяет все службы и выводит диагностику, если запуск не удался.
Для существующей установки остановите её перед повторным запуском установки:
sudo systemctl stop ps5-host.target
cd ~/ps5-selfhost
sudo bash setup-pi5.sh
ps5-host.target объединяет четыре службы. Это цель systemd, а не сессия
терминала. Установка включает её в multi-user.target и запускает немедленно.
| Юнит | Назначение |
|---|---|
ps5-hotspot.service | Активирует точку доступа Wi-Fi NetworkManager; повторяет попытки, пока адаптер инициализируется |
ps5-dns.service | Предоставляет DNS на порту 53 и DHCP на UDP-порту 67 |
ps5-http.service | Запускает /home/ps5/serve.py на TCP-порту 80 |
ps5-https.service | Запускает /home/ps5/serve_https.py на TCP-порту 443 |
Оба Python-сервера работают одновременно. DNS ожидает запуска точки доступа. Веб- и DNS-процессы перезапускаются при сбое. Остановка цели останавливает все четыре службы; перезапуск перезапускает их вместе.
Проверьте включение при загрузке и работоспособность служб:
systemctl is-enabled ps5-host.target
systemctl status ps5-host.target ps5-hotspot ps5-dns ps5-http ps5-https --no-pager
Цель должна быть enabled, точка доступа active (exited), а DNS и
веб-службы active (running). Точка доступа использует одноразовую команду активации,
поэтому active (exited) — это нормально. Перезагрузитесь и повторите эти проверки, чтобы убедиться в
запуске при загрузке на вашем Pi.
| Параметр | Значение |
|---|---|
| Wi-Fi-сеть | PS5-Host |
| Пароль | ps5offline (если не изменён во время установки) |
| IP-адрес | Автоматически |
| DNS | Автоматически |
| Имя хоста DHCP | Не указывать |
| MTU / Прокси | Автоматически / Не использовать |
| IP точки доступа Pi | 192.168.4.1 |
| Пул DHCP | 192.168.4.100–192.168.4.150, аренда на 12 часов |
Откройте Руководство пользователя и пройдите запрос локального сертификата, если он появится. DNS направляет manuals.playstation.net на Pi; HTTPS обрабатывает запрос руководства. R2 отправляет nanoDNS, ShadowMount Plus, затем kstuff. У точки доступа нет настроенного общего доступа в Интернет, поэтому тест подключения к Интернету/PSN может не пройти, пока локальная страница работает. Ethernet остаётся доступным для администрирования Pi.
После того как эксплойт достигнет загрузчика ELF, R2 отправляет эти файлы по порядку:
payloads/nanodns.elfpayloads/shadowmountplus.elfpayloads/kstuff.elfСохраняйте эти точные имена файлов и регистр. Порядок определён в
src/kexp.js; добавление другого ELF-файла в папку не добавляет его автоматически
в последовательность R2. etaHEN.elf не является частью этой последовательности.
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
С компьютера, подключённого к точке доступа:
nslookup manuals.playstation.net 192.168.4.1
curl -k https://192.168.4.1/
Используйте /home/ps5 для веб-файлов и полезных нагрузок. Перезапустите веб-службы после изменения
Python-файлов; закройте/откройте заново руководство PS5 после изменения JavaScript. Чтобы переустановить,
остановите цель и повторно запустите этот установщик. Не запускайте универсальный контейнерный
setup-ps5.sh на этой установке точки доступа: он настраивает другую службу DNS.
Установщик создаёт выделенный профиль NetworkManager и выделенную
службу ps5-dns. Он не изменяет профили Ethernet, не устанавливает NetworkManager
поверх другого сетевого стека, не заменяет существующие службы DNS и не добавляет правила NAT/брандмауэра.
Если другая служба DNS/DHCP занимает требуемые порты, сначала устраните этот
конфликт. Когда брандмауэр включён, разрешите UDP 67, TCP/UDP 53 и TCP
80/443 только на интерфейсе точки доступа. Держите хост в вашей локальной сети.
Соберите эти журналы перед ручным запуском хоста, чтобы сбой загрузки был виден:
sudo journalctl -b -u ps5-hotspot.service -u NetworkManager.service --no-pager -n 100
nmcli device status
rfkill list