Synology NAS OpenVPN架設(VPN Server) 設定經驗&踩坑心得


unsplash竟然剛好有同型號的NAS的圖太方便了吧

注意:此篇文章的撰寫時間是2023/11,我的NAS是DS218+,DSM版本是7.1.1-42962 Update 6

原本我的OpenVPN server是用Asus的Wi-Fi AP內建的,但因為後來網路升級到500M/300M,若家裡有人在用網路的話,CPU loading會非常重,導致延遲很高又速度慢,就決定改用Synology DS218+來當OpenVPN server。

沒用過不知道,現在才知道Asus Wi-Fi AP的OpenVPN設定有多舒適,完全不用調整就可以匯入三大平台無腦用,Synology可不是這樣…

先說明一下我的網路配置:

[Internet]----[Asus_AP]----[Synology_DS218+]
Internet: CHT FTTH 500M/300M
AP: Router mode, DDNS service, Let's Encrypt service, OpenVPN server.
DS218+: Samba, WebDAV, OpenVPN server

DS218+除了VPN之外都不對外開放,要操作就VPN回內網,所以AC66U的VPN server還維持著當備用。

不是無腦設定

匯出的config檔是需要二次設定的,其實有寫在匯出內容的readme內,不過這種東西想也知道沒人看,而且還是英文…雖然會買NAS折騰自己的人通常英文都還OK,但這也實在是有點無言。

  1. 最少要把domain/address和port改成你自己的設定。例如我DDNS跟domain都不是用S家的服務,OpenVPN port也不是用標準的1194,就要自己修改成對應的數值。
  2. 如果你的NAS不是裸奔而是躲在router後面的話,也要去router設定對應的port forwarding之類的設定。(設定精靈會提醒)
  3. 要設定Synology NAS內部防火牆,開放給VPN的IP存取,不然會自己被擋在外面。(套件會問你要不要開放port自動帶入,但IP不會,我就中坑了)

每次都跳出"Select Certificate"很煩

因為匯出的檔案沒有包client cert,所以每一次用 OpenVPN Connect 連線的時候都會冒出 This profile doesn't include a client certificate,就要自己再按continue才能連線。

懶惰解法:直接把client cert關掉。

Reddit: Is it true Synology GUI cannot generate client VPN cert? Only through SSH? : synology
openvpn.net: How To Make The App Work With Profiles That Lack A Client Certificate/key? | OpenVPN

在ovpn config file裡面加入:setenv CLIENT_CERT 0
就這樣,在手機上也能改,我也選這個😅

正統解法:把client cert手動補上去

community.synology.com: [HOW-TO] Connect to OpenVPN server with Android apps | Synology Community

  • 匯出DiskStation的預設簽證
  • 用文字編輯器打開openvpn.ovpn,加入:
<cert>
-----BEGIN CERTIFICATE-----
(server.crt的內容)
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
(ca.key的內容)
-----END RSA PRIVATE KEY-----
</key>
<ca>
-----BEGIN CERTIFICATE-----
(ca.crt的內容)
-----END CERTIFICATE-----
</ca>

存檔,再到目標device匯入一次ovpn檔案。

結論

英文不行或是IT知識不行的直接買Asus高階Wi-Fi AP來架就好了不用折騰自己。

留言