
PS5의 USB 포트로 전원을 공급받는 Raspberry Pi에서 실행되는 PS5 익스플로잇 웹 서버
Raspberry Pi OS Lite 64-bit, Bookworm 이상을 NetworkManager와 함께 사용하세요. 64 GB SD 카드면 충분한 공간이 있습니다. 이는 기존 Python 호스트를 실행합니다. ESP32 바이너리를 Pi나 SD 카드에 플래시하지 마세요.
Pi는 PS5를 위한 Wi-Fi 네트워크를 생성합니다. DHCP 서버가 콘솔에 IP 주소를 할당하고 DNS로 Pi를 사용하도록 지시합니다. DNS는 manuals.playstation.net을 192.168.4.1로 해석하며, 여기서 Python 서버가 HTTP와 HTTPS를 통해 이 프로젝트를 제공합니다. PS5 사용 설명서를 열면 로컬 페이지가 로드됩니다.
설치 프로그램은 사이트를 /home/ps5에 복사하고, 종속성을 설치하며, 로컬 자체 서명 TLS 인증서를 생성하고, systemd 서비스를 만듭니다. 설치가 끝나면 호스트를 시작하고 모든 부팅 시 활성화합니다. 터미널이나 SSH 세션을 열어둘 필요가 없습니다.
핫스팟을 지원하는 Wi-Fi가 있는 Raspberry Pi, Raspberry Pi OS가 설치된 SD 카드, 적절한 전원 공급 장치, 설치 중 인터넷 액세스가 필요합니다. Pi의 내장 Wi-Fi가 핫스팟이 되므로 설정에는 이더넷을 사용하세요. 미국에서 Pi를 사용하는 경우 Wi-Fi 국가를 US로 설정하세요.
Pi에서 이 저장소를 클론한 다음, 이더넷 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
파일 이름과 달리, 설치 프로그램은 Pi 5를 요구하지 않고 Wi-Fi 기능을 확인합니다. 다른 모델은 하드웨어에서 검증되지 않았습니다. 이 저장소에는 스크립트 설치만 포함되어 있습니다.
아래 아카이브 지침은 패키지된 tar.gz를 별도로 받은 경우에 적용됩니다. 또는 저장소 ZIP을 다운로드하여 압축을 풀고 그 내용을 Pi에 업로드하세요.
Raspberry Pi Imager를 사용하여 Raspberry Pi OS를 설치하세요. 사용자 이름, 비밀번호, SSH를 구성하고 실제 Wi-Fi 국가를 설정하세요 (또는 부팅 후 sudo raspi-config 사용). 가능하면 설치 및 원격 액세스를 위해 이더넷을 연결하세요.
Imager에서 SSH를 활성화하거나, Pi의 터미널에서 다음을 실행하세요:
sudo systemctl enable --now ssh
hostname -I
Windows PowerShell에서 사용자 이름과 Pi의 이더넷 IP 주소를 사용하여 연결하세요. 예: ssh [email protected].
포트 22의 SFTP에도 동일한 자격 증명을 사용하세요. root 로그인은 필요하지 않습니다.
프로젝트의 releases 폴더에 있는 ps5-pi5-selfhost.tar.gz를 SFTP를 사용하여 Pi 사용자의 홈 폴더에 업로드하세요. 압축을 풀고 설치하세요:
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'
설정은 모든 서비스를 즉시 시작하고 모든 부팅 시 활성화합니다. 이더넷 SSH 또는 로컬 키보드/화면을 통해 설정을 실행하세요: 활성화는 내장 Wi-Fi를 핫스팟으로 전환하고 해당 Wi-Fi를 사용하는 SSH 세션을 끊습니다. 인터넷은 패키지 설치에 필요하며 일반 호스팅에는 필요하지 않습니다. 부팅 활성화는 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 | NetworkManager Wi-Fi 액세스 포인트를 활성화합니다; 어댑터가 초기화되는 동안 재시도합니다 |
ps5-dns.service | 포트 53에서 DNS를, UDP 포트 67에서 DHCP를 제공합니다 |
ps5-http.service | TCP 포트 80에서 /home/ps5/serve.py를 실행합니다 |
ps5-https.service | TCP 포트 443에서 /home/ps5/serve_https.py를 실행합니다 |
두 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 / 프록시 | 자동 / 사용 안 함 |
| Pi 핫스팟 IP | 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 연결 테스트가 실패할 수 있습니다. 이더넷은 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 파일을 변경한 후 웹 서비스를 재시작하세요. JavaScript를 변경한 후 PS5 가이드를 닫았다가 다시 여세요. 재설치하려면 타겟을 중지하고 이 설치 프로그램을 다시 실행하세요. 이 핫스팟 설치에서 일반 컨테이너 setup-ps5.sh를 실행하지 마세요: 이는 다른 DNS 서비스를 구성합니다.
설치 프로그램은 전용 NetworkManager 프로필과 전용 ps5-dns 서비스를 생성합니다. 이더넷 프로필을 변경하거나, 다른 네트워크 스택 위에 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
구성되지 않은 경우 sudo raspi-config를 통해 Wi-Fi 국가를 설정하세요.
기본 인터페이스는 wlan0입니다. Wi-Fi 어댑터가 다른 이름을 사용하는 경우 설치 프로그램과 함께 --interface NAME을 사용하세요. 보고된 오류를 해결한 후:
sudo systemctl restart ps5-host.target
활성화를 확인하고 부팅 로그를 검사하세요:
systemctl is-enabled ps5-host.target
sudo journalctl -b -u ps5-hotspot -u ps5-dns -u ps5-http -u ps5-https --no-pager -n 100
비활성화된 경우 sudo systemctl enable --now ps5-host.target을 실행하세요. 이미 활성화되어 있다면 로그가 시작 실패를 식별합니다. 다시 활성화해도 근본적인 오류는 해결되지 않습니다. 업데이트된 설치 프로그램에는 Wi-Fi 활성화 재시도가 포함되어 있습니다.
PS5 IP 및 DNS 설정을 자동으로 유지하세요. PS5-Host에 연결된 컴퓨터에서 테스트하세요:
nslookup manuals.playstation.net 192.168.4.1
curl -k https://192.168.4.1/
Windows에서는 curl.exe -k https://192.168.4.1/을 사용하세요. DNS는 192.168.4.1을 반환해야 하고 curl은 페이지 HTML을 반환해야 합니다. PS5 가이드에는 HTTPS가 필요합니다. 포트 80 테스트만 성공해도 포트 443을 검증하지는 않습니다. 여기서 -k 옵션은 로컬 자체 서명 인증서를 테스트할 수 있게 합니다.
| 경로 | 내용 |
|---|---|
/home/ps5 | 설치된 웹사이트, 스크립트 및 페이로드 |
/etc/ps5-host | 인증서, 개인 키, DNS 구성 및 프로필 UUID |
/etc/systemd/system/ps5-* | 서비스 및 타겟 정의 |
/usr/local/sbin/ps5-start-hotspot | Wi-Fi 활성화 도우미 |
/var/backups/ps5-pi | 설정 중 백업된 파일 |
업데이트를 사용자 홈 폴더에 업로드하고 위와 같이 설정을 다시 실행하세요. 설치된 폴더는 수정하려면 sudo가 필요할 수 있습니다. Python 파일을 직접 편집한 후 sudo systemctl restart ps5-http ps5-https를 실행하세요. 정적 파일 변경에는 Python 재시작이 필요하지 않지만, 업데이트된 JavaScript를 로드하려면 가이드를 닫았다가 다시 여세요.
sudo systemctl disable --now ps5-host.target
이것은 네 개의 구성 서비스를 모두 중지합니다. 핫스팟 프로필은 자체적으로 자동 연결되지 않습니다. 기존 Wi-Fi 프로필은 유지됩니다. 필요한 경우 nmtui로 하나를 선택하세요. 프로젝트 파일, 인증서 및 백업은 보존됩니다.
Pi 하드웨어, Wi-Fi 연결 및 PS5 실행에는 실제 장치 테스트가 필요합니다. 설치 프로그램 구문/구성 검사가 그 테스트를 대체하지는 않습니다.