dsh 區域網路存取與連接埠設定指南
預設連接埠 3080、--port 改埠、為什麼 0.0.0.0 被官方拒絕、防火牆放行,以及用 dsh-LAN 外掛把 Web UI 安全開放給同一網路上的手機和同事。
最近更新: 2026-10-03
dsh web 在自己的電腦上跑得好好的,然後同一個空間的人發現,瀏覽器輸入 http://<你的IP>:3080 打不開——這是 dsh 裝完之後的第一問。本頁把這件事一次講透:連接埠本身、打不開背後的綁定邊界,以及把區域網路存取正經打開的外掛路線。
先劃範圍:本頁只講同一個 Wi-Fi / 同一辦公網內的裝置互訪;存取者在外部網路(手機流量、別的網路)時路由不通,需要公網通道——那是遠端存取教學的領域: 手機遠端控制 dsh
重點速覽
- ▸dsh web 預設位址 http://127.0.0.1:3080——連接埠 3080,只監聽本機回環,啟動時命令列會印出存取位址。
- ▸改埠用 dsh web --port 8080;--port 是 web 應用的旗標,不是啟動器的。
- ▸官方 CLI 有意拒絕 --host 0.0.0.0(直接報參數錯誤)。今天開區域網路要走 dsh-LAN 外掛或反向代理,而且只在可信網路裡開。
- ▸同一 Wi-Fi:直接用區域網路 IP 存取;不在同一網路:需要通道——見遠端存取教學。
預設連接埠與本機檢查
「dsh 的連接埠是多少」這類問題,三步就能在現場查清楚,不用翻設定檔。
預設:127.0.0.1 上的 3080
dsh web 預設在 http://127.0.0.1:3080 啟動 Web UI 並自動開啟瀏覽器;加 --no-open 可以只起服務不彈瀏覽器。無論哪種方式,指令都會印出存取位址——啟動輸出就是連接埠問題的第一手答案。
確認行程實際監聽的連接埠
用過非預設旗標啟動、或者想拿實證?列出監聽中的連線:Windows 用 netstat,macOS / Linux 用 lsof。輸出裡的 PID 還能告訴你連接埠被哪個行程佔用——排「連接埠被佔用」時正是它。
查本機的區域網路 IP
其他裝置要輸入的就是這個位址。Windows:ipconfig 看目前網卡的 IPv4 位址;macOS:ipconfig getifaddr en0;Linux:ip a。192.168.x.x、10.x.x.x 這類是區域網路位址;127.x.x.x 是回環位址,只有本機自己連得到。

改連接埠(--port)
3080 被佔了,或者單純想換一個埠——一個旗標的事。
把 --port 傳給 web 應用
啟動器不認得的旗標會原樣交給啟動的 profile,所以 --port 能直達 web 應用:下面的簡寫和顯式 profile 兩種寫法都可以。注意邊界:--port 屬於 web 應用,啟動器自己的旗標要放在它前面。
改了連接埠卻沒生效?
旗標之所以能覆蓋設定行,是因為設定行在執行時讀取旗標——但如果使用者補丁把整段 config 換成了字面量,這個執行時讀取就不存在了,旗標會被靜默忽略。遇到 --port 沒生效,先查自己的 cordis.patch.yml 裡有沒有把 webserver 設定寫死成字面量的補丁,改回去再重啟 dsh web。

綁定邊界:為什麼區域網路裝置連不上
埠錯會報「連線被拒絕」;預設綁定則是更隱蔽的一種——頁面只存在於啟動 dsh 的那台機器上。這是官方刻意設計。
dsh web 只綁 127.0.0.1,且拒絕 0.0.0.0
只聽回環是出廠預設,官方 CLI 參考文件明確寫著:CLI 有意不支援 --host 0.0.0.0,會以參數錯誤結束。Web UI 控制的是一個能讀檔案、能執行指令的 Agent——把這樣一個控制面不加認證地綁到所有網卡上,正是這條限制要防住的事。
特權介面的 403 信任柵欄
就算連接埠透過代理變得可達,設定、憑證、Agent 預設集、模型探索這些特權介面對非回環來源一律回 403——這是一道防 DNS 劫持的柵欄,不是認證。主機名稱 / 反向代理部署可以用可重複的 --trusted-host <host> 旗標向柵欄登記存取名。社群部署實錄(官方討論 #849)把這堵 403 牆記錄得很細。
為什麼不該硬繞
官方討論區 #130 的安全實測走通了完整鏈條:未認證的網路用戶端偽造 loopback 的 Host 標頭、通過特權 RPC 門禁、改寫 LLM endpoint——下一次模型呼叫就把你的 API Key 和對話內容一起送到攻擊者伺服器。在官方遠端認證模型落地之前,正經的區域網路開啟方式就是下面的外掛和代理兩條路,而且只在可信網路裡用。
上面的卡片是官方 CLI 參考的口徑;下面這組畫面來自 2026 年 9 月的一段區域網路實錄:在所錄建置上,dsh web --host 0.0.0.0 --port 3080 --no-open 直接啟動成功,並在同一行同時回顯本機與 LAN 兩條帶權杖 URL。兩個來源對 0.0.0.0 的描述並不一致,請以你自己建置的實際啟動輸出為準;無論落在哪種行為,都請把回顯裡的權杖當作整個區域網路的唯一關卡,並只在可信賴的網路裡這樣做。


防火牆:放行入站 3080
綁定解決後,第二道門是作業系統防火牆——不放行入站 3080,手機那邊看到的就是逾時而不是頁面。
Windows
Windows Defender 防火牆預設封鎖私人/公用網路的主動入站連線。一條系統管理員指令放行 TCP 3080,也可以在「Windows 安全性 > 防火牆與網路保護 > 進階設定」裡手動建入站規則。
macOS
系統防火牆預設關閉;如果你開過,它是按應用程式攔的——在「系統設定 > 網路 > 防火牆」裡放行 node(或你的 dsh 執行環境),通常首次連網時系統彈窗就能順手點允許。
Linux
看你在用哪套防火牆:ufw 一條指令放行;firewalld 加埠後要永久化並重新載入;iptables 手工加一條 TCP 3080 的 ACCEPT 規則。下面的 dsh-LAN 外掛會自動維護這些規則(Windows、firewalld、ufw、iptables 都管)。
手機 / 平板存取
最典型的區域網路場景:dsh 跑在桌上型電腦,你手上是手機——同一個 Wi-Fi,手機端不安裝任何東西。
瀏覽器開啟 http://<區域網路IP>:3080
同一網路裡的任意裝置,在瀏覽器輸入第 3 步查到的區域網路 IP——帶埠號的完整位址。綁定和防火牆都通了以後,看到的就是和主機一樣的 Web UI:只有一個伺服器行程,所有會話狀態都在伺服器端,手機和桌面看到同一場對話、即時同步。
打不開時按順序查
依次過一遍:綁定還在回環(表示外掛/代理路線還沒上——這個階段問題還輪不到防火牆)、主機防火牆、手機和主機是否真的同網段——不少路由器預設開 AP 隔離,同一個 Wi-Fi 下的裝置互相也看不見。另外位址要帶 http:// 和埠輸全,手機瀏覽器很愛自作主張。
若實例以連網模式啟動(啟動訊息裡出現 LAN: 字樣),裝置第一次開啟位址時先遇到的不是工作台,而是 dsh 原生的權杖關卡頁:

想把手機端體驗再推進一步(第三方用戶端、伴隨應用程式),去遠端與行動裝置集合逛逛: 遠端與手機存取合集
dsh-LAN 外掛:一個開關的區域網路方案
MrMu666/dsh-LAN 是 dsh Web GUI 的專門區域網路存取外掛——MIT 授權,2026-10-02 查核時為 10 star。一次安裝同時解決綁定、防火牆和通關密語門。
它做什麼
裝好後 Web GUI 預設綁定 0.0.0.0(所有網卡),主機會自動放行防火牆連接埠(Windows 放行 Defender 的 Domain + Private 設定檔;Linux 按 firewalld → ufw → iptables 依序嘗試)。任何裝置開啟 http://<本機IP>:3080 都先看到全螢幕通關密語門;手機直向開啟時外掛在官方介面上注入觸控最佳化——大觸控目標、16px 輸入字號、安全區。注意:外掛 README 寫明支援 DSH 0.1.2-rc.1 及更新、已驗證至 0.1.5-rc.1,未涵蓋目前的 0.2.0-rc.2,安裝前先到儲存庫確認相容性。
怎麼裝
README 自己給的「最簡單安裝方式」:直接告訴 dsh「安裝 dsh-LAN 外掛」,由 Agent 完成安裝。腳本路線是複製儲存庫後每個平台跑一支腳本——屬於補丁路徑安裝:對執行中的 profile 熱載入,無需重啟立即生效。bundle 路徑則像一般外掛一樣從本機目錄加入,需要重啟 dsh web 生效。
怎麼用
在本機開啟「設定 > General > 區域網路存取」卡片:開開關、設通關密語(至少 4 位)、看防火牆狀態列。其他裝置在登入門輸入通關密語即可;勾「記住通關密語」後該裝置免輸。被官方鎖在本機的設定/憑證等特權方法,透過外掛的 /lanapi 通關密語代理通道重新可用。關掉開關綁定立刻回退 127.0.0.1——這是最根本的總開關。
認清它的安全邊界
README 說得很直白:登入門是介面層防護,特權操作在伺服器端強制驗證;但非特權 API(會話讀寫)在 API 層對區域網路仍然開放。家裡/辦公室可信內網這是合理取捨,公共網路就是壞主意——只在可信 Wi-Fi 開,離開就關。它無法取代真正的認證。
另一條外掛路線:多人共用一台 dsh
dsh-LAN 之外,社群裡還有面向「多人共用一台 dsh」的第三方外掛:linyupark/dsh-multi-tenant(查證時為新倉,Release 0.3.0)在單一 dsh 實例上實現「專案 + 使用者」多租戶——把真實工作區目錄繫結為專案,為每個使用者生成軟連結式獨立工作區,Web 介面用密碼登入把關。README 的威脅模型一節說得很直白:這是「防君子」的軟邊界,面向公網請在 dsh 前面加真正的邊界(反向代理驗證 / ngrok basic auth / VPN)。下面四張畫面來自同一段區域網路實錄,展示裝上外掛後從登入到多人工作區的完整鏈路:




裝外掛的前提是會裝外掛——不熟悉 dsh 外掛指令的話,先看外掛安裝指南: 安全地安裝外掛
另外兩條路:反向代理與 SSH 轉發
不想動 dsh 自身的綁定?這兩條路完全不碰 dsh 行程。
dsh-proxy:在 :3081 加一道 Basic Auth 前門
smanx/dsh-proxy(24 star)是 HTTP + WebSocket 反向代理外掛:裝進 web profile,隨 dsh web 啟停,把請求轉發到 127.0.0.1:3080,並在前面加瀏覽器 Basic Auth。安裝並重啟 dsh web 後,連 http://<區域網路IP>:3081 會跳出認證框;帳號和密碼同時設定才會啟用密碼登入。它的 Host 改寫與 Origin 對齊還能讓 WebSocket 不觸發上文那道 403 柵欄。同類的還有 GDWhisper/dsh-web-startup-auth(50 star),按作者在討論區 #3132 的說法,提供認證模組讓 0.0.0.0 啟動不被攔截。
SSH 本地轉發:零外掛、全程加密
在要存取的裝置上把本機連接埠轉發到主機的回環:在存取方裝置執行下面的指令,然後在那台裝置開啟 http://localhost:3080。dsh 側什麼都不用改,流量全程加密——適合給一位可信同事的筆電用。手機裝 SSH 用戶端也能做,但那就接近通道玩法了:出了這個網路,請直接看遠端存取教學。
一個 flag 管對外位址:--public-url
0.2.1-alpha.1 直接回答了反向代理的命名難題。CLI 參考原話:--public-url <url> 對外宣告一個 HTTP(S) 應用程式根位址——可帶轉發前綴——取代監聽器的回環 URL。
告訴 dsh 外面看到的位址
按發布說明,這個值同時是展示給使用者的 Web 位址、瀏覽器開啟的位址、提供給模型的位址——包括帶路徑前綴的反向代理 URL。實際形態:把 dsh 放到 nginx 或 Caddy 的子路徑後面,對外根位址只傳一次,印出的 URL、瀏覽器接手和模型拿到的連結就不再各說各話。版本誠實:flag 隨 0.2.1-alpha.1 發布——2026-10-03 當天 npm latest 還停在 0.2.0-rc.2,要用就得主動釘住 alpha 標籤。
要的不是改名而是從外部網路回到控制台?遠端存取指南講穿透路線。 手機遠端控制 dsh
常見錯誤,逐一解讀
這個主題真實出現的四種失敗,以及每種背後的原因。
啟動失敗 / 連接埠被佔用
3080 被別的行程佔著。用第一節「確認監聽連接埠」的指令按 PID 找到佔用者——結束那個行程,或用 --port 換一個空閒埠啟動 dsh web。
區域網路裝置存取設定/預設集回 403
這是預期行為,不是設定錯了:/api 信任柵欄拒絕非回環來源呼叫特權方法(設定、憑證、Agent 預設集、模型探索)。dsh-LAN 外掛透過通關密語通道重新暴露這些方法;代理路線則讓未認證的區域網路裝置停留在一般頁面上。不要把原始碼裡的檢查刪掉繞過——原因見「綁定邊界」一節。
改了連接埠,舊埠還在回應
兩個常見原因:設定補丁把 webserver 設定寫成了字面量,--port 的執行時讀取失效(見「改連接埠」);或者瀏覽器分頁還是舊快取。改完設定重啟 dsh web,瀏覽器強制重新整理。
手機完全連不上
按「手機 / 平板存取」的清單從頭過:綁定是否還鎖回環(先上外掛/代理)、防火牆入站規則、手機與主機是否同網段(AP 隔離)、位址是否帶埠輸全。全部排查過仍不通,去疑難排解手冊繼續。
這些都沒對上你的症狀?去疑難排解手冊接著查: 疑難排解與錯誤百科
dsh 區域網路存取常見問題
連接埠與綁定的高頻問題,答案逐條對照官方文件與公開討論。
dsh 的預設連接埠是多少?
3080。dsh web 預設在 http://127.0.0.1:3080 提供 Web UI,啟動時會印出位址。該位址只綁回環:連接埠只在啟動 dsh 的那台機器上應答,區域網路連不到。改埠用 dsh web --port <埠>。
為什麼手機或其他電腦打不開 http://<我的IP>:3080?
因為 dsh web 預設只綁 127.0.0.1,且官方 CLI 有意拒絕 --host 0.0.0.0(參數錯誤結束)——Web UI 控制的是能讀寫檔案、執行指令的 Agent,預設就按規定不暴露到網路。今天要把區域網路打開,用 dsh-LAN 外掛或 dsh-proxy 這類反向代理,並且只在可信網路使用。
怎麼改 dsh web 的連接埠?
給 web 應用傳 --port:dsh web --port 8080,或 dsh --profile web --port 8080。如果旗標像沒生效一樣,檢查是否有使用者補丁把整段設定寫成了字面量——那會讓旗標的執行時讀取失效——然後重啟 dsh web。
區域網路存取安全嗎?API Key 會不會外洩?
要把 Web UI 當控制面看,不是普通網站。官方討論區有完整攻擊鏈實測:未認證的區域網路用戶端偽造 Host 標頭通過特權門禁後改寫 LLM endpoint,下一次模型呼叫就會把 API Key 和提示詞一起送出去。dsh-LAN 的通關密語門是介面層防護,其 README 自己註明非特權 API 對區域網路仍然開放。實用守則:只用可信的家庭/辦公 Wi-Fi、設好通關密語、離開就關、絕不把連接埠暴露到公網。
dsh-LAN 是什麼外掛?怎麼安裝?
專門的社群區域網路存取外掛(MrMu666/dsh-LAN,MIT 授權):把 Web GUI 綁到所有網卡、自動放行防火牆、加全螢幕通關密語門,並給官方介面注入手機觸控最佳化。按它 README 的說法最簡單的裝法是直接告訴 dsh「安裝 dsh-LAN 外掛」;腳本裝法是複製儲存庫後跑 install.ps1(Windows)或 ./install.sh(macOS/Linux),屬熱載入補丁安裝。README 驗證至 DSH 0.1.5-rc.1,裝前先確認與目前版本的相容性。
區域網路直連和內網穿透,我需要哪個?
同一個 Wi-Fi 或辦公網:直連——裝置能路由到主機的區域網路 IP,不需要通道,本頁各節就是完整設定。出了這個網路(手機流量、外地網路):路由不通,必須走 ngrok 這類公網通道——那是遠端存取教學的領域。
相關教學
存取三部曲的另外兩篇,以及本頁依賴的入門頁。
DSH Web UI 從啟動到手機
dsh web 一條指令啟動網頁版,摸透 3080 工作台、斜線技能與模型設定,再用 dsh-web 生態系把手機接進來——9 步實測截圖
閱讀教學手機遠端控制 dsh
ngrok 內網穿透把網頁介面掛上公網,在外面用手機連回家裡的 Agent,免裝 App,實測截圖逐步對照。
閱讀教學遠端與手機存取合集
dsh-web、dsh-pocket、Agents-Anywhere、dsh-mobile——精選遠端用戶端一次收齊。
閱讀教學安全地安裝外掛
dsh 裡「安裝外掛」到底發生什麼,附一套第三方程式碼審查清單。
閱讀教學疑難排解與錯誤百科
症狀 → 原因 → 修復:安裝失敗、pnpm workspace allowlist 錯誤、cordis.patch.yml 衝突、bundle 格式錯誤與 Profile 設定無效。
閱讀教學畫面來源與署名
本頁全部截圖取自 B 站 UP 主「是属鼠我」的 dsh 區域網路存取實錄,每張圖都帶時間戳深鏈回原片;畫面右下角的 UP 攝影機氣泡與燒錄字幕帶經裁修去除。其中區域網路 URL 回顯與權杖關卡頁為 dsh 原生行為;多使用者登入、專案工作區與威脅模型畫面來自第三方外掛 linyupark/dsh-multi-tenant(新倉,引用時請注意其成熟度);區域網路外掛路線另有 MrMu666/dsh-LAN。兩個倉庫均以其 GitHub README 為準,頁面文字結論為本站原創。
