前言¶
DSH 的 Web 界面通常運行在本機或內網環境裏。當需要在手機上訪問、從外網打開會話,或者希望保留一個可自控的公網入口時,單純依賴本機端口會不方便。dsh-web-remote-frp 是 Casually 維護的 DSH 插件,面向“手機 / 外網遠程訪問”這一場景,把公網通道實現爲 frp 內網穿透,同時保留局域網 HTTP / HTTPS 直連。
下面介紹該插件的定位、核心功能、安裝方式和基本用法。
這是什麼¶
dsh-web-remote-frp 是一個 DSH 遠程訪問插件,許可證爲 MIT。它在 DSH 插件體系裏增加遠程訪問入口,提供 frp 公網穿透、局域網直連、token 鑑權、gzip 壓縮和機器人通道等能力。
它的目標是讓 DSH Web 可以被局域網設備訪問,也可以在部署了 frps 的公網服務器上形成可配置的遠程訪問入口。
核心功能¶
- frp 公網穿透:frpc 缺失時自動從 GitHub Releases 下載最新版;支持 tcp / http / https 三種代理模式。
- 局域網直連:支持 HTTP + HTTPS;HTTPS 自動生成自簽名證書,零配置。
- 獨立開關:局域網與公網可單獨開、關,互不影響。
- 安全認證:每次啓動生成隨機令牌;使用 HttpOnly Cookie;局域網可免 token;公網訪問始終需要 token。
- 代理壓縮:反向代理自動 gzip 壓縮,提升大歷史會話加載速度。
- 側邊欄入口:手機快捷按鈕常駐側欄,刷新不消失。
- 機器人通道:支持微信、QQ(NapCat)、Telegram、釘釘、飛書、企業微信。
安裝與啓用¶
先在 DSH profile 目錄下執行安裝命令:
pnpm add dsh-web-remote-frp
安裝後,在 profile 的 package.json 中把插件加入 dsh.profile.bundles 數組:
{
"dsh.profile.bundles": [
"dsh-web-remote-frp"
]
}
然後啓動 DSH Web:
dsh web
注意:bundle 方式安裝或更新後,必須重啓 DSH;bundle 變更不支持熱加載。若使用 cordis.patch.yml 方式接入,會被 HMR 熱加載。
如果 pnpm 11 對剛發佈版本報新發布包年齡校驗錯誤,可加參數重試:
pnpm add dsh-web-remote-frp --config.minimumReleaseAge=0
基礎配置¶
插件可在 profile 的 cordis.patch.yml 中插入配置。需要關注的配置項包括:
frpServerAddr:frps 服務器地址;留空則僅局域網可用。frpServerPort:frps 服務器端口。frpAuthToken:frps 認證 token。frpProxyType:代理模式;已覈實支持 tcp / http / https 三種模式。frpRemotePort:公網訪問端口。
示例結構如下,值按你的 frps 環境填寫:
- insert:
- id: web-remote-frp
config:
frpServerAddr: "your-frps-host"
frpServerPort: <frps-port>
frpAuthToken: "<frps-auth-token>"
frpProxyType: "tcp"
frpRemotePort: <remote-port>
如果只是在本機或局域網使用,可以把 frpServerAddr 留空,插件則僅局域網可用。
典型用法¶
查看狀態與 token¶
在本機運行:
curl http://127.0.0.1:3080/frpremote/info
通過返回信息查看狀態並提取 token。公網訪問始終需要 token;token 變更後,舊鏈接和舊 Cookie 會立即失效。
重新開啓局域網¶
當沒有 GUI、或局域網開關被關閉時,可在本機執行:
curl -s -X POST http://127.0.0.1:3080/frpremote/control \
-H 'content-type: application/json' \
-d '{"action":"lan:start"}'
執行後,再確認狀態:
curl http://127.0.0.1:3080/frpremote/info
公網訪問¶
公網隧道需要一臺有公網 IP 的服務器運行 frps。配置好 frpServerAddr、frpServerPort、frpAuthToken、frpProxyType、frpRemotePort 後,公網入口通過 frp 隧道暴露。
公網訪問始終需要 token。可從 /frpremote/info 查看狀態並提取當前 token。
適用場景與注意¶
適合以下情況:
- 希望從手機或外網訪問 DSH Web 界面。
- 希望公網入口由自己部署的 frps 服務器提供。
- 希望局域網與公網分別開關,避免互相影響。
- 需要微信、QQ、Telegram、釘釘、飛書、企業微信等機器人通道接入。
使用前注意:
- 插件以當前 dsh 進程權限運行。安裝前應檢查源碼、依賴和 MIT 許可證。
- 公網訪問始終需要 token。進程重啓、
renew動作、保存配置重啓都會重新生成 token;遇到舊鏈接失效,先確認 token 是否已變化。 frpServerAddr留空時僅局域網可用;使用公網隧道需要 frps 服務器。- bundle 方式更新後必須重啓 DSH;
cordis.patch.yml方式會被 HMR 熱加載。 - 與
dsh-web-remote的 DOM id、HTTP 路由、localStorage 鍵前綴不同,理論上可同時安裝互不衝突。
資源¶
- 社區目錄:https://www.skillhub.cn/plugins/Casually/dsh-web-remote-frp
- GitHub:https://github.com/Casually/dsh-web-remote-frp