透過 Pi-hole 破解 Switch 版 Minecraft 以連線至私人伺服器

2021.11.30 / Minecraft 創世神
目前 Minecraft 分為 Java 與 Bedrock 兩種版本,前者以 PC 版為主,後者為跨平台版本,包括 Windows、Android、Nintendo Switch 等。近期我購買了 Switch 版本的 Minecraft

目前 Minecraft 分為 Java 與 Bedrock 兩種版本,前者以 PC 版為主,後者為跨平台版本,包括 Windows、Android、Nintendo Switch 等。近期我購買了 Switch 版本的 Minecraft 遊戲,除了平台本身限制多人遊戲需購入 NSO 會員外,還發現此版本的遊戲不支援玩家連線至私人伺服器,僅能夠使用區網、Xbox Live、Realm 或合作的特色伺服器進行多人遊戲。

然而,兩三年前在 Reddit 上其實已有網友提出可能的解法,其手法類似 DNS 欺騙,只不過作用的目標是自己,也就沒有妨害電腦使用的問題。簡單來說就是要自行架設一個 DNS 解析伺服器,並讓他攔截從 Switch 發出的連線請求,將與官方合作 Minecraft 特色伺服器的連線網域的 DNS 紀錄改寫成自己架設的伺服器位址,就可以輕鬆破解 Switch 與 Microsoft 設下的限制。(NSO 還是要買)

什麼是 Pi-hole?

Pi-hole 是一個開源專案,其主要功能為從網路層阻擋廣告或追蹤代碼的作動,以達到網頁、APP 去廣告的效果。而我們需要的功能其實不是去廣告,而是其實現阻擋廣告的基礎架構「DNS Server」。

且 Pi-hole 有提供 Docker 映像檔,我們可以很快速且輕鬆的於 Windows 或 Linux 完成架設。

本篇文章將會於 Windows 11 作業系統中進行架設教學,此伺服器架設與設定完成後可封鎖在區域網路中自用,或公開至網際網路來讓其他 Switch 玩家使用,並連線到你的伺服器。

對於伺服器主,如果將 Pi-hole 公開,需自行負責資訊安全之維護,但可以讓 Switch 玩家體驗到無需自行架設的便利;對於玩家,如於區域網路自行架設 Pi-hole 可防止淺在的資安風險,請自行斟酌。

安裝 Docker

我們已有 Windows 版本的 Docker 安裝教學文章,請先完成 Docker Desktop Windows 版本安裝流程 再進行後續操作。

安裝 Pi-hole

首先請搜尋 cmd 以啟動命令提示字元。

於視窗中輸入以下指令進行 Pi-hole 的安裝與啟動。

docker run -d -p 53:53/tcp -p 53:53/udp -p 80:80 pihole/pihole

請以無錯誤訊息為原則,順利的話請繼續以下步驟。

設置 Pi-hole 控制台密碼

用 Docker 安裝的 Pi-hole 不會主動告訴我們預設密碼,所以需要用指令重新設置。請從 Docker Desktop 的 Containers / Apps 中,點擊剛才建立的容器的 CLI 按鈕。

於視窗中輸入以下指令並完成密碼設置。

sudo pihole -a -p

接下來開啟瀏覽器,於網址列輸入 127.0.0.1 後會抵達下圖中畫面,請點擊 Did you mean to go to the admin panel? 文字連結進入控制台。

於控制台中切換至 Login,輸入剛才設定的密碼後完成登入。

設定 DNS 伺服器組態

登入成功後,切換到 Settings 的 DNS,將右側的 Interface listening behavior 改成第三個 Listen on all interfaces, permit all origins,後續維護時的除錯與調整會比較簡單。

儲存按鈕在網頁右下方,記得 Save。

[重點] 建立自訂 DNS 指向紀錄

這裡將要來把官方的 Minecraft 特色伺服器位址改成指向私人伺服器,你需要於 Domain 中填入特色伺服器的位址,並在 IP Adress 中寫入你要連線的伺服器 IP。

以下整理目前我確定可攔截的特色伺服器位址,如果之後有驗證成功的會再更新上來:

  • Galaxite:play.galaxite.net
  • Pixel Paradise:play.pixelparadise.gg
  • Lifeboat:mco.lbsg.net

資料更新日期:2021.11.30

設定 Switch 網路 DNS 組態

請拿出你的 Switch,開啟 設定 > 網路 > 網路設定,選擇你使用的網路並點擊更改設定。

將 DNS 設定從自動改為「手動」,並於優先與替代 DNS 中填入 Pi-hole 伺服器的 IP。這個 IP 可能會是內網 IP 或對外 IP,要看你的網路結構。

如果你的 Pi-hole 是架設在自己的電腦,沒有要對外開放,那只要 Switch 連線的網路與 Pi-hole 是相同的,就可以用內網 IP;反之,就需要先設定好路由器的 Port Fowarding 才可以正常對外。

完成後要重新連接網路,請確定結果為「已連接」。

連線至 Minecraft 私人伺服器

最後來驗證結果,啟動你的 Switch 版 Minecraft,點擊我們前面修改過的特色伺服器並連線。

如果能正常連線到私人伺服器就是成功了。

附錄:同區網、IP 正確卻無法連線?

可能是 Pi-hole 伺服器的 Windows 防火牆擋掉封包了,請先開啟 Windows 安全性 > 允許應用程式通過防火牆。

先點擊右上角的變更設定,再將 Docker Desktop Backend 的選項全部打勾即可。

附錄:如何讓 Pi-hole 開放對外連線?

這可能是伺服器主最關心的問題,如果你有做過端口轉發 (Port Fowarding) 的話應該會很熟悉,我們只要在路由器上的虛擬伺服器中開啟端口 53 的 TCP/UDP 並導向 Pi-hole 即可。

附錄:如何關閉 Pi-hole 的廣告阻擋?

請登入 Pi-hole 控制台,進入 Group Management > Adlists,將 List of configured adlists 中的 Status 全部改成 Disabled 即可。

參考資料

相關文章

Ted Liou

雲科碩士在讀中,專注於 Unity C#、TouchDesigner 技術,常把技術筆記分享到部落格,偶爾還直接挪用文章來當教材的研究生。