WeChat Selkies 是什麼?用 Docker 把微信搬進瀏覽器遠端使用

WeChat Selkies 把騰訊官方 Linux 微信裝進 Docker 容器,用瀏覽器遠端開。本文從 Dockerfile、版本狀態檔與 issue 實案拆解它跑的本體是什麼、帳號風控案例怎麼精確解讀、聊天記錄落在哪裡,以及部署前必須補上的兩件事:Web 介面預設空密碼與版本追蹤的日常。

用 AI 摘要這篇文章:

想讓微信常駐在伺服器或 NAS 上、人不在機器前面也能打開就用的需求,一路上有各種偏方。WeChat Selkies 給的答案很直接:把騰訊官方的 Linux 微信裝進 Docker 容器,再把容器裡的桌面串流到瀏覽器。專案本身是開源的,到 2026 年 8 月已經累積近三千顆星、Docker Hub 上超過十六萬次拉取,維護也還活著。動手之前有三個問題值得先問清楚,答案都寫在它的原始碼與 issue 回報區裡。

先問:這是網頁版微信嗎?不是。容器裡跑的是官方 Linux 用戶端本體,瀏覽器看到的畫面是即時串流過來的桌面影像,這一點同時解釋了它為什麼功能齊全、又為什麼會原封不動收到微信的版本過期提示。再問:帳號會被騰訊擋嗎?回報區有實案,但仔細看內容,被擋的是帳號與環境的組合,單純跑在容器裡不構成死刑判決。最後,聊天記錄放哪?就在部署者自己機器上的一個資料夾裡;而 Web 介面的帳號密碼預設是空的,這件事在把埠暴露到對外網路之前必須先補起來。

跑的是官方本體,畫面是被串流進瀏覽器的

我把它的 Dockerfile 從頭讀了一遍,整個專案的核心其實薄得很誠實:基底抓 LinuxServer 社群維護的 Selkies 遠端桌面鏡像,接著從騰訊官方下載網址拉 Linux 版微信的 deb 套件裝進去,QQ 比照辦理,再補上中文字型、openbox 選單整合和一支啟動腳本。真正讓「瀏覽器裡出現微信」成立的那層技術,來自開源專案 Selkies,一個專做低延遲 WebRTC 遠端桌面的計畫;LinuxServer 把它打包成現成基底,這個專案等於是在別人打好的地基上,把官方用戶端擺進去而已。

「用瀏覽器操作遠端環境」這個品類這兩年很熱。硬體那端有像 One-KVM 這樣把實體機器鍵盤螢幕接上網路的開源 IP-KVM,WeChat Selkies 走的是純軟體路線,串流的對象是容器裡的 Ubuntu 桌面。瀏覽器端打字、貼圖、傳檔案,操作經過 Selkies 送進容器,微信程式渾然不覺得自己被遠端了。README 對中文場景的交代也算用心:容器內建中文字型,瀏覽器端的本地輸入法可以直接打中文。

WeChat Selkies 容器內的微信 Linux 用戶端視窗,左側為功能圖示列,畫面開啟官方帳號內容列表,頂部有搜尋框Pin
容器裡的微信 Linux 用戶端(專案官方截圖)。瀏覽器看到的畫面,就是這個視窗經 WebRTC 串流過來的影像。

這個設計的好處和代價是同一件事。因為跑的是官方本體,你在本機 Linux 版微信能看到的功能,這裡原樣都有,檔案傳輸、語音通話入口、小程式,一套不少。也因為跑的是騰訊的程式,騰訊對 Linux 用戶端的版本控制原樣穿透進來:issue 裡有使用者貼出微信跳「近期將不支援這個版本」的提示,維護者的解法是重新拉一次映像重建容器,因為映像建置時抓的永遠是官方最新的 deb。

版本生命週期握在騰訊手上,維護者用機器人追班

順著版本這條線往下看,會看到這個專案真正的日常。微信的官方下載網址不帶版本號,永遠指向當下最新版;維護者於是在儲存庫裡掛了一條自動化流程,每六小時檢查一次官方 deb 的版本號和 SHA256 雜湊,一有變動就寫進版本狀態檔、自動觸發映像重建。我查看狀態檔的當下,它釘選的是微信 4.1.1.8 與 QQ 3.2.32,檢查時間停在 2026 年 8 月 7 日。

這套自動化之所以存在,是因為吃過虧。七月裡 QQ 的舊版下載網址 404 打斷映像建置,維護者當天就把網址換到 3.2.31、順手把 QQ 納入自動偵測,八月六日再跟進到 3.2.32。翻提交紀錄,去年十二月與今年四月都還有更換 QQ 下載網址的修正,八個月內同樣的戲碼上演了四次。換句話說,這個專案的故障模式很特別:軟體本身沒壞,是上游悄悄搬了家。使用者端遇到微信過期提示時的官方解法也是同一套邏輯,拉新映像重建容器,聊天記錄放在掛載目錄裡不受影響。

所以部署它之前要想清楚的是:部署它,等於簽下一份幫騰訊發佈時程值班的契約。好消息是平常不用你動手,機器人會自動追;壞處是上游一旦變動得又急又怪,等待期的長短取決於維護者的反應速度。想鎖版本的人可以改用版本號標籤的映像,例如 0.0.16-minimal 這類,只是鎖住了版本也鎖住了那個版本被打掉的風險。

帳號風險的實案,要一個字一個字讀

回到最多人關心的問題:這樣跑微信,帳號會出事嗎。回報區確實有一則讀起來讓人心一沉的案例。一位使用者在家裡的群暉 NAS 上跑了三十五天,容器裡同時開著四個 QQ 加一個微信,某天重啟伺服器後再掃碼,手機端跳出該帳號無法使用此服務的提示。維護者的第一個回覆問的是:你是家用網路登入的,還是 VPS?

接下來的兩個細節比案例本身更有資訊量。同一個被擋的帳號,拿到 PC 版微信掃碼登入完全正常;而另一個微信帳號,掃同一個容器裡的行動條碼,也正常登入了。換句話說,這個案例至少說明:帳號沒有被全面封鎖,容器形態本身也不是自動觸發條件,矛頭看起來指向帳號與登入環境的組合。討論串裡另一位使用者給的建議也順著這個方向:要在一台機器上多開,就讓每個容器走 macvlan 拿不同的 MAC 位址,同一個環境塞多個實例本來就是高風險動作。

雲端部署那類案例的結局溫和得多。有人回報微信放在雲伺服器上,每天凌晨三點前後會被自動登出,隔天得重新登入。半夜掉線這個困擾,維護者後來自己也寫進了需求單:微信 Linux 用戶端可能存在風控機制或長時間運作的資源問題,導致凌晨自動退出,於是專案加了可選的夜間定時停啟,預設關閉,開啟後每天 23:30 停、01:30 起,關閉時先送正常結束訊號、等五秒沒退再強制砍掉。設定表裡那行「凌晨定時停止與自動重啟」讀起來像貼心設計,實際上是對已知病灶的繞道。

誠實地說界線在哪:這些是個案與當事人陳述,回報區給不了發生率,我也不會假裝算得出來。比較站得住的讀法是這樣:家用內網加單開是目前回報裡最安靜的組合;雲端 IP 與同環境多開是兩個明顯的放大因子;沒有任何證據顯示騰訊在大規模掃蕩容器使用者。回報區裡還留著中文輸入卡頓、串流連不上這類開著的 issue,語音通話在部分環境沒有聲音的案例則已結案。把期待放在「功能都在、邊角會抖」會比放在「完整取代本機版」準確得多。

聊天記錄變成主機裡的一個資料夾,門鎖預設是空的

資料落在哪,答案乾淨俐落:全部在掛載進容器的那個 config 資料夾裡,微信的設定、登入狀態與聊天記錄都寫在裡面。映像升級重建不會動它,備份方式就是備份那個資料夾。早期有使用者回報手機上的記錄匯不進容器,後來 2026 年 3 月有人注意到微信 Linux 版自己補上了聊天記錄匯入匯出,這條路才算通了。對記錄連續性在意的人,這一段演進史值得知道。

真正容易出事的是門鎖那層。容器開兩個埠,3000 走 HTTP、3001 走 HTTPS,瀏覽器連的就是它;而 Web 介面的帳號密碼,在範例設定檔裡是被註解掉的狀態,預設就是空。維護者在文件裡標了建議設定,但建議兩個字不會替你擋下任何掃埠的流量。把這組合放到有對外 IP 的 VPS 上,等於把一個完整登入狀態的微信桌面掛在網路邊緣,差一組密碼而已。最低標準是給它設上帳號密碼,更好的做法是埠只留在內網、人從 VPN 進來。

這裡也藏著「自動登入」功能的真面目。啟動腳本裡那支自動登入程式,我讀了原始碼:它用工具找到微信視窗,擷取畫面後統計綠色系像素的數量,超過一千二就模擬按下 Enter、再往視窗中央偏下七成的位置點一下滑鼠。提交訊息寫的是智慧偵測,程式碼裡找不到影像辨識的痕跡,它只認顏色與位置,照登入按鈕的慣例去盲點。微信哪天改了配色或版面,它就安靜地失靈,這是享受便利前該知道的原理,也是整個專案風格的縮影:用工程繞過上游的一切不確定,包括上游自己的 UI。

部署本身只要三行,Telegram 不是內建的

安裝門檻確實低。有 Docker 的機器上,一行 docker run 映射 3001 埠、掛上 config 資料夾就能起來,瀏覽器打開 localhost:3001 掃碼登入;用 docker compose 則是建檔、啟動兩個動作。AMD64 與 ARM64 都有官方映像,樹莓派這類 ARM 小主機架構上可用;想要 GPU 加速就把顯示裝置映射進去,沒有也能跑。映像另有一個只裝微信的 minimal 精簡版,去掉 QQ 與檔案管理器,體積小一截,給只想要微信的人一個乾淨選項。

WeChat Selkies 容器內的 QQ NT 用戶端視窗,深色主題,左側功能圖示列、中央聊天區與底部輸入列Pin
同一容器裡的 QQ NT 用戶端(專案官方截圖)。深色主題的聊天視窗,與微信共用同一個容器桌面。

有一個期待要先校準:儲存庫描述把微信、QQ、Telegram 並列,容易讓人以為三個都開箱即有。實際上 Telegram 要從瀏覽器側邊欄的應用程式市集自己裝,裝完捷徑自動進桌面、右鍵選單自動更新。這條路其實是通用的:任何 Linux 桌面應用原則上都能這樣塞進去,容器會變成一台小型遠端工作機。只是要記得,每多裝一個常駐應用,就多一份吃資源與被上游改版的清單,跟微信程式本身是同一種麻煩的縮小版。

升級的節奏前面提過,這裡整理成實際會按的順序:平常不用管,微信跳過期提示時,docker compose pull 加上重建容器,記錄留在掛載資料夾不受影響;要是右鍵選單升級後少了微信項目,文件給的標準動作是清掉掛載目錄裡的 openbox 設定資料夾再重啟,讓選單重新生成。

誰適合架、誰應該停在哪條線

適合的輪廓其實很清楚:家裡有 NAS 或常開機的小伺服器、希望微信全天候開著又不想跑一台虛擬機、網路環境是固定家用寬頻的人。這個組合吃到了全部的好處:記錄落在自己磁碟、埠不出家門、單開不踩多開紅線,剩下的維運只有等機器人追版本。需要在多台裝置之間接續使用、又不想每次重掃碼的人,也會覺得價值很實在。

有三種情況建議停手或換路線。想多開帳號的人,容器化不是好工具,回報區那則四開 QQ 的案例就是警示,真有多開需求,macOS 上複製應用改識別碼的 微信多開工具 是另一條獨立路線,各有各的代價;要放雲端 VPS 的人,先把帳密設好、埠收好再說,並接受雲端 IP 是回報裡的放大因子;想拿來做商業用途的人,答案最簡單,專案條款白紙黑字寫著僅供學習研究與個人使用,禁止商業,這條線沒有模糊空間。

微信周邊的第三方工具其實都活在同一個張力裡。像 Channels 影片下載器 那類專案,靠的是拆官方用戶端的加密與協定;WeChat Selkies 完全不碰協定,它只是把官方程式搬到不同地方跑。這個不碰協定的取捨換來了功能完整,也把版本、風控、條款這三件事一併繼承下來。用它之前想清楚你要的是哪一種自由:搬家的自由它給得很足,脫離官方規則的自由它從頭到尾沒承諾過。

授權其實是三層疊加,看清楚再決定怎麼用

最後把授權攤開,因為它比徽章看起來複雜。儲存庫本身是 MIT,授權檔寫得完整,著作權人 2025 年的 Nick007;但映像的容器標籤裡,維護者自己宣告的是 GPL-3.0-only,原因是基底鏡像採 GPL-3.0,散佈整個映像時標籤得跟著變;再往裡一層,承載的微信與 QQ 程式是騰訊的專有軟體,README 也聲明專案與騰訊無關、遇到權利主張會移除相關內容。簡單說:拿 MIT 徽章推斷可以隨便商用,三層裡有兩層會跳出來反對。

專案健康度倒是挑不出明顯毛病。2025 年 10 月開倉,到 2026 年 8 月累積兩千九百多顆星、十三個正式發佈版,最新版 8 月 6 日才出,提交紀錄裡自動化與功能修正持續在走,Docker Hub 的拉取量超過十六萬次。以自架工具的標準,這是活水源等級的維護強度;搭配前面講的版本值班機制,短期內它不太可能變成沒人管的棄坑。

總結成一個部署判斷:把它當「讓微信住進自己家裡伺服器」的工具,它把這件事做到了開箱即用;把它當「對抗官方規則」的工具,它從設計上就不是。第一步很輕,docker run 一行起容器,設好 Web 帳密、決定埠要不要出家門,掃碼之前,這兩件事做完了再上線。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 903

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...