用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁


3樓貓 發佈時間:2024-09-12 22:03:48 作者:Circaboy Language

前言

我家裡常年有一臺威聯通的NAS開機,型號是TS464C2,我之前是一直拿它當我的資料備份機用的,但是24小時開機的NAS除了當資料備份機器之外,我也開發了一些別的用處出來了,比如docker掛青龍面板做一下籤到,掛一個zerotier服務當我的遠程網絡中心。

作為一個近似於私人服務器的存在,威聯通TS464C2其實還有更多的玩法可能性,其中就包括

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第0張

目前市面上主流的AI工具側重點都不太一樣,有擅長搜索總結的AI,有擅長創作對比理解的AI,有擅長創意創作的AI,也有擅長電商法律諮詢類的AI,林林總總的AI包含了線上編程,醫療諮詢,辦公輔助,多語言翻譯,甚至是角色扮演等各個方面。

大部分人應對不同的AI需求都是把這些AI網頁地址存在自己的瀏覽器收藏夾裡,等到有需要的時候再打開調用。但是問題是每一個AI的服務頁面設計和邏輯都有差異,很多人懶得適應不同AI交流頁面的差異,就直接鎖定一個適應的AI頁面用下去。

作為半個程序員,我現在其實更傾向於把不同的AI集成到我自己的網頁端,然後通過我自己統一的網頁端去調用。

因為這個網頁端只給我自己用,所以我不必申請公網,也不必做什麼網頁備案,我只需要做一個基於互聯網的虛擬局域網,讓我自己的設備都能訪問它就行了。

我放在家裡的威聯通TS464C2,剛好是我虛擬局域網zerotier的一個節點,並且也支持docker,而docker裡面已經有大佬給了成熟的基於docker的自定義AI網頁端安裝包了,所以我根本不需要費太多的力氣就可以把我已經買過的各類AI的API key配置到這個自定義AI網頁端裡面提供統一的AI問答服務。

下面我就拿DeepSeek的API Key配置作為例子給大家梳理一下集成AI網頁的流程。

自定義DeepSeek網頁轉譯流程

要準備的東西:DeepSeek的API Key,威聯通NAS裡面的Container Station(也就是docker)

首先感謝 Chanzhaoyu 使用 Vue3 和 Express 開發的GPT Web 。擁有兩種模式(API和網頁token),支持多個會話和上下文邏輯,美化公式和高亮代碼,支持數據導入導出。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第1張

打開Container Station,選擇“創建”,點擊頁面右方的“創建應用程序”。(這是威聯通獨有的網頁 compose 粘貼,一步到位搭建容器,後期修改也很方便。 )

請務必以圖片格式為準,部分平臺會吞空格,空格少了就會部署失敗。

要注意的地方:

OPENAI_API_KEY後面請替換成你自己賬號的api,不過因為DeepSeek的API跟OpenAI的API格式一樣的,所以你完全可以用DeepSeek的API代替。

跑起來的效果:

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第2張

直接用手機瀏覽器打開我的虛擬內網網址就行,使用起來基本跟我用商業的AI服務沒什麼區別。

當然,也有更加成熟的AI集成docker包:ChatGPT-Next-Web。這個包是很多商業AI公司都會推薦的調用API Key的Docker網頁包。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

ChatGPT-Next-Web配置好之後跑起來的效果更像是原始的GPT網頁。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

而ChatGPT-Next-Web的配置也超簡單,只用下載下來之後做一下簡單的網址和API設置就行。

那麼問題來了,如果這些網頁只能在我的內網訪問,那肯定是不行的。

可是如果你要做外網訪問的話,在國內你就得先花很多錢申請一個公網IP,然後再花很多錢和很多精力去自己做一個網頁映射,最後再花很多錢買一個服務器讓這個網頁24小時運行。

可是我一開始的需求只是簡單的自己轉接一下AI的API Key給自己用。

這時候有一個腦洞就是,如果我在整個互聯網上單獨設置一個虛擬內網給自己用呢?

這就需要請出來zerotier了。

zerotier設置流程

1.zerotier遠程管理配置

Zerotier賬號是用於組件虛擬局域網的,騰訊雲輕主機是用於用於自建Zerotier的moon服務器,也能白搞一個公網IP,其餘的設備都要保證正常聯網使用。

2.zerotier賬號註冊與配置踩坑

Zerotier設置與問題解決部分:

ZeroTier 這一類 P2P VPN 是在互聯網的基礎上將自己的所有設備組成一個私有的網絡,可以理解為互聯網連接的局域網。最常見的場景就是在公司可以用手機直接訪問家裡的 NAS,而且是點對點直連,數據傳輸並不經由第三方服務器中轉。所以安全性非常有保障。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

Zerotier 在多設備之間建立了一個 Peer to Peer VPN(P2PVPN) 連接,如:在筆記本電腦、臺式機、嵌入式設備、雲資源和應用。這些設備只需要通過 ZeroTier One ( ZeroTier 的客戶端) 在不同設備之間建立直接連接,即使它們位於 NAT 之後。連接到虛擬 LAN 的任何計算機和設備通常通過 NAT 或路由器設備與 Internet 連接,ZeroTier One 使用 STUN 和隧道來建立 NAT 後設備之間的 VPN 直連。簡單一點說,Zerotier 就是通過 P2P 等方式實現形如交換機或路由器上 LAN 設備的內網互聯。

第一步是註冊Zerotier的賬號。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

這個是郵箱註冊,註冊完之後免費使用設備數量是50個,對於99%的人來說是夠了。畢竟我這樣的手裡常年一大堆電子設備的人,能同時使用的路由器加電腦加起來也不超過十臺。

第二步:登錄和創建網絡

註冊完之後就直接登錄網站,按照下面的指示創建網絡就行。我是把我的網絡名能用中文就用中文,這樣看起來方便一點。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

創建網絡:創建一個新的網絡之後,我們得到一個 Network ID,這個在後面的設備連接時需要用到,點擊剛剛創建的網絡我們可以設置更多選項。默認的設置就可以用了,右邊 IPv4 的設置就是分配設備內網 IP 網段,其他的設置可以在 Setting help 裡看到說明,不瞭解的不建議亂設置,如果不小心把自己的網絡暴露在外部,會相當危險。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

第三步:把手裡的設備加入這個網絡。

我現在手裡的設備都是Windows10設備,所以在他們主頁上下載相應的平臺安裝包就行,安裝包後綴是msi結尾。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

下載之後雙擊安裝,一直按next直到它安裝成功。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

裝成功之後,你的任務欄部分會出現一個Zerotier的圖標,右鍵點一下鼠標,選擇join Network。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

有了這個窗口之後,我們再打開我們前面已經登錄了的zerotier頁面,然後在Network標籤下可以看到我們創建的網絡的基本信息,我給我的網絡取的名字是“家庭內網”,我們要把我用橢圓部分圈出來的一串代碼,也就是NETWORK ID下面的一串代碼,複製,然後粘貼到上一步Join a Network彈出來的窗口中,我建議把所有的都勾選上,以免遺漏。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

然後你的幾臺電腦都加入我創建的“家庭內網”之後,我們還需要進這個網絡後臺把這些設備的權限都打開。就點這個NODES,然後它會自動跳轉到“家庭內網”的後臺管理頁面。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

然後往下拉頁面,就會看到自己的設備,我現在的設備都是Auth下面打勾了,代表這些設備被授權了,如果沒打勾,就代表這個設備加入了你的網絡,但是不能訪問你的網絡。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

要著重關注的是Managed IPs下面的IP地址,這個地址就代表了你現在設備在Zerotier的“家庭網絡”裡面的虛擬IP地址,旁邊的Last Seen下面代表你這個設備現在的在線狀態,比如我現在手裡的兩臺設備都在線,顯示的就是ONLINE。

到這一步之後,就可以進行下一步了。

我上面的設備中,SurfaceBook1-7是發起端,地址是192.168.192.190,也就是我平時拿著在外面跑的筆記本,MacAir是接收端,地址是192.168.192.97,也就是我平時扔在家裡當服務器的筆記本。

一直到這一步都是很順暢的,但是之後可能會有人出現新的問題,那就是我從SurfaceBook1-7上訪問MacAir的時候會顯示連接失敗。死活找不到解決方案。

因此,建議在拿到兩個設備的“家庭內網”IP地址之後,先在CMD命令行窗口Ping一下地址,看能不能Ping通,如果能Ping通的話就走下一步RDP連接部分,如果不能Ping通的話,建議看看後面我是怎麼解決的:

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

現在我查到的解決方案是一個大佬寫的:問題的關鍵在新建的Zerotier網絡雖提供了一組 Flow Rules 流控規則,初次啟動時卻不會自動應用。

就是在Flow Rules最後一行加一個空格,然後保存就行。這就讓Rules啟用了。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

問題的原因是:

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

所以我也是採用了這個解決方案之後,就順利解決了我zerotier網絡下各個設備不互通的問題。

3.騰訊雲主機註冊與配置踩坑

買騰訊雲輕主機部分:

買雲主機有兩個目的:一個是獲得公網IP,一個是有個搭建Zerotier Moon服務器的穩定環境。

其實買騰訊,買阿里,或者買華為雲都行,還有一堆小的雲主機服務商也能買,但是我建議買大家耳熟能詳的品牌,最建議買騰訊和阿里的,因為現在國內買這樣的雲主機需要實名認證,而大家的騰訊和阿里系的賬號基本都是實名認證過的,不需要額外的認證。

不過我買騰訊雲的核心理由就是它便宜:

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

我買的三年,1核加2G內存,6Mbps的寬帶,以及1000G流量包,三年只要219。後續續費肯定是飛天一般的貴,但是三年後再看吧。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

至於我為什麼沒買阿里的?因為阿里的比這個貴一點吧。

單核,2G內存,裝個Debian,給我跑一下服務,就夠了,後期加點什麼自動簽到打卡的腳本上去,它也不是不能用。

進入騰訊雲界面,然後點購買,掃碼登錄你的微信(我也不知道為什麼騰訊一定要所有的服務都用微信登錄),然後會自動進入微信小程序,然後你就授權登錄了。網頁端進入服務器配置界面:

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

地域:選擇與您最近的一個地區,選一個地理位置距離自己最近的地方就行。

機型:選擇您需要的雲服務器機型配置。這裡我們選擇 “入門設置(1核1GB)”,因為這個最便宜。

鏡像:選擇您需要的雲服務器操作系統。這裡我選擇的是Debian,不過選別的也都行,每個系統選好之後都會給你預裝好。

公網帶寬:勾選後會為您分配公網 IP,默認為 “1Mbps”,不過輕主機這個已經固定死了,就是6Mbps。

購買數量:默認為 “1臺”。 購買時長:默認為 “1個月”,我選了三年。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

買完服務器之後,騰訊會讓你先重置密碼,然後你進入騰訊的服務器-輕量服務器-控制檯,就可以看到自己的主機了。其中是默認綁定了一個公網IP地址,相當於你花兩百多買了三年的公網IP。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

你可以選擇在網頁端打開命令行界面管理,也可以在本地用SSH登錄進行管理。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

建議使用MobaXterm作為遠程管理服務器的軟件,這個軟件支持記錄你的登錄設置,特別是還有圖形化文件管理界面,很適合新手使用。

4.Zerotier的Moon服務器搭建配置踩坑

上面說的Zerotier雖然可以互相訪問,但是由於流量還是走的zerotier的官方服務器,在高峰期或者說跨寬帶運營商的情況下,網絡質量實在是堪憂,最直接的體現就是ping值忽高忽低或者掉包,如果是用來長期使用,這網絡質量還是有點不行。正好騰訊雲有臺5M帶寬的服務器,zerotier又支持自建中轉服務器,騰訊雲的BGP網絡用來中轉流量再合適不過了。

我的騰訊雲服務器安裝的是最新的Debian,作為zerotier的中轉服務器(moon),zerotier的安裝方式如下:

但是Zerotier作為moon,還需要再執行幾行命令,相關命令如下。

生成moon模板配置文件:

cd /var/lib/zerotier-one zerotier-idtool initmoon identity.public >> moon.json

編輯生成的moon模板配置文件:

vim moon.json #

修改這行: "stableEndpoints": ["1.2.3.4/9993"]

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

不過其實更建議用MobaXterm的圖形化文件管理修改這個文件,雙擊打開,然後直接保存更新,就不用學vim命令行了,vim的操作邏輯很煩。

注意需要將上面的1.2.3.4替換成實際的公網IP地址,不能是內網地址。

要注意的一點是,在配置之前,還得先看看自己的網絡網關開啟9993端口沒有,如果沒有的話,建議先開啟了再去配置。

並且,如果服務器本身開啟了防火牆,需要將9993端口進行放行;同時,服務器安全組也需要放行9993端口,比如我的騰訊雲輕量雲服務器安全組設置截圖:

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

然後根據模板文件生成最終的moon文件:

zerotier-idtool genmoon moon.json

執行完成之後,會在當前目錄生成一個名稱為000000xxxxxx.json的文件。

創建對應目錄,將生成的配置文件放置進去:

mkdir moons.d mv 000000xxxxx.moon moons.d

重啟服務: systemctl restart zerotier-one

客戶端加入自定義的moon 步驟也很簡單,Linux及macOS直接在終端執行,Windows需要使用管理員權限在PowerShell或者cmd執行,命令如下:

zerotier-cli orbit 0000000xxxxxxxx 0000000xxxxxxxx

如果加入成功,會有如下提示: 200 orbit OK

要注意的的是,這個命令行後面你的“0000000xxxxxxxx”要打兩次,這樣才能正常執行加入。

查看是否加入moon:

在非moon設備上執行如下命令:

zerotier-cli listpeers

如果出現了對應的公網服務器IP及9993端口,

說明數據是走moon中轉的。

5.NAS與Windows設備加入Moon服務器踩坑

按道理來說,在Windows和NAS設備上裝了Zerotier之後,再去加入Moon服務,也就是說執行了zerotier-cli orbit 0000000xxxxxxxx 0000000xxxxxxxx這個命令行之後,它就會自動加入Moon服務器,你就有自己的中轉服務器了。

如果你一直獲取不了moon服務器的地址,比如這樣:

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

中間MOON結尾的圖並沒有完美獲取公網IP地址,

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

如果加成功的話,應該是這樣的。

出現獲取不了地址的原因,我排查出來有幾個解決方案:

1.就是9993端口的問題,首先確認自己的9993端口是否開放。

2.是自己zerotier客戶端設置問題:

打開zerotier客戶端,點擊“show networks…”,如下:

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

再把下圖紅框中的幾個對勾打上,重啟服務"ZeroTier One"和客戶端。就會發現現在可以連接上moon了。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

zerotier打洞使用p2p傳輸

其實zerotier是支持p2p打洞流量傳輸的,並不是自建了moon所有流量就經過moon服務器中轉的,如圖這是我從我電信寬帶的設備遠程連接到移動寬帶內網的設備,在移動寬帶內網的設備的帶寬統計截圖:

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

稍微有點驚喜的是,我騰訊雲公網服務器帶寬是5M,經過zerotier打洞之後使用p2p協議,兩臺設備之間的帶寬可以達到10M,不知道是不是能達到其中一方的帶寬上傳上線。

zerotier設置完之後,我就可以在互聯網的任何一個地方都用自己的設備訪問自己放在家裡的TS-464C2上的AI Web頁面了。

那麼下一個問題就是,我的AI Web頁面肯定是24小時跑著的,這個機器的性能足以支撐我的網頁服務嗎?

威聯通TS-464C2參數性能分析

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

威聯通的TS-464C2接口是雙2.5G有線網接口,一個USB-A3.2接口,一個USB-A接口,一個HDMI接口,以及一個通用的DC電源接口。

雙2.5G有線網接口我就可以同時接兩條寬帶進去,實現動態負載均衡,保證它永不掉線,那麼我的AI Web頁面的穩定性就有了保障。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

TS-464C2整體大小非常小,完全可以扔在我的架子上,安安靜靜的角落裡,完全不會有人動它,這時候穩定性再加一。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

TS-464C2的原生內存部分是給的8G DDR4 內存,反正我拿來跑服務,自從開機之後我就沒管過它了,穩定性相當好。

用威聯通TS-464C2的docker做一個自己的全網絡多AI聚合網頁-第3張

TS-464C2這次給了專用的硬盤鎖,防止手賤的人突然把我的硬盤拆掉。這也是威聯通第一次在普通消費級NAS上給到這個配置。對於我這樣的想把NAS扔在異地半年一年都不管的人來說是最棒的,因為這樣能極大地降低硬盤突然被抽出的風險。硬盤安全性加一,服務穩定性更進一步得到了保障。

結語

這個威聯通TS-464C2的性能和穩定性都比較高,我用了快五年的威聯通,基本都是新機器拿過來配置一下扔在那裡就讓它跑了,基本沒有管過它,而新加入的硬盤鎖和升級的雙2.5G有線網接口,直接提升了它的內網交換數據的性能以及硬盤安全性。

配置完AI 網頁之後,我就再也不用想著動不動就需要手機號驗證登錄AI的問題了,直接打開就用。


© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com