Skip to content

Instantly share code, notes, and snippets.

@MewX
Last active October 20, 2026 10:11
Show Gist options
  • Select an option

  • Save MewX/53a0b00fe80a74916289a2040d5b4c92 to your computer and use it in GitHub Desktop.

Select an option

Save MewX/53a0b00fe80a74916289a2040d5b4c92 to your computer and use it in GitHub Desktop.
Self Hosted UMTX2 with DNS on PS5

可以。以下统一使用 192.168.86.205,实现:

PS5 User Guide
  → DNS 指向 192.168.86.205
  → 本地 HTTPS 返回 302
  → https://umtx2.pages.dev/

**不需要下载 umtx2 文件;使用时 PS5 需要能访问互联网。**请先在路由器中给树莓派保留 192.168.86.205,避免 IP 变化。以下适用于 Raspberry Pi OS / Debian / Ubuntu,假设没有其他服务占用 DNS 的 53 端口。

  1. 安装软件。

    sudo apt update
    sudo apt install -y nginx dnsmasq openssl dnsutils curl
  2. 设置 DNS 和域名屏蔽。

    sudo tee /etc/dnsmasq.d/ps5.conf >/dev/null <<'EOF'
    listen-address=192.168.86.205
    bind-dynamic
    
    no-resolv
    server=1.1.1.1
    domain-needed
    bogus-priv
    
    # User Guide 指向本地 HTTPS 跳转服务
    address=/manuals.playstation.net/192.168.86.205
    local=/manuals.playstation.net/
    
    # 广泛屏蔽 PlayStation 相关域名
    address=/playstation.net/playstation.com/sonyentertainmentnetwork.com/scea.com/#
    local=/playstation.net/playstation.com/sonyentertainmentnetwork.com/scea.com/
    EOF
    
    sudo dnsmasq --test
    sudo systemctl enable dnsmasq
    sudo systemctl restart dnsmasq

    这会同时影响 PSN、商店等服务;umtx2.pages.dev 不在屏蔽范围内。更具体的手册域名规则优先,# 同时处理 IPv4、IPv6 空地址。dnsmasq 官方说明

  3. 生成证书并设置 HTTPS 跳转。

    如果已经按上一条生成过证书,这段可以跳过:

    sudo install -d -m 700 /etc/nginx/ps5-tls
    
    sudo openssl req -x509 -nodes -newkey rsa:2048 \
      -keyout /etc/nginx/ps5-tls/key.pem \
      -out /etc/nginx/ps5-tls/cert.pem \
      -days 3650 \
      -subj "/CN=manuals.playstation.net" \
      -addext "subjectAltName=DNS:manuals.playstation.net"
    
    sudo chmod 600 /etc/nginx/ps5-tls/key.pem

    然后写入 nginx 配置。如果之前已有 /etc/nginx/conf.d/ps5.conf,这条命令会将它替换为跳转配置。

    sudo tee /etc/nginx/conf.d/ps5.conf >/dev/null <<'EOF'
    server {
        listen 192.168.86.205:80;
        listen 192.168.86.205:443 ssl;
    
        server_name manuals.playstation.net;
    
        ssl_certificate     /etc/nginx/ps5-tls/cert.pem;
        ssl_certificate_key /etc/nginx/ps5-tls/key.pem;
        ssl_protocols TLSv1.2 TLSv1.3;
    
        location / {
            add_header Cache-Control "no-store" always;
            return 302 https://umtx2.pages.dev/;
        }
    }
    EOF
    
    sudo nginx -t
    sudo systemctl enable nginx
    sudo systemctl restart nginx

    这里不保留原来的 /document/... 路径,统一跳转到 umtx2 首页。

  4. 验证 DNS 和跳转。

    在树莓派或同一局域网的电脑上执行:

    # 应返回 192.168.86.205
    dig @192.168.86.205 manuals.playstation.net A +short
    
    # 不应返回 Sony 的公网 IPv6 地址
    dig @192.168.86.205 manuals.playstation.net AAAA +short
    
    # 应返回 0.0.0.0
    dig @192.168.86.205 fus01.ps5.update.playstation.net A +short
    
    # 应返回 ::
    dig @192.168.86.205 fus01.ps5.update.playstation.net AAAA +short
    
    # 应能正常解析,地址不固定
    dig @192.168.86.205 umtx2.pages.dev A +short
    
    # 应返回 302,Location 为 https://umtx2.pages.dev/
    curl -kI \
      --resolve manuals.playstation.net:443:192.168.86.205 \
      https://manuals.playstation.net/document/en/ps5/index.html

    如果启用了防火墙,需要允许局域网访问树莓派的 UDP/TCP 53、TCP 443;80 为可选的 HTTP 入口。

  5. 设置 PS5。

    DNS 设置:手动
    主 DNS:192.168.86.205
    备用 DNS:留空;不能留空时使用 0.0.0.0
    

    不要使用公共 DNS 作为备用,否则可能绕过屏蔽。项目的网络设置说明

    打开 设置 → 用户指南、健康与安全及其他信息 → 用户指南,接受你本地服务的自签名证书提示后,应跳转到 umtx2。

这份配置尚未在你的 PS5 上实测。**DNS 屏蔽不保证覆盖所有更新路径,也不会处理已经下载的更新包;系统的自动下载、自动安装选项仍应关闭。**这个方案需要 PS5 联网访问 Pages,因此不要同时套用我前面“完全禁止 PS5 访问 WAN”的建议。

Codex conversation

User

我有个ps5 fw5.50,我想自己用raspberry pi / oracle cloud / cloudflare 来自己搭设一个umtx2 以及相关的DNS(把user guide导入过去,以及屏蔽更新),请寻找合适的开源项目,或者直接跟我说我如何自己从0开始搭?

Assistant

我先核实 PS5 5.50 与 umtx2 的兼容性,再找可自托管的开源项目和 DNS 配置,比较 Raspberry Pi、Oracle Cloud 和 Cloudflare 的部署方式。

Activity

Searched the web for PS5 umtx2 5.50 github, PS5 exploit host DNS user guide block updates raspberry pi github

Activity

Opened https://raw.githubusercontent.com/idlesauce/umtx2/main/host.py

Activity

Opened https://raw.githubusercontent.com/idlesauce/PS5-Exploit-Host-Self-Host-Tool/main/README.md

Activity

Searched the web for site.thekelleys.org.uk dnsmasq man address local more specific domains, site:developers.cloudflare.com pages static html build output directory custom domains, site:developers.cloudflare.com dns proxy status hostname certificate SNI

Assistant

已确认:原作者的 umtx2 明确支持 5.50。User Guide 入口还需要 HTTPS 服务配合 DNS;只把域名指向 Cloudflare Pages,并不能正确接过去。我正在核对路径和屏蔽规则,准备给你一套树莓派本地部署步骤,以及 Oracle Cloud、Cloudflare 的替代方案。

Activity

Opened https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html

Activity

Opened https://github.com/idlesauce/umtx2/tree/main/document/en/ps5

Activity

Opened https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite

Assistant

可以。**你的 PS5 5.50 在原作者 umtx2 的支持范围内;我建议用 Raspberry Pi 同时运行 DNS 和 HTTPS,直接从 User Guide 打开本地 umtx2。**这样部署完成后,入口不依赖云端。umtx2 原项目

下面是我核对源码后整理的方案;配置尚未在你的主机上实测。

先看项目选择:

项目 适合你的程度 注意事项
idlesauce/umtx2 首选内容源,明确支持 1.00–5.50 自带 host.py、fakedns.py,也可以换成 nginx、dnsmasq
PS5-Exploit-Host-Self-Host-Tool 想要一体化 DNS、网页服务、Wi-Fi AP 时适合 默认下载的是旧 PS5-Exploit-Host,需要改为 umtx2;作者不建议直接暴露公网
stooged/PS5-PI-Server 可以参考树莓派 AP、网络配置 README 使用的是旧 PS5-Exploit-Host,不能把默认安装等同于支持 5.50
bizkut/umtx2-self-hosted 喜欢 Docker 可以考虑 默认网页端口为 8080/8443;User Guide 需要 443。其公开 DNS 是作者的服务,自己部署容器仍需另配 DNS

三个平台怎么选:

  • **Raspberry Pi:最适合你的完整需求。**DNS、User Guide HTTPS、umtx2 文件都放本地。
  • **Oracle Cloud:可以做同样的事情。**但需要处理公网 DNS 的访问限制、云防火墙及实例防火墙。
  • **Cloudflare Pages:适合托管 umtx2 网页。**普通 Pages 和域名 DNS 设置不能独立完成 User Guide 接管。

这里的关键是:**DNS 只改变目标 IP,不改变浏览器访问的域名。**PS5 请求的仍是 https://manuals.playstation.net/...。将它解析到 Pages 的 IP,并不会让 Cloudflare 按你的 xxx.pages.dev 站点提供内容;TLS 和站点绑定仍然不匹配。这是根据 HTTPS 和 Pages 自定义域名机制得出的判断。HTTPS 原理、Pages 域名绑定

下面给你一套适合长期使用的 Raspberry Pi + dnsmasq + nginx 配置。

  1. 准备树莓派和 umtx2 文件。

    假设你安装了 Raspberry Pi OS Lite,树莓派与 PS5 在同一局域网,并在路由器上给树莓派保留了地址:

    192.168.1.10
    

    下文所有这个 IP 都替换成你自己的。建议先用网线接入,减少 AP 配置的变量。

    sudo apt update
    sudo apt install -y git nginx dnsmasq openssl dnsutils curl
    
    sudo git clone https://github.com/idlesauce/umtx2.git /srv/umtx2

    实际网页目录是 /srv/umtx2/document/en/ps5,上游的 Pages 部署也使用这个目录。上游部署配置

  2. 配置 DNS:接管手册域名,屏蔽 PlayStation 相关域名。

    以下假设这是一台尚未运行 Pi-hole、AdGuard Home 或其他 DNS 服务的树莓派;已有 DNS 服务时,应把规则合入已有服务,避免争用 53 端口。

    创建配置:

    sudo tee /etc/dnsmasq.d/ps5.conf >/dev/null <<'EOF'
    listen-address=192.168.1.10
    bind-dynamic
    
    no-resolv
    server=1.1.1.1
    domain-needed
    bogus-priv
    
    # User Guide 指向本地 HTTPS 服务
    address=/manuals.playstation.net/192.168.1.10
    local=/manuals.playstation.net/
    
    # 广泛屏蔽 PlayStation 相关域名
    address=/playstation.net/playstation.com/sonyentertainmentnetwork.com/scea.com/#
    local=/playstation.net/playstation.com/sonyentertainmentnetwork.com/scea.com/
    EOF
    
    sudo dnsmasq --test
    sudo systemctl enable dnsmasq
    sudo systemctl restart dnsmasq

    更具体的 manuals.playstation.net 规则优先于 playstation.net。# 为其他匹配域名返回 IPv4/IPv6 空地址;local= 阻止其他记录类型继续向上游查询。dnsmasq 官方说明

    **这套规则会同时影响 PSN、商店等服务,不是只屏蔽更新。**原项目的 FakeDNS 也采用广泛屏蔽 PlayStation 相关域名的思路;它不是一份保证永远完整的更新服务器清单。原项目 DNS 源码

  3. 配置 User Guide 所需的 HTTPS。

    生成本地自签名证书:

    sudo install -d -m 700 /etc/nginx/ps5-tls
    
    sudo openssl req -x509 -nodes -newkey rsa:2048 \
      -keyout /etc/nginx/ps5-tls/key.pem \
      -out /etc/nginx/ps5-tls/cert.pem \
      -days 3650 \
      -subj "/CN=manuals.playstation.net" \
      -addext "subjectAltName=DNS:manuals.playstation.net"
    
    sudo chmod 600 /etc/nginx/ps5-tls/key.pem

    创建 nginx 配置:

    sudo tee /etc/nginx/conf.d/ps5.conf >/dev/null <<'EOF'
    server {
        listen 192.168.1.10:80;
        listen 192.168.1.10:443 ssl;
    
        server_name manuals.playstation.net;
    
        ssl_certificate     /etc/nginx/ps5-tls/cert.pem;
        ssl_certificate_key /etc/nginx/ps5-tls/key.pem;
        ssl_protocols TLSv1.2 TLSv1.3;
    
        root /srv/umtx2/document/en/ps5;
        index index.html;
    
        # 将不同语言的 User Guide 路径映射到同一套文件
        rewrite ^/document/[^/]+/ps5/?(.*)$ /$1 last;
    
        location / {
            try_files $uri $uri/ =404;
            add_header Cache-Control "no-store";
        }
    }
    EOF
    
    sudo nginx -t
    sudo systemctl enable nginx
    sudo systemctl restart nginx

    这里保留了原项目对不同语言 User Guide 路径的处理思路。首次进入可能出现证书警告,接受后才能加载本地页面;已有自托管项目也记录了这一流程。原版 host.py、User Guide 操作说明

  4. 先验证,再连接 PS5。

    在同一局域网内运行:

    # 应返回 192.168.1.10
    dig @192.168.1.10 manuals.playstation.net A +short
    
    # 不应返回 Sony 的公网 IPv6 地址
    dig @192.168.1.10 manuals.playstation.net AAAA +short
    
    # 应返回 0.0.0.0
    dig @192.168.1.10 fus01.ps5.update.playstation.net A +short
    
    # 应返回 ::
    dig @192.168.1.10 fus01.ps5.update.playstation.net AAAA +short
    
    # 应返回 HTTP 200;这里 -k 用于接受我们自己的自签名证书
    curl -kI \
      --resolve manuals.playstation.net:443:192.168.1.10 \
      https://manuals.playstation.net/document/en/ps5/index.html

    这些检查验证 DNS 和网页服务,不能证明所有更新路径均已被封锁。

    如果失败,查看:

    sudo journalctl -u dnsmasq -n 50 --no-pager
    sudo tail -n 50 /var/log/nginx/error.log
    sudo ss -lntup

    常见原因是 IP 写错、53/443 端口已被占用、无线客户端隔离,或防火墙阻止了局域网访问。需要允许 PS5 到树莓派的 UDP/TCP 53、TCP 443;80 用于普通 HTTP 访问。

  5. 设置 PS5。

    在当前网络的高级设置中,把 DNS 改为手动:

    Primary DNS:192.168.1.10
    Secondary DNS:留空;界面不允许时按自托管工具文档使用 0.0.0.0
    

    不要把 8.8.8.8 或 1.1.1.1 填作 PS5 的备用 DNS,否则会留下绕过过滤的路径。树莓派配置中的 server=1.1.1.1 则是过滤之后的上游解析器,作用不同。自托管工具的 PS5 设置说明

    然后进入:

    设置 → 用户指南、健康与安全及其他信息 → 用户指南
    

    接受你这台服务器的证书提示,正常应看到 UMTX2 页面,再执行 Jailbreak。

    同时关闭系统软件的自动下载、自动安装;对应选项位于“设置 → 系统 → 系统软件 → 系统软件更新和设置”。Sony 官方说明

**如果你特别在意保住 5.50,建议再在路由器上禁止 PS5 访问 WAN,仅允许它访问局域网。**这条规则要同时覆盖 IPv4、IPv6,并只针对 PS5;树莓派仍可联网维护文件。这样比单靠域名列表更可靠。局域网托管与浏览器离线缓存是两回事,上面的方案不需要先配置 AppCache。

如果改放 Oracle Cloud,网页和 DNS 配置基本相同,但要区分两个地址:

  • listen-address 和 nginx 的 listen:填实例网卡上的私网 IP。
  • address=/manuals.playstation.net/...:填 PS5 能访问的实例公网 IP。
  • PS5 的主 DNS:填这个公网 IP。

在 OCI 的 NSG/Security List 和实例防火墙里,允许你家公网 IP /32 访问 UDP/TCP 53、TCP 443;需要 HTTP 时再开放 80。**不要向全互联网开放递归 DNS。**家庭公网 IP 变化后需要更新规则,或者通过家中路由器与 OCI 建 VPN。OCI 安全规则文档

如果想用 Cloudflare Pages,可以 fork idlesauce/umtx2,导入 Pages,设置:

Framework preset:None
Build command:exit 0
Build output directory:document/en/ps5

这是无需编译的静态托管方式。Cloudflare 静态站点部署说明

它适合通过浏览器入口访问自己的 https://xxx.pages.dev。若仍要从 User Guide 进入,就还需要树莓派或 OCI 接住 manuals.playstation.net:443,再提供页面或跳转到 Pages;更新屏蔽 DNS 也仍然需要单独配置。对你目前的需求,直接把全部文件放在树莓派上更省事。

User

oh 我其实只需要一个DNS指向 https://umtx2.pages.dev/?

Assistant

**你可以不自托管 umtx2,但从 User Guide 进入的话,单独一个 DNS 还不够。**我前面给的方案确实比你的实际需求复杂了。

DNS 只能把域名解析成 IP,不能把它跳转到 https://umtx2.pages.dev/。你需要的是:

PS5 打开 User Guide
  ↓ 你的 DNS 将 manuals.playstation.net 指向树莓派或 OCI
你的 HTTPS 服务(443,接受自签名证书提示)
  ↓ 返回 HTTP 302 跳转
https://umtx2.pages.dev/

这样,你的服务器只负责 DNS、更新域名屏蔽和一个 HTTPS 跳转,不需要保存 umtx2 文件。

不能直接把 manuals.playstation.net 解析到 Cloudflare Pages 的 IP,或设成它的 CNAME:PS5 请求中的域名仍然是 manuals.playstation.net,Cloudflare 不会因此切换到你的目标站点。

如果你已经有能直接打开 https://umtx2.pages.dev/ 的浏览器入口,就连这个 HTTPS 跳转服务也不用搭了,只保留用于屏蔽更新的 DNS 即可。

User

可以把所有内网IP改成 192.168.86.205 再发我一下嘛?

Assistant

我把配置统一改成 192.168.86.205,按你刚确认的方案,只保留 DNS 屏蔽和跳转到 umtx2 的 HTTPS 服务。

Assistant

可以。以下统一使用 192.168.86.205,实现:

PS5 User Guide
  → DNS 指向 192.168.86.205
  → 本地 HTTPS 返回 302
  → https://umtx2.pages.dev/

**不需要下载 umtx2 文件;使用时 PS5 需要能访问互联网。**请先在路由器中给树莓派保留 192.168.86.205,避免 IP 变化。以下适用于 Raspberry Pi OS / Debian / Ubuntu,假设没有其他服务占用 DNS 的 53 端口。

  1. 安装软件。

    sudo apt update
    sudo apt install -y nginx dnsmasq openssl dnsutils curl
  2. 设置 DNS 和域名屏蔽。

    sudo tee /etc/dnsmasq.d/ps5.conf >/dev/null <<'EOF'
    listen-address=192.168.86.205
    bind-dynamic
    
    no-resolv
    server=1.1.1.1
    domain-needed
    bogus-priv
    
    # User Guide 指向本地 HTTPS 跳转服务
    address=/manuals.playstation.net/192.168.86.205
    local=/manuals.playstation.net/
    
    # 广泛屏蔽 PlayStation 相关域名
    address=/playstation.net/playstation.com/sonyentertainmentnetwork.com/scea.com/#
    local=/playstation.net/playstation.com/sonyentertainmentnetwork.com/scea.com/
    EOF
    
    sudo dnsmasq --test
    sudo systemctl enable dnsmasq
    sudo systemctl restart dnsmasq

    这会同时影响 PSN、商店等服务;umtx2.pages.dev 不在屏蔽范围内。更具体的手册域名规则优先,# 同时处理 IPv4、IPv6 空地址。dnsmasq 官方说明

  3. 生成证书并设置 HTTPS 跳转。

    如果已经按上一条生成过证书,这段可以跳过:

    sudo install -d -m 700 /etc/nginx/ps5-tls
    
    sudo openssl req -x509 -nodes -newkey rsa:2048 \
      -keyout /etc/nginx/ps5-tls/key.pem \
      -out /etc/nginx/ps5-tls/cert.pem \
      -days 3650 \
      -subj "/CN=manuals.playstation.net" \
      -addext "subjectAltName=DNS:manuals.playstation.net"
    
    sudo chmod 600 /etc/nginx/ps5-tls/key.pem

    然后写入 nginx 配置。如果之前已有 /etc/nginx/conf.d/ps5.conf,这条命令会将它替换为跳转配置。

    sudo tee /etc/nginx/conf.d/ps5.conf >/dev/null <<'EOF'
    server {
        listen 192.168.86.205:80;
        listen 192.168.86.205:443 ssl;
    
        server_name manuals.playstation.net;
    
        ssl_certificate     /etc/nginx/ps5-tls/cert.pem;
        ssl_certificate_key /etc/nginx/ps5-tls/key.pem;
        ssl_protocols TLSv1.2 TLSv1.3;
    
        location / {
            add_header Cache-Control "no-store" always;
            return 302 https://umtx2.pages.dev/;
        }
    }
    EOF
    
    sudo nginx -t
    sudo systemctl enable nginx
    sudo systemctl restart nginx

    这里不保留原来的 /document/... 路径,统一跳转到 umtx2 首页。

  4. 验证 DNS 和跳转。

    在树莓派或同一局域网的电脑上执行:

    # 应返回 192.168.86.205
    dig @192.168.86.205 manuals.playstation.net A +short
    
    # 不应返回 Sony 的公网 IPv6 地址
    dig @192.168.86.205 manuals.playstation.net AAAA +short
    
    # 应返回 0.0.0.0
    dig @192.168.86.205 fus01.ps5.update.playstation.net A +short
    
    # 应返回 ::
    dig @192.168.86.205 fus01.ps5.update.playstation.net AAAA +short
    
    # 应能正常解析,地址不固定
    dig @192.168.86.205 umtx2.pages.dev A +short
    
    # 应返回 302,Location 为 https://umtx2.pages.dev/
    curl -kI \
      --resolve manuals.playstation.net:443:192.168.86.205 \
      https://manuals.playstation.net/document/en/ps5/index.html

    如果启用了防火墙,需要允许局域网访问树莓派的 UDP/TCP 53、TCP 443;80 为可选的 HTTP 入口。

  5. 设置 PS5。

    DNS 设置:手动
    主 DNS:192.168.86.205
    备用 DNS:留空;不能留空时使用 0.0.0.0
    

    不要使用公共 DNS 作为备用,否则可能绕过屏蔽。项目的网络设置说明

    打开 设置 → 用户指南、健康与安全及其他信息 → 用户指南,接受你本地服务的自签名证书提示后,应跳转到 umtx2。

这份配置尚未在你的 PS5 上实测。**DNS 屏蔽不保证覆盖所有更新路径,也不会处理已经下载的更新包;系统的自动下载、自动安装选项仍应关闭。**这个方案需要 PS5 联网访问 Pages,因此不要同时套用我前面“完全禁止 PS5 访问 WAN”的建议。

User

等下,这里显示200是不是有问题?

$ curl -kI \

--resolve manuals.playstation.net:443:192.168.86.205
https://manuals.playstation.net/document/en/ps5/index.html HTTP/1.1 200 OK Server: nginx/1.14.2 Date: Tue, 20 Oct 2026 09:47:13 GMT Content-Type: text/html Content-Length: 3773 Last-Modified: Tue, 20 Oct 2026 09:38:12 GMT Connection: keep-alive ETag: "6ad73684-ebd" Cache-Control: no-store Accept-Ranges: bytes

Assistant

**对于“跳转到 umtx2”的配置,应该返回 302,所以这个 200 确实不符合预期。**你的命令没有 -L,不会自动跟随跳转,因此它不是跳转后 Pages 返回的结果。

响应里的 Last-Modified、ETag、Accept-Ranges 很像 nginx 正在直接提供静态文件。最可能仍在使用前面的本地托管配置,或者请求命中了其他 server 配置。

先检查配置文件内容:

sudo cat /etc/nginx/conf.d/ps5.conf

确认其中的 location / 已经变成:

location / {
    add_header Cache-Control "no-store" always;
    return 302 https://umtx2.pages.dev/;
}

然后检查并重新加载,留意是否出现报错或 conflicting server name 警告:

sudo nginx -t && sudo systemctl reload nginx

重新运行你刚才的 curl,预期看到:

HTTP/1.1 302 Moved Temporarily
Location: https://umtx2.pages.dev/

如果仍是 200,把下面命令的输出贴过来,我帮你定位是不是旧站点配置抢先匹配了:

sudo nginx -T 2>&1 | grep -nE \
  'configuration file|listen |server_name |location |root |alias |return |rewrite |conflicting'

另外,这次 curl 已经通过 --resolve 强制连接 192.168.86.205,当前应排查 nginx 配置,不是 DNS。

User

$ sudo cat /etc/nginx/conf.d/ps5.conf server { listen 192.168.86.205:80; listen 192.168.86.205:443 ssl;

server_name manuals.playstation.net;

ssl_certificate     /etc/nginx/ps5-tls/cert.pem;
ssl_certificate_key /etc/nginx/ps5-tls/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;

root /srv/umtx2/document/en/ps5;
index index.html;

# 将不同语言的 User Guide 路径映射到同一套文件
rewrite ^/document/[^/]+/ps5/?(.*)$ /$1 last;

location / {
    try_files $uri $uri/ =404;
    add_header Cache-Control "no-store";
}

}

Assistant

原因找到了:当前还是本地托管配置,try_files 直接返回 umtx2 文件,所以是 200。

执行下面命令,将它替换成跳转配置:

sudo tee /etc/nginx/conf.d/ps5.conf >/dev/null <<'EOF'
server {
    listen 192.168.86.205:80;
    listen 192.168.86.205:443 ssl;

    server_name manuals.playstation.net;

    ssl_certificate     /etc/nginx/ps5-tls/cert.pem;
    ssl_certificate_key /etc/nginx/ps5-tls/key.pem;
    ssl_protocols TLSv1.2 TLSv1.3;

    location / {
        add_header Cache-Control "no-store" always;
        return 302 https://umtx2.pages.dev/;
    }
}
EOF

sudo nginx -t && sudo systemctl reload nginx

然后验证:

curl -kI \
  --resolve manuals.playstation.net:443:192.168.86.205 \
  https://manuals.playstation.net/document/en/ps5/index.html

这次预期返回:

HTTP/1.1 302 Moved Temporarily
Location: https://umtx2.pages.dev/

DNS 配置不用改。

User

本地托管有问题吗

Assistant

**本地托管没有问题,而且更符合你最初的需求。**刚才的 200 OK 对本地托管来说是正常结果;我之前判断它“不符合预期”,只是因为我们后来改成了“302 跳转到 Pages”的方案。

你现在的配置可以保留:

  • User Guide 通过 DNS 指向 192.168.86.205。
  • nginx 直接提供 /srv/umtx2/document/en/ps5 里的 umtx2 页面。
  • DNS 继续屏蔽配置中的 PlayStation 相关域名。
  • 本地文件齐全时,加载入口不依赖 Cloudflare 或外网。

**不用改成 302。**现在可以直接在 PS5 打开 User Guide,接受本地证书提示,确认是否显示 UMTX2 页面。200 已经说明网页请求成功,但是否能正常运行,还需要在 PS5 上实际验证。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment