自從宿舍網路的ISP從中華電信光世代換成台灣智慧光網之後,雖然網路品質確實不怎麼種花了,但唯獨在黎明死線(Dead by Daylight,以下簡稱DBD)內連日服的延遲飆到~90ms(正常延遲大概會在50~60ms左右)。
有玩這個遊戲的就知道,只要延遲高就很容易發生"億些"令人不悅的狀況。雖然應該是在今年開始DBD在台灣會自動連到港服(延遲大概~30ms),但我自己還是比較喜歡連到日服玩(關於怎麼選伺服器之後再寫文章記錄),所以決定著手處理這個狀況。
從網路上搜尋可以得知黎明死線所使用的伺服器是Amazon AWS的Gamelift。在Amazon GameLift endpoints and quotas頁面可以得知日本東京伺服器的區域屬於ap-northeast-1,並且提供測試延遲用的Endpoint。
Pinging gamelift.ap-northeast-1.amazonaws.com [52.119.218.82] with 32 bytes of data:
Reply from 52.119.218.82: bytes=32 time=77ms TTL=240
Reply from 52.119.218.82: bytes=32 time=75ms TTL=240
Reply from 52.119.218.82: bytes=32 time=76ms TTL=240
Reply from 52.119.218.82: bytes=32 time=76ms TTL=240
Ping statistics for 52.119.218.82:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 75ms, Maximum = 77ms, Average = 76ms
得出延遲約在70~80ms(正常約在~40ms左右),比遊戲內的延遲少了~20ms,推測是測試節點與實際伺服器的路由差異,或是延遲測試封包不同(吧)。
由於狀況是在換ISP之後發生的,因此原因很明顯就是:
宿網ISP(台灣智慧光網)在台灣至日本Amazon AWS的路由發生了問題。
路由問題除了找ISP客訴(然後等到天荒地老)以外,也可以使用VPN來解決。
VPN Gate是日本筑波大學為學術研究目的所建立的全球公用VPN服務。
VPN連線的方式可參考VPN Gate提供的教學,在Windows上若要直接使用Windows內建的VPN連線,建議使用L2TP/IPsec協議。
事實上到上面為止,只要照著步驟做,剛剛所設定的VPN Gate已經可以順利運作了。
不過由於公用VPN的安全性較低,不適合在上面傳遞敏感資訊(比如你喜歡一邊玩遊戲一邊繳帳單就會很危險),且透過VPN連線時整台電腦的網路速度也會受到VPN限制。因此透過手動設定路由的方式來讓電腦只在連線到特定主機時透過VPN進行連線。
開啟VPN(左)與正常(右)網速比較
首先先取得VPN的閘道位址。在命令提示字元中執行ipconfig.exe /all
,找到VPN的連線介面卡中的預設閘道。但是很有可能會出現跟我一樣的狀況:
PPP adapter VPNGate Japan:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : VPNGate Japan
Physical Address. . . . . . . . . :
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
IPv4 Address. . . . . . . . . . . : 10.245.55.3(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 0.0.0.0
DNS Servers . . . . . . . . . . . : 10.245.254.254
8.8.8.8
NetBIOS over Tcpip. . . . . . . . : Enabled
在預設閘道那一欄可能會是空白或者0.0.0.0,應該是Windows的老Bug。雖然是可以根據微軟的說明解決,但由於每次開關VPN都有可能會出現這個問題,所以我比較推薦用下面的方法直接把閘道位址找出來:
使用TRACERT.EXE任意trace一個公用固定IP(如Google DNS的8.8.8.8、Cloudflare DNS的1.1.1.1等)並且觀察第一個跳躍點的IP位址。例如:
C:\>TRACERT.EXE -d 8.8.8.8
Tracing route to 8.8.8.8 over a maximum of 30 hops
1 101 ms 106 ms 217 ms 10.245.254.254
2 414 ms * 295 ms 219.100.37.253
3 154 ms 92 ms 78 ms 202.222.12.190
4 86 ms 90 ms 109 ms 202.222.12.33
5 349 ms * 56 ms 150.99.184.33
6 98 ms 63 ms 61 ms 150.99.10.187
7 104 ms 99 ms 130 ms 210.171.224.96
8 384 ms 528 ms 448 ms 108.170.248.251
9 302 ms 291 ms 193 ms 172.253.75.97
10 215 ms 269 ms 279 ms 8.8.8.8
Trace complete.
觀察第一個跳躍點,得出10.245.254.254即為該VPN的閘道。
在新增的VPN上點一下展開,選擇 [進階選項] > [更多VPN內容] 左邊的 [編輯] 按鈕。
在彈出的對話框選擇上面的 [網路] 標籤 [網際網路協議第4版(TCP/IPv4)] > [內容] 。在彈出的對話框上點選 [進階] 按鈕。
取消勾選 [使用遠端網路的預設閘道] ,點選確定儲存設定(每個對話框都要點確定)。
在開啟VPN的狀況下再次測速,可以發現預設不再使用VPN進行連線。
接下來就可以手動設定電腦在連線至哪些位址時要使用VPN閘道連線。
以Amazon提供的東京Endpoint為例,在撰文的當下其對應的IP位址為54.239.96.159。
以 系統管理員身分執行 命令提示字元,輸入:
ROUTE.EXE ADD [目標IP範圍] [VPN閘道位址]
C:\>ROUTE.EXE ADD 54.239.96.159 10.245.254.254
OK!
這樣電腦在連線至54.239.96.159時就會透過VPN連線了。
到目前為止已經知道如何使用VPN來連線至目標主機,但是後面還有更多的內容(或者說,坑)沒辦法在一篇文章內寫完。
下一篇來記錄如何透過腳本自動取得Amazon AWS的IP範圍並設定路由(終於要進入程式環節了:))。
其實不用弄這麼多東西, 一個PROXY就可以了
Proxy 還支持部份DNS代理
結果就是可以大陸國內一個BROSWER用GOOGLE.
另一個BROSWER用BAIDU, Youku 看影片也沒有版權問題.
當初做的時候沒想到還有代理伺服器這個方法XD,而且主要是想要自己架個OpenVPN看看。
不過我會再研究研究Proxy這條路的可行性的。