本文分享使用中華電信光世代 ZyXEL P874 路由器 (俗稱小烏龜,以下皆以 P874 稱之) 搭配 Synology DS216j 架設家用 VPN Server 的過程,架設的 VPN 類型以 PPTP 為例,並以 Windows 10 與 Andriod 6.0 作為測試連線的 Client 端。
老早就想要自己在家裡弄個私有雲來存放資料,一開始只是出於想要有個更大的雲端空間,畢竟 Google 和 Dropbox 這類知名的公有雲眾所皆知地空間總是十分有限。但其實這並不是一個十分迫切的動機,俗話說得好:「時間,就跟乳溝一樣,擠一擠就有了。」空間似乎也是這麼一回事,架私有雲這件事也就在不斷地分散檔案到不同家雲端服務,這種向空間上限屈服的沒骨氣行為中一再擱置,懶惰果然是人類的原罪啊。直到前一陣子,Yahoo、Dropbox 相繼傳出了資料外洩事件 (而且都是在多年前外洩的,竟然現在才公布!),讓人深刻體認到資料放在樹大招風的大廠也不見得真的安全,才因此加緊了架雲的腳步。考量價格、網路學習資源和後續維護可靠度等面向,比較過不同廠牌的機器後,終於在最近幫家裡添購了入門級的家用 NAS Server ─ Synology DS216j。
買來的 NAS Server 除了拿來架私有雲以外,還有個重要任務是要作為 VPN Server,這是源於老爸到中國出差時的需求,作為曾到中國交換半年的交換學生,我當然也十分明瞭 VPN 對於在中國的台灣人是多麼重要的自由傳送門。在交換當時主要都是使用學校的 VPN 翻牆回台灣,那時也考慮過,未來畢業了之後假如又要再到中國工作或旅遊時,翻牆可就麻煩了,但也僅只想想而已,畢竟還沒真的面臨到這個情境 (恭喜惰性再一次獲勝)。總之,趁著這次架 NAS 的機會,就把這件事一併處理掉以除去心頭大患也好。
前言廢話結束,以下正式開始分享如何使用中華電信光世代的 P874 路由器搭配 DS216j 架設 VPN Server,整體來說其實並不難,也不必具備什麼高深的網路知識,這也是當初選擇 DS216j 的原因,購買之前查過相關文章瞭解到這部分即使是如我這般厭惡硬體的新手玩家都可以輕易做到才放心下單的,所以在看這篇文章的讀者如果是新手也請別擔心,繼續往下看吧。
本文中架設環境所使用的硬體設備/軟體系統:
- Synology DS216j NAS Server
- 作業系統:DSM (6.0.2-8451 Update 2)
- 搭配套件:VPN Server (1.3.3-2748)
- 中華電信光世代附的 ZyXEL P874 路由器 (含 WiFi 功能與四個區網插孔)
- 韌體版本:P874S7_TR069_20140730
本文中架設環境的網路架構:
在架設 VPN Server 前要先做好的工作就是把 NAS Server 架好,這部分網路上有許多詳細的教學,我自己當時是參考這篇圖文並茂教學文《經濟實惠的家庭多媒體儲存方案-Synology DS216j NAS(上)》就順利完成設定了,過程中沒遇到什麼困難,相信人人都可以做得到,所以直接進入下一步。
架設好 NAS 環境以後,透過套件中心可以找到「VPN Server」,這個套件,DS216j 的套件管理已經做得很直覺了,安裝套件大致上就像在手機上透過 App 商店安裝 App 一樣簡單。這裡要做的就是 ─ 找到它,安裝它。
這裡有個小 Bug,在鍵入關鍵字進行搜尋時,右邊不會即時更新搜尋結果,要再自己按一下重新整理。因本人已安裝此套件因此按鈕上顯示為「開啟」,未安裝該套件時會顯示「安裝套件」字樣。
成功安裝後,點擊左上角的主選單按鈕,可以在跳出的已安裝套件清單中看見 VPN Server。
接著點開該套件,進入設定畫面以後會發現有幾種不同類型的 VPN 可以進行啟用,這邊以最單純的 PPTP 做說明,基本上除了勾選「啟動 PPTP VPN 伺服器」就不用多做什麼了,其它的都保持預設並按下套用即可,當然只要知道自己在做什麼,要修改其餘設定也是可以的。
完成啟動 VPN Server 的功能以後,別忘了到權限頁面,為各個未來會連線使用 VPN 服務的帳號開啟權限。
至此便已完成 NAS 端的設定,按下套用後,可以看見跳出的提示訊息,記好 TCP 和 1723 這兩個關鍵字啊,它們對 PPTP 之後在路由器上的設定很重要。
接下來將畫面轉到路由器端,中華電信的 P874 預設的區網位址應該都是 192.168.1.1,在網址列輸入這個 IP 位址就會跳出輸入帳號密碼的彈跳視窗。
預設帳號都是 cht,預設密碼則因北中南地區而異,不外乎是:chtsvdsl (南部)、chtcvdsl (中部)、chtnvdsl (北部) 這三者之中的一個,不過也聽過一說密碼不一定會跟所在區域吻合,所以一個不行的話就再試試另外兩個吧。
登入以後會進到 P874 的操作畫面,不得不說這個介面實在是很陽春,撇開美感不說,不完全的中文化也令人看了頗不舒服啊…。但這篇畢竟不是 UI 評論文,所以就下略兩萬字的抱怨,直接來看看 VPN Server 還要做什麼設定。
在此插個題外話,大家在登入的過程中應該也發現到了,登入 P874 的帳號密碼根本就都是公開的,這代表任何能夠連到這個路由器的人都可以輕易進到你家的路由器檢視連線資訊以及修改設定,配上這台的 WiFi 功能,簡直就是大門敞開啊…網路畢竟不是個可以夜不閉戶的大同世界,因此登入後趕緊到以下頁面換個密碼吧!也別忘了幫 WiFi 連線加上密碼,可以的話隱藏 WiFi 的 SSID 就能再進一步減少被入侵的機會。
舊密碼就是本次用來成功登入的那三個密碼中的其中一個。
實際呈現設定畫面前,先在此科普一段之後設定的原理,已經懂的或沒興趣的就直接往下下一段去吧。由於我們的 VPN Server (即 DS216j) 與浩瀚的網際網路之間隔了這隻小烏龜 (P874),試想當我們在外地或外國要訪問放在家裡的 VPN Server 要求服務時,勢必得先經過 P874 這關。那要如何在茫茫網海中定位到 P874 呢?中華電信光世代提供了每個帳戶可以申請一個固定「IP 位址 (以下簡稱 IP)」的服務 (抱歉又是個巨醜的頁面),有了固定的 IP,我們的 P874 在網路的世界中就有了一個明確的「地址」,此後在設定 VPN 連線時要輸入的「伺服器名稱或位址」就是它了。在沒有請得固定 IP 的情況下,一般家用光世代的 IP 會是八個浮動 IP 的其中一個,每次連線都不一定會一樣,有看過一些教學是使用 DDNS 的服務來透過每次連線都動態註冊網域名稱來達成此需求 (可以理解為把每次連線配到的 IP 都對應到一個固定使用的英文名稱),但我個人是覺得申請個固定 IP 比較省事,有個固定 IP 之後有一些如架站之類的需求,也顯得方便一些。
當前中國長城防火牆似乎已經有能力識別個人 VPN (網上有一說是多年前就已經有能力了),家裡先前申請的固定 IP 在今年 6 月被 ban 掉,於是改成使用浮動 IP 搭配 Synology DSM 內建的 DDNS 功能(可註冊一組固定的網址),將原本 PC 或手機上 VPN 設定檔中連線目標的「IP 位址」換成這個「英文網址」,即可實現架設在浮動 IP 上的 VPN 了。目前使用都是正常,但隨著中國愈來愈嚴密的網路控管,不曉得過多久又會被 ban 掉,感覺這一招沒辦法再撐多久了... 最後不得已的情況下可能還是要購買商業的 VPN 服務。常常覺得那些沒有被封殺的商業 VPN 服務到底是不是中國政府自己的兩面手法啊!!
雖然有了固定 IP 以後 P874 已經能夠在網路上被訪問到了,但畢竟我們要找的不是它啊,DS216j 才是重點!P874 充其量只能算是個守門人,守門人的工作就是要妥妥地轉傳我們的訊息,所以這就是接下來設定要做的事了 ─ 設定 P874 傳遞訊息的功能,更正式的稱呼為 Port Forwarding。
那這件事要怎麼做?且讓我們長驅直入來到以下的頁面,並點擊 Add 按鈕:
點擊後會出現如下設定欄位:
Use Interface 的地方因為我是使用 P874 硬撥上網 (就是把中華電信的連線帳號密碼設定在路由器上),所以選擇這個選項;而因為本文展示 PPTP 類型的 VPN Server 架設方式,所以在 Service Name 選擇選單中已經內建有的 PPTP 選項,此時下方的表格將自動填入 PPTP VPN 會走的連接埠 (Port) 號;從選單中選取既有的選項並非必要動作,開心的話自己手動在 Custom Service 的欄位隨便填個名字,然後手動輸入表格中的埠號當然也是可以;而 Server IP Address 則是填入 DS216j 被 P874 所分配到的區網 IP,預設為 192.168.1.x。
記憶力好的人在這裡應該會發現,表格上的 1723 & TCP 不就是前面在 DS216j 啟動 VPN Server 功能以後跳出的提示訊息上的關鍵字嗎?沒錯!對應不同的 VPN 類型,資料傳遞會以不同的通訊協定走不同的連接埠號,在 PPTP 這種 VPN 連線類型就是以 TCP 走 1723 Port,而另一種在 DS216j 的 VPN Server 可以看到的 OpenVPN 類型 VPN 自由度較高,可以自訂通訊協定和埠號,預設是以 UDP 走 1194 Port,不過這種類型沒有內建在選單裡,所以要自己手動填設定內容。把這一切設定都完成以後,就可以按下 Apply/Save 按鈕,完成路由器端的設定,當初空無一物的表格現在應該有內容了。
此外,雖然 NAS 機器一般來說都不會關機,應該會一直持有同一個動態 IP,但誰也說不準會不會有哪一天那麼不巧,NAS 持有的 IP 因為某些緣故被釋放,同時它原本的 IP 又被分配給其它裝置的情況發生。因此在這裡會建議再額外做個小設定,讓 DS216j 每一次都可以被分配到同樣的 IP,以免上述情況發生時根據 Port Forwarding 設定中走的封包導不到真正的 VPN Server 所在位址。分配固定 IP 的設定方式很簡單,來到以下頁面,可以在表格上看到自己目前的 NAS Server 的名稱,而這裡重要的是要把該列 MAC Address 欄的資料複製起來,它是一個由六組英文數字所組成的字串。
接著來到以下頁面,在 Static IP Lease List 區塊點擊 Add Entries 按鈕後,填入方才複製的 MAC Address 以及填入未來要固定分發給 NAS Server 的區網 IP 即可 (如圖片中的 192.168.1.105 就是我的 NAS Server 固定所在位址)。
進行到這一步,一個能夠提供外部 VPN 服務的 VPN Server 已經算是架設完成了,接下來就試著來連線吧!先以 Windows 10 做測試,照以下路徑來到設定 VPN 的頁面:
點擊新增 VPN 連線後完成以下設定並儲存:(連線名稱隨便取)
往後在右下角的連線符號點開就可以看到這個 VPN 連線圖示了!點入後就可以進到剛才的 VPN 頁面進行連線。
手機設定也很容易,以本人搭載 Android 6.0 的手機操作來做測試。從設定頁面中找到可以設定 VPN 的頁面 (不同廠牌的 Android 手機因韌體不同,該頁面路徑可能不盡相同,但一般來說應該都在與「網路」有關的頁面下可以找到),一樣填入一些必要設定後存檔 (名稱可以隨便取)。
使用 VPN 連線後,如果手機上方出現了特殊的圖標就表示成功啦!到一些 IP 查詢的網站測測看自己是不是拿到家裡的 IP 吧!
本文所講述的 PPTP VPN 算是比較單純的類型,因為在 Windows 和 Android 手機上都內建有此方法的連線選項,不用再額外用到什麼第三方的軟體。而文中提到的 OpneVPN 或是文中未提及 DS216j 所提供的第三種 L2TP/IPSec VPN 在 DS216j 上的設定方式跟 PPTP 相去不遠,VPN Server 套件都已經將其做得非常直覺化,比較特別的是 OpenVPN 不論在 PC 或是在手機的 Client 端上都還要再下載要吃 Config 檔的 OpenVPN 軟體,而為了準備這個 Config 檔又要多做一步動作,這部分的教學網路上也蠻多資源的,相信有心想使用的人一定找得到啦!(惰性再下一城)
整個看下來,最容易讓初學者卡住的地方大概就是設定那個介面很難看、階層邏輯又頗不直覺的 P874,這也是會想寫這篇文章分享的原因,希望能幫到在 P874 後面架 VPN Server 的有緣人囉。