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

原本只是為了找朋友一起玩,結果學了插件學了模組,但卻還是只能自己開著電腦自嗨?不少人向我抱怨這件事,我也覺得有些愧疚,所以今天這篇文章一樣跟插件無關,我就介紹四種方法讓你可以和三五朋友一起玩自己的伺服器。我挑選最為簡單抑或是最常見、最強大的四種著名方法,讓朋友可以輕鬆從 外網連接 你的遊戲,一起連線遊玩(我絕對不會說是因為最近太久沒更了,才來寫一篇大家敲碗已久的教學拜託各位原諒我)

先前的文章我從安裝插件設定權限配置文件等部分介紹完怎麼搭建插件服,但是…朋友還是連不上來,相信各位不想再自嗨了吧?但在做事之前我們就先來介紹為什麼要做這件事,不想看的可以按旁邊目錄跳過,會有點網路學概論,我盡力寫得好懂些

為什麼不能直接連線

在我寫這篇教學之前我相信各位已經上網找過了,有人找到網路上有一個叫做myip.com的網站可以取得自己的IP位址,然後就興沖沖的把這個IP給朋友,然後…DEFEAT,失敗;有人照著教學影片說要開cmd然後打指令取得一個叫做IPv4 位址,然後分享給朋友,又成了連接伺服器中的一位犧牲者;有人上網決定學習怎麼開伺服器,結果光是看到什麼是伺服器就被一堆每個字都看得懂、串在一起看不懂的東西搞混了。

難道讓朋友連到自己伺服器唯一的方法只有叫他來自己家嗎?難道這件事已經被宣告死亡了嗎?其實根本不是這樣的。但我還是希望可以告訴各位為什麼需要做這種事,我會盡力用好懂的方式介紹原因,那就開工吧!

IP位址是啥?

相信大家應該都知道,你上網需要一個IP位址。但是全世界目前常用的IP位置(也就像是你電腦的門牌)名叫IPv4,這種協定由四組0~255的數字加上三個小數點組成(xxx.xxx.xxx.xxx),至於為啥不用0~100之類的數字,這其實是因為0~255共256個數字剛好是二的八次方,但我可以告訴你…不重要,只要知道IP位置由四組三位數組合就好。

IPv4已經不夠了?

IPv4(我想要簡稱v4)剛出現時科學家們認為這是個超級讚的協定,因為v4總共擁有約40億(實際數字4294967296)左右的數量可供使用。扣除被保留下來作特殊用途的如0.0.0.0、255.255.255.255(我知道看不懂,反正說明)等位址(約八億多組不能用的,實際數字875,310,464)後,還有三十七多億個可以用的

三十七億個IP位址可供分配看起來很多,而在剛開始…好啦確實超級夠用,但現今人手一台手機一台電腦又一台筆電,可能一個人就需要占用3~4個IP位置(剛有說過,連上網路一個人就要一組IP,而且不能重複)。目前全世界過半的人可以用網路,假設一個人需要2台裝置且共40億(80/2)人需要,那總共既需要八十億個IP位址,這已經是目前所有IP的兩倍多了!

給各位做個參考,根據維基百科各國IPv4位址分配列表的分配,比起14多億人口只被分到三億組IP的中共,我們兩千多萬人口有三千萬左右的數量看起來很多,但一個人就幾乎有一隻手機一台電腦,三千萬不夠用啊!!!

各國IP分配

IP位址的改革與革命派

清朝末年有兩派勢力:改革已經搖搖欲墜的清朝的改革派與覺得清朝沒救砍掉重練比較實在的革命派兩派。現在IP位址不夠這問題也有兩派:在IPv4上縫縫補補又繼續用的改革派與不想救了直接另外整一個IPv6的革命派,兩派都有人在用。回重點:為啥朋友連不上伺服器?其實是改革派害的。以下就來介紹改革派搞出來,讓一眾架站者、開服者痛恨的協議:NAT(Network Address Translation,網路地址轉譯)

套娃協定NAT

最理想的直連形式
好美好

最簡單的網路架構就像上圖(橘色是IP位址,絕對沒在罵人喔),一台電腦就用一個IP向伺服器發請求,伺服器也用他的那組IP發請求回這台電腦,一切都是那麼的美好。

個人等級的NAT
還可以忍受吧…

但在IP位址不夠的狀態下,不能用這麼奢侈一機一組的分配,不然壓根不夠用。我們必須要好幾個人共用一個IP,於是就定義出NAT來讓人們可以多機一組的分配,這個分配局就是你家或許躺在某個地方閃著燈的那台網路AP(Access Point),架構簡圖如上。

ISP等級的NAT
套娃真有趣…

那你問,這招有沒有解決不夠IP的問題?答案非常簡單,有…才怪。於是人們又決定同樣一招繼續玩,現在網路AP也好幾台共用一個IP,又如上圖這樣一直一直套。一樣可以正常上網,但當你要搭伺服器時就會知道NAT的”好”了:

搭建伺服器,簡單來說就是大家都要連到你伺服器的那組IP。但大問題就來了:我的IP是跟別人共用的啊!誰知道幾百台電腦中誰在開網站?如果直接一台一台問可以但也太慢了吧!而且如果只是一層還好,頂多當你要玩麥塊時去找我就好…但現在有好幾層,甚至好幾十層啊!!

大內網環境
真快樂呢…

好了,故事說完了,回去講重點的怎麼連線吧

SamHacker
SamHacker

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

文章: 33

1 則留言

發佈留言

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