安裝非Synology官方的套件可能會影響系統穩定度。
如果需要原廠技術支援時,原廠可能會要求您先移除非官方套件才給予協助。
[前言]
以前不管是在家還是在外,小弟一直都是用相同的網址來連接家裡的NAS。
有次偶然間發現,在家裡連接NAS的時候,速度奇慢無比。
原來在家裡以公共的網址連接家裡的NAS時,是先從電腦連到WAN,再連回自己家的NAS。
想當然爾,這樣的速度一定是個悲劇,後來懷疑問題在NAT Loopback上。
Synology說是Draytek 2920n的關係,而Draytek說自己的機器沒有問題。
後來請教了公司的MIS以後,才知道有兩個解決辦法:
1.在家裡就直接用Private IP連,在外才用網址來連。
但這方法很麻煩,尤其是用在無法自由切換設定檔的軟體上。
有些軟體想要換個連線網址,還要設定精靈從頭到尾跑一次耶~
2.自己在區網內架設DNS Server來解析IP。
但這方法有個麻煩的問題,請參考[分享]Synology DNS server套件簡單設定
所以小弟認為使用Dnsmasq這個套件是最簡單的解決方案,而且它還可以充當DNS Cache使用。
使用了Dnsmasq以後,不管你在家或在外,你通通可以用同一個網址來連接NAS。
在家就會自動將網址轉為私人IP,在外同樣的網址就會被公共的DNS server轉為公開IP。
以下就一步步跟著小弟做吧。
[步驟]
1.開啟DSM SSH連線,並重新啟動NAS。
※重新啟動是原廠的指南建議,可能這樣比較安全些吧。
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-9f30bb3f090978d79a0de52cf3ce8169.png)
2.使用PieTTY登入DSM
帳號一定要用:root
密碼則是跟原來admin的密碼一樣。
第一次以SSH連接DSM會有一些提示訊息,不用理會它,按確定就可以了。
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-e606451afb2067d1ffd006b42829b2cd.png)
3.安裝bootstrap。
可以參考原廠安裝bootstrap,ipkg指南
先確認自己的NAS是使用什麼CPU,Synology DS CPU對照。
這次我是以DS212+做示範,從以上網頁得知DS212+是使用ARM的CPU,所以要下載對應的版本。
a.改變目錄,輸入:cd /volume1/@tmp
b.下載專用的bootstrap,輸入:wget http://wizjos.endofinternet.net/synology/archief/syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh
c.將下載的檔案權限變為可執行,輸入:chmod +x syno-x07-bootstrap_1.2-7_arm.xsh
※這步驟我也曾經省略過,好像也沒有關係。
d.安裝bootstrap,輸入:sh syno-x07-bootstrap_1.2-7_arm.xsh
e.移除安裝完的檔案,輸入:rm syno-x07-bootstrap_1.2-7_arm.xsh
※這步驟我也很常省略:p
f.更新套件清單,輸入:ipkg update
g.未來如果要升級已安裝套件,則可以輸入:ipkg upgrade
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-da7ff166c0a376592d80d26c078475c5.png)
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-81c8e6602f51924d423a42adfa342e3e.png)
4.安裝方便使用的文字編輯軟體:nano。
輸入:ipkg install nano
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-868ab1382926e1f4e75d842fc5660309.png)
5.現在的DSM版本有一個問題,重新開機以後會無法執行bootstrap。
這是因為bootstrap的路徑問題,所以趁還可以執行bootstrap的時候先修改一下。
a.切換回root目錄,輸入: cd/root
b.輸入:nano .profile
c.將PATH修改為跟下圖一樣:PATH=/opt/bin:/opt/sbin:/...
d.輸入完畢後,按Ctrl + x 離開,依提示存檔
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-b08822f0f822b0529806748e925aea94.png)
6.安裝Dnamasq及修改設定。
a.安裝Dnsmasq,輸入:ipkg install dnsmasq
b.切換到dnsmasq的設定檔目錄,輸入:cd /opt/etc
c.修改dnsmasq設定檔,輸入:nano dnsmasq.conf
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-477c13ada4777c3e6ea31832b853fb90.png)
在Linux下修改檔案的設定蠻簡單的,一般設定檔的附檔名都是.conf。
另外設定檔都是文字檔,很多選項前面會有#的符號。
有#的時候,後面的文字會被當成是註解,所以#後面的選項就會變成Disable。
將#去掉,#後面的選項就會變成Enable了。
a.先找到#no-resolv,將#去掉
b.再找到# Add other name servers here, with domain specs...這段,新增
server=8.8.8.8
server=168.95.1.1
這是在告訴Dnsmasq,該向哪台Dns server查詢資料。
c.重點來了,輸入固定對應的網址與IP的關係。
找到# Add domains which you want to force to an IP address here.這段
在這裡列出來的網址與IP會被Dnsmasq優先使用,不會向外面的Dns server查詢。
例如我新增了以下這幾筆資料:
address=/test.hinet.net/192.168.1.2
address=/test.google.com/192.168.1.2
address=/test.myds.me/192.168.1.2
d.存檔,將NAS重新開機就大功告成了!
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-8f03fc6fd4ebd4be1bd354bf7d455971.png)
[測試]
1.由以下的測試可以看出端倪。
test.hinet.net是我虛擬的網址,可以正確的解析出我所設定的IP。
www,hinet.net是真實公開的網址,也可以被正確的解析出來。
換句話說,不管你在Dnsmasq裡面怎麼設定,都不會去影響到真實網址的解析。
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-5a5a525ed456b58dca02f525d1f921b7.png)
2.DNS Cache的效能。
我們使用兩套軟體來測試,分別是namebench-1.3.1-Windows.exe與DNSBench
3.namebench-1.3.1-Windows測試結果
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-b0d31de24f9207db7007d3b15b728f07.png)
第一次執行時,Dnsmasq並沒有表現的比較快。
這是正常的,因為電腦是透過Dnsmasq來轉達DNS查詢,多了一套手續,當然會慢一些。
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-abd1ae9e3ec09c4583f34f278040e4e2.png)
第二次再執行時,Dnsmasq內已經有上次查詢的結果了。
在DNS查詢結果的TTL內,Dnsmasq就不會再次向外查詢,而是直接回覆查詢的結果。
速度結果是比第一次快,同樣的區網內其他電腦也可達到加速的效果。
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-075968820dce004c5ae496e03079b54a.png)
3.以DNSBench來做測試。
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-235559d2c7eceb73ecbf8d73390bc650.png)
速度依然比公共的DNS Server快一些些。
![[分享]利用Synology NAS打造私人專屬的DNS cache](http://attach.mobile01.com/attach/201301/mobile01-03403d4c921a8e21e0dc3f4162a96cd3.png)
其他不足或不清楚的地方,歡迎再提出來討論喔:)


























































































