DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

CN4248 /

CN4248/dsh-origin-alias

Verified

This plugin has no description yet.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@bb16b8c2

dsh-origin-alias

把「本机地址」统一成 http://127.0.0.1:3080 的 DSH 插件。适合 Docker / 反向代理 部署(例如宿主用 http://192.168.1.10:3084/ 访问),因为不少插件默认假设 DSH 就跑在 127.0.0.1:3080。

它做了什么

层 行为
A. 服务端请求头归一 进入 DSH 的每个 HTTP 请求 / WebSocket 升级请求:Host → 127.0.0.1:3080,Origin → http://127.0.0.1:3080,Referer 的 origin 也归一。插件里任何 req.headers 校验看到的都是本机 3080。
B. 浏览器绝对地址重写 fetch / XMLHttpRequest / WebSocket / EventSource / navigator.sendBeacon:发往 http://127.0.0.1:3080、http://localhost:3080、http://127.0.0.1:3079 等别名的绝对地址,发出前改写成当前访问地址。相对地址(/api/...)不动。
C. 地址宣告 webApp.getAdvertisedUrl() 返回 http://127.0.0.1:3080,于是 DSH_WEB_URL、shell 环境、宿主生成的链接都用 3080。

安全边界没有放宽:Host 与 Origin 依旧同源且是回环,sec-fetch-site: cross-site 的请求仍会被 DSH 的 API 网关拒绝。

配置

见 cordis.patch.yml。常用项:

  • canonicalOrigin:本机地址,默认 http://127.0.0.1:3080
  • advertiseOrigin:对外宣告地址,置空字符串则不接管
  • aliasOrigins:浏览器端会被重写回去的地址前缀
  • rewriteHost / rewriteOrigin / rewriteReferer:服务端改写开关
  • bypassHeader:请求带上该头(值任意)可跳过改写,便于排查

验证

在浏览器里打开(按你的实际访问地址):

http://192.168.1.10:3084/__origin-alias__/status

应返回 ok: true、canonicalOrigin: "http://127.0.0.1:3080",以及 stats 里累计的改写次数。

浏览器控制台里:

__DSH_ORIGIN_ALIAS_RUNTIME__.stats   // fetch / xhr / websocket 等被重写的次数
__DSH_ORIGIN_ALIAS_RUNTIME__.rewrite('http://127.0.0.1:3080/api/bili-duty/status')
// => 'http://192.168.1.10:3084/api/bili-duty/status'

注意

  • 服务端改写依赖 webServer 服务;端口是异步 listen 的,插件会自动等 server 就绪再挂钩子。
  • 如果你的 DSH 不是经反代访问(127.0.0.1:3079 之外没有网关),把 canonicalOrigin 改成实际地址即可。
  • 卸载:plugin_manager 里移除本包,或删掉 bundle 记录后重启。
—/ 5

No ratings yet

Verified DSH bundle

Commit bb16b8c207e4

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout