打破距離的限制: 外網連接伺服器詳解

內網穿透-3 CloudFlare Tunnel

  • 難度(滿分10分最簡單,0分最複雜):3分
  • 使用軟體或服務:CloudFlare Tunnel
  • 預計時間:視情況…至少也要半小時以上
  • 價格:網域費用,基本也是一年一千多,最便宜的應該可以壓在幾百塊一年
  • 優點:
    • 不需要自行搭建伺服器
    • 連接位址可以固定
    • 功能相對較完整,介於Ngrok跟FRP之間的平衡點
    • 服務與連線穩定
    • 升級空間足夠
    • 有基本防攻擊,例如抗DDoS之類的
    • CF真是太佛啦~~
  • 缺點:
    • 連接位址要自己擁有網域才能做使用,否則空想就是空想,你要給玩家敲IP也不反對…
    • 可以使用自己的網域,但也只能使用自己的網域
    • 設定非常複雜,還要跟Linux打交道
    • 沒有可視畫面板,需要請自己去裝PterdactylMCSM
    • 基本上一定要花錢,多少而已(你要開客家服也可以,但就是拿時間換錢,非常麻煩
    • 使用者端要安裝一個介接程式
  • 適用於:開較大型的伺服器,或需要長期維護下去的伺服器(尤其允許玩家課金那種)

先上架構圖:

CF Tunnel架構
不用懷疑,這是官方的檔案,我直接借來用,URL:cloudflare.com/zh-tw/products/tunnel/

原理跟Ngrok相似,但CF Tunnel會直接與你的網域連接(代表連接位址是固定的),而且是免費的!!!但要注意一點,Minecraft用的是一種名為TCP的通訊協議,這種協議CF不知道是不能做還是懶得做,反正你連線得要在電腦安裝一個叫Cloudflared的軟體,它會在本地架一個25565端口的TCP伺服器,並用一些魔法將麥塊傳的要求轉發給服主那邊(總之就是要裝軟體…說那麼複雜幹嘛

上教學,其實我不太想講但還是講一下:

CF Tunnel註冊教學

首先先前往CF註冊帳號並綁訂一個網域到上面,教學網路有很多這裡不細講(我絕對不會說我懶),接著要做的事情就是前往one.dash.cloudflare.com

第一次進入時會需要設定 team 的名稱(未來還是可以改的),以及要選擇方案以及填入付款資訊a.k.a.信用卡,可以選$0的免費方案。不過就算選了$0還是要填信用卡以及跑過付款流程,雖然實際上並不會被收費(你可以在叫你填信用卡的時候直接一閃重新回到上面連結,就可以跳掉填卡號的流程了)

無論如何,進到Zero Trust頁面後都是英文,選左邊Network>Tunnels(我記得不是Access還是Gateway嗎,反正能用即可…),按Create A Tunnel

CF ZeroTrust
就按這個咩

Connector選擇Cloudflared,你用Linux可以選WARP啦我沒用過…Next之後名稱看你心情,然後Save。接著你會看到一堆下載按紐,這是下載伺服器端,你選自己系統就好,我自己是用Win10 64bit,跟我一樣的話你可以直接點下面連結:

下載Tunnel Connector

安裝視窗通常開起來UAC同意後就關掉了,接著按Windows+X之後按Windows Powershell (系統管理員),如此會叫出一個終端機視窗背景藍色的,我有另外裝Windows Terminal因為預設的好醜w,接著回到網頁下方會給你一組指令如圖:

安裝指令

Token

先前忘記第幾篇介紹DCSRV時,在設定Token時就有說過Token不能給人知道,這個也不例外。我敢放截圖是因為那串Token長的跟什麼一樣,所以截圖給的是有截斷的。千萬不要把完整的代碼給別人!!

記得用點選的方式複製,直接照著打沒用的。複製後右鍵即可貼上在剛剛開的終端機中(一定要管理員權限),Ctrl系列組合鍵在那沒用我先提醒你!

$ cloudflared.exe service install abcdEFg13...

2024-07-08T01:39:57Z INF Installing cloudflared Windows service
2024-07-08T01:39:57Z INF cloudflared agent service is installed windowsServiceName=Cloudflared
2024-07-08T01:39:58Z INF Agent service for cloudflared installed successfully windowsServiceName=Cloudflared

如果你也看到類似上方的訊息,恭喜你成功了!回到網頁面板會在Connectors中看到這個畫面:

獲得連接器

按右下角的Next,接著去設定連線位址:

設定連線位址

Subdomain是子域名名稱,隨便輸入,不要太長不然玩家記不住;Domain是主域名,用下拉選單選擇,記得這之前要先至少一個網域掛上CF的Nameserver,否則你現在做的都只是玩笑…Path我通常不會填寫,看你。記得這個就是玩家未來做 外網連接 用的位址,最好不要用內部位址

Type選TCP,URL是本機URL,請輸入localhost:25565,記得如果你端口不是用25565要換成自己的端口,然後會出現以下畫面:

恭喜你,完成了。Status如果出現Healthy就是完成!

使用Cloudflared連線伺服器

接著前往以下網站下載Cloudflared,它是開源的:

Winget與Homebrew

如果你的電腦是Win11系統,一般都有內建Winget程式,可以用以下指令安裝:

winget install --id Cloudflare.cloudflared

蘋果的MacOS則是可以用Homebrew安裝,如下:

brew install cloudflared

而企鵝(Linux)則是用以下連結下載:

檔案類型64位元版32位元版ARM架構系統ARM 64位元
二進位格式點我下載點我下載點我下載點我下載
Debian格式(.deb)點我下載點我下載點我下載點我下載
RPM格式(.rpm)點我下載點我下載點我下載點我下載
這表格做起來好煩…官網連結在這:developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads

下載後建立一個資料夾,這檔案每個要進福的都要用,所以你還是做一個快速啟動包給玩家用吧~~建立一個BAT文件(建TXT將副檔名改.bat),右鍵編輯輸入以下程式碼:

cloudflared access tcp --hostname <剛設定的子域> --listener <本地IP:端>

基本上來說listener都會打這樣:127.0.0.1:25565,二級域名就是你先前設定的。玩家連伺服器只要輸入127.0.0.1即可加入喔~~

SamHacker
SamHacker

嗨,大家好!我是SamHacker,一名對程式設計充滿熱情的國二生。
從幾年前開始,我就深陷於程式設計的沼澤,不斷地越挖越深…..
在WordPress方面,我喜歡挑戰自己,創建出獨特且功能豐富的網站;
同時,無聊也會在那邊做Discord機器人。
順便扯一下,Minecraft好好玩

文章: 33

1 則留言

發佈留言

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