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

虛擬內網

  • 難度(滿分10分最簡單,0分最複雜):7.5分
  • 使用軟體或服務:ZeroTier
  • 預計時間:10分鐘左右
  • 優點:
    • 簡單操作
    • 連線速度不會很差
  • 缺點:
    • 使用者必須安裝軟體
    • 不夠個性化,無法使用自己的網址
    • 最多只能50人加入
  • 適用於:三五好友自己玩

俗話說的好,打不贏就加入他們。既然正面跟NAT硬槓槓不贏,那我們也來組一個NAT就好啦!以下是虛擬內網的架構,著名的服務有ZeroTier、RadminVPN等:

虛擬內網架構

拿ZeroTier(以下簡稱ZT)做示範,首先到官網註冊個帳號:

註冊帳號部分相信不用多說大家自己研究…反正你可以用估狗直接登入。

註冊ZT

按下大大的Create A New Network,你會看到底下多一個網路出現,點標題進到配置。在最開始的段落你可以更改網路的名稱方便辨識,公開性建議選Private(私有),會需要管理員同意才能讓使用者進入這個虛擬內網

取得連接ID

記下有星號的部分(我是自己打馬賽克的,你看會是明文),LibNetwork是我取的名稱。接著前往ZT的軟體下載頁面(對你要裝軟體):

找你的系統下載後安裝起來,裝完後找找工作列上的軟體,右鍵選擇Join A New Network(圖源官方文檔):

加入新內網

輸入剛剛的密碼,回到剛剛的面板找到你剛加入的電腦如下圖:

同意加入虛擬內網

Address上的94那一串就是你的裝置位址,上方圖片中MyAddress寫的內容。如果你確定這是你的就按Auth的勾選按鈕同意該裝置加入。將你朋友的電腦也裝上軟體並加入即可讓他們麥塊輸入”Managed IPs下的內部IP”連線伺服器。如果有朋友無法使用可能是他電腦裡其他裝置的IP跟這組衝突到了,建議你可以在管理面板上Advanced中IPv4 Auto-Assign處選一個沒被衝突的位址即可。

使用動態DNS(Dynamic DNS)

  • 難度(滿分10分最簡單,0分最複雜):5分
  • 使用軟體或服務:NoIP
  • 預計時間:10分鐘左右
  • 優點:
    • 可以使用NoIP提供的網域,但不能用自己的
    • 不需要安裝軟體
    • 免費
  • 缺點:
    • 不夠個性化,無法使用自己的網址
    • 每個月要去NoIP網頁上續期
    • 需要手動更新路由器紀錄
    • 有一定失敗機率
  • 適用於:開小型伺服器

NoIP的用處就是在你的IP位址變動時(人家只說上網要有IP,又沒限制一定要固定的…)更新紀錄,使你的電腦永遠可以被連線。但可能被擋下,也不一定可以正常使用。我一樣給介紹,但就不推薦大家用了。如果有興趣可以自行查詢資源,在這邊給大家個抱歉。

為什麼不推薦 No-IP

No-IP的原理就是實時取得你電腦的IP,並將它設為你綁定網域的目標。但如果沒有設定得當,你還是無法脫離NAT無限迴圈。而要設定得當又很麻煩,甚至還要牽扯到路由器後台這件事…如果願意研究可以去研究,不然個人不建議這個用法…

內網穿透-1 Ngrok

  • 難度(滿分10分最簡單,0分最複雜):7分
  • 使用軟體或服務:Ngrok
  • 預計時間:7分鐘左右
  • 優點:
    • 不需要安裝軟體,可以使用網址連接
    • 不需要自行搭建伺服器
    • 操作方便
    • 免費
    • 成功機率高
  • 缺點:
    • 不夠個性化,無法使用自己的網址,並且可讀性還比NoIP低
    • 每次開機會更換網址
    • 不能使用自己的網域
  • 適用於:三五好友自己玩

這招是使用Ngrok在你的電腦與他們的伺服器間建立隧道連接雙方,玩家連接Ngrok的伺服器後伺服器將資料轉發給你的電腦,有點像VPN的概念:

ngrok隧道原理示意圖
Ngrok穿透法示意圖

首先一樣前往Ngrok註冊帳號

註冊後在這裡下載Ngrok桌面版:

下載Ngrok

底下會有一段指令要求你輸入如下:

$ ngrok config add-authtoken <你的Token>

錢號($)

在程式碼區塊中錢號代表要手動輸入,所以複製指令時不要連它一起複製

怎麼輸入呢?首先先解壓你抓的檔案,然後進到資料夾中確定有ngrok.exe檔案。在資料夾中按住Shift加右鍵選”在這裡開啟Powershell視窗”(Win11會改成開啟終端機),載入後直接右鍵貼上(按右鍵即可,不需要選單,還有終端機系列都不支持Ctrl的快捷鍵)並按Enter執行指令,收工!

在ngrok目錄下建立一個檔案,名叫start.bat,開啟後貼上以下代碼:

@echo off

ngrok tcp 25565

25565要改成麥塊伺服器的端口,如果你有在server.propties改過的話。記得檔案總管。檢視要勾副檔名,然後確定檔案叫start.bat而非start.bat.txt之類的。然後雙按它打開,會出現類似以下的畫面:

$ start.bat
ngrok

Announcting ngrok-rs: ...
Session Status                 online
Account                        你的GMAIL (Plan: Free)
Version                        3.12.0
Region                         Japan (jp)
Latency                        -
Web Interface                  http://127.0.0.1:25565
Forwarding                     https://<你的連線位> -> http://localhost:25565

Connections                    ttl     opn     rt1     rt5     p50     p90
                               0       0       0.00   0.00     0.00    0.00

把”你的連線位置”中的內容分享出去即可,記得每次開啟都會不一樣除非你花錢…

內網穿透-2 FRP

  • 難度(滿分10分最簡單,0分最複雜):2.5分
  • 使用軟體或服務:FRP
  • 預計時間:視情況…至少也要半小時以上
  • 價格:看主機價錢,通常VPS可以用Oracle的免費、網域便宜的也要幾千塊一年…
  • 優點:
    • 不需要安裝軟體,可以使用網址做 外網連接
    • 連接位址可以固定
    • 功能強大
    • 服務與連線會比較穩定
    • 升級空間足夠
  • 缺點:
    • 連接位址要自己擁有網域才能做使用,否則空想就是空想,你要給玩家敲IP也不反對…
    • 可以使用自己的網域,但也只能使用自己的網域
    • 設定非常複雜,還要跟Linux打交道
    • 沒有可視畫面板,需要請自己去裝PterdactylMCSM
    • 基本上一定要花錢,多少而已(你要開客家服也可以,但就是拿時間換錢,非常麻煩
  • 適用於:開較大型的伺服器,或需要長期維護下去的伺服器(尤其允許玩家課金那種)

FRP是一款著名的內網穿透軟體,它相較於前述的Ngrok特點是它是開源的,因此不需要為它的使用付任何費用;但相對而言它沒有官方提供的伺服器,你需要自行找適合的FRP伺服器作使用,或是自己搭建一個。搭建FRP伺服器的方法通常是使用虛擬專用伺服器(VPS),這東西基本要錢,免費的如Oracle Cloud在註冊過程中也會要求你輸入信用卡,所以免費用的話就別想了,還要小心別按錯按到付費版…

那或許你會想問既然有VPS了幹嘛還要自己弄一台電腦搭建?有了VPS你確實大可以不必另外開一台電腦做搭建,但VPS給的效能如果要足夠開服(至少記憶體要有個8GB吧),以知名VPS提供商Vultr為例,一個月至少需要48美金(以目前匯率相當於1556台幣一個月),成本是非常高的。所以才會想到花比較少的錢買一台有固定IP的VPS來做中介,但還是要花錢…

FRP教學的話又是一個篇幅,礙於篇幅這邊給一個巴哈板友的文章連結:

SamHacker
SamHacker

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

文章: 33

1 則留言

發佈留言

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