Re: [問題]無法以輸入IP的方式連線至朋友的遊戲

作者: vintw (陽光好青年)   2016-02-20 05:02:14
下面已經有熱心板友點出了盲點,我在這邊幫忙更清楚的解說一下:
原PO遇到的情況,可以推測是因NAT所造成,
即網路位置轉換(Network Address Translation),請參考中文維基百科:
https://goo.gl/277ib8
簡單的說,因為IP位置不夠,所以可能要好多人共用一個IP位置,
這時候電腦所採用的策略,是利用一些特別的IP位置來達成。
請參考中文維基百科: https://goo.gl/JmTZUr
以IPv4來說,當初就規定好10開頭、172.16-172.31這段、還有192.168開頭的,
都是私有IP位置,特別用來給大家關起門來自己分配用的,網路上不可以用到這些位置。
如果在電腦中發現IP位置落在上述區段,則很有可能是在NAT的網路環境中。
私有IP位置搭配具有NAT功能的路由器,就可以很簡單的做到共享IP位置,如下圖所示:
192.168.100.1 ┌───┐
┌────────┤電腦1 │
│ └───┘
139.175.55.244 ┌─────┐ │ 192.168.100.2 ┌───┐
網際網路 ─────── │NAT路由器 │──┼────────┤電腦2 │
└─────┘ │ └───┘
│ 192.168.100.3 ┌───┐
└────────┤電腦3 │
└───┘
上面的例子中,只有一個IP位址對外,可是內部三台電腦卻拿到不同的私有IP位置。
這種環境,在一般使用上是不太會感覺到問題,
因為一般上網或是大部分的應用程式、大部分是你的電腦去要求別人的資料,
而NAT會自動紀錄個別電腦要求的資料,並且把結果轉到送出要求的機器上。
大概會是下面這種流程:
(2)電腦1 192.168.100.1 ┌───┐
要Steam的資料 ┌─←──────┤電腦1 │
│(1)任爸要上Steam└───┘
139.175.55.244┌─────┐ │ 192.168.100.2 ┌───┐
網際網路 ──←─→── │NAT路由器 │──┼────────┤電腦2 │
(3)跟Steam要資料└─────┘ │ └───┘
(4)根據之前的紀錄│ 192.168.100.3 ┌───┐
Steam的資料 └────────┤電腦3 │
要丟給電腦1 └───┘
(註:嚴格來說是封包經過NAT時IP位置被改寫而已,細節請容我略過。)
但是問題在你想開Server時就出現了:
因為對外部來的連線,NAT不知道是給哪一台內網的主機,
所以一般的做法就是:不讓你連!大概像下圖所示:
192.168.100.1 ┌───┐
┌────────┤電腦1 │
│ └───┘
┌───┐139.175.55.244 ┌─────┐ │ 192.168.100.2 ┌───┐
│電腦X ├→────→─ │NAT路由器 │──┼────────┤電腦2 │
└───┘ (1)我要連線 └─────┘ │ └───┘
L4D2伺服器 (2)挖哩靠北 │ 192.168.100.3 ┌───┐
誰知道是 └────────┤電腦3 │
哪一台啊? └───┘
通通擋掉!
大概就是這種情況。
至於解決的方法,要看你能不能去改「NAT路由器」的設定值。
如果說造成NAT的機器是自己買的,那把說明書找出來連進去設定一下就可以了。
看各家機器不同,可能叫虛擬伺服器(Virtual Server)或通訊埠轉發(Port Forwarding)
它可以讓你指定說哪一個埠(Port)號進來的流量,全部都指定哪一台電腦,
所以你只要把你想要設定遊戲所使用的埠號範圍,指到你的電腦,外面就可以連進來了。
如下圖所示:
(4)進來啦阿斯
(1)設定好 192.168.100.1 ┌───┐
L4D2伺服器 ┌──→──→──┤電腦1 │
都給電腦1 │ └───┘
┌───┐139.175.55.244 ┌─────┐ │ 192.168.100.2 ┌───┐
│電腦X ├→────→─ │NAT路由器 │──┼────────┤電腦2 │
└───┘ (2)我要連線 └─────┘ │ └───┘
L4D2伺服器 (3)依照設定 │ 192.168.100.3 ┌───┐
把連線轉給 └────────┤電腦3 │
電腦1 └───┘
至於你要連哪個遊戲,要設那些埠,則視遊戲不同需要自己查詢所需設定;
我也是有看過有NAT的機器直接寫好熱門遊戲的設定,用選的就可以,非常歡樂。
至於細節一步步要怎麼設定則是隨機器不同,得請你回去找機器的說明書。
至於板友提到的DMZ,在一般家用路由器的作用是直接指定一台電腦,
只要外面連進來的連線全部都倒給他,這樣設完之後該台電腦等於完全暴露在外,
所以開Server不管是哪個埠外面應該都可以連得進來,也是一種方法。
反過來說,如果造成NAT的機器不是你可以設定的,
例如跟著第四台一起辦的社區網路、宿舍的網路等等完全不給對外實體IP位置的情況,
那就只能透過其他方式繞道,比如說透過設定VPN之類的去連線。
就我所知像是Hamachi就是做這件事情的軟體,但是這部分的軟體我還真沒用過,
這部分還得請板上其他先進補完。
※ 引述《aries74262 (aries)》之銘言:
: 不好意思,由於這問題困擾我跟朋友好久了,又苦於不知該蒐尋什麼關鍵字
: 所以上來請教各位
: 一開始是在玩L4D2的時候,以遊戲內的區域連線開房是可以正常的連線進去的,
: 但當我們嘗試以CONSOLE開圖時,開房者可以順利進入遊戲,但其他三人在輸入IP
: 後則是不斷的顯示Try to connect,之後就斷線回到主畫面
: 在risk of rain,unturned都遇到了相同的情況
: 基本上只要是需要以輸入ip來連線的方式都無法成功
: 我們有嘗試換不同的人來開房,4個人裡面只有一個人開房是大家都可以連進去的
: 但由於他的網速和硬體設備實在不足以負荷遊戲的進行,所以無法由他來開房
: 試了無數蠢方法之後只歸納出下面的東西
: 1.可以順利開房的人是家用網路(其他人不是宿網就是租屋處的分享器拉進來)
: 2.可以順利開房的人他的IPv4位置和從www.whatismyip.com.tw/查出來的ㄧ模一樣
: 其他人的則會有些微出入(抱歉我們和朋友都沒有念相關科系的,滿頭霧水也看不懂啊)
: 我們也試過直接輸入IPv4位置,但一樣無法連線
: 爬了文也在google搜尋了一堆奇怪的關鍵字還是不知該往哪個方向找
: 還請各位不吝給點建議
: 非常感謝!
作者: hn9480412 (ilinker)   2016-02-20 05:31:00
其實還有一個class A的私有IP,是10.x.x.x
作者: seiyaku (制約)   2016-02-20 06:48:00
他有說10開頭的阿
作者: brmelon (清水西瓜)   2016-02-20 07:43:00
詳細推
作者: cfox1 (高雄縣大?p鄉)   2016-02-20 07:44:00
用心給推!!!!
作者: KaiJii (...)   2016-02-20 07:49:00
這一篇文章值 811 Ptt幣
作者: ZeroRSX (陽明山的藍色閃電)   2016-02-20 10:07:00
認真推
作者: HwangTW (谷歌翻譯王)   2016-02-20 10:19:00
實用推
作者: ctes940008 (蛤!我只是小兵!?)   2016-02-20 11:48:00
作者: Bencrie   2016-02-20 13:33:00
推陽光好青年 XD
作者: blackstyles (夜貓)   2016-02-20 16:39:00
專業推, 路由器設定找虛擬伺服器或埠轉送
作者: HwangTW (谷歌翻譯王)   2016-02-22 16:49:00
認真覺得這應該要被收入精華XD
作者: aries74262 (aries)   2016-02-22 21:04:00
太專業了,真感謝你!

Links booklink

Contact Us: admin [ a t ] ucptt.com