Remote Access Synology NAS
Synology NAS bisa dibilang menjadi salah satu NAS yang populer digunakan di indonesia. Hal ini bisa terjadi karena kemudahan user interface yang digunakan oleh Synology. Di Synology sebenarnya sudah ada feature remote access untuk user yang tidak memiliki IP Public. Feature tersebut adalah Synology Quick Connect. Dengan Synology Quick connect, NAS akan terhubung ke server milik Synology sebagai relay sehingga bisa digunakan untuk akses NAS secara public. Kelebihan lain dari quick connect adalah fitur untuk mendeteksi apakah koneksi ke Synology NAS berasal dari jaringan public atau dari jaringan Local. Jika dari jaringan local maka secara otomatis akan diarahkan langsung menggunakan IP LAN Synology.
Bicara kelebihan tentunya ada kelemahan dari Quick connect. Synology menggunakan server terdekat sebagai relay, namun jaringan Synology tidak sebanyak provider cloud lainnya. Hal ini menyebabkan koneksi menggunakan Quick Connect memiliki latency yang tinggi dan lambat. Selain itu bandwith dari quick connect juga terbatas sehingga jika kita membutuhkan akses download file berukuran besar dapat menjadi masalah.
Mengatasi kelemahan tersebut saya menggunakan kombinasi cloudflare tunnel dan tailscale. Cloudflare tunnel berfungsi sebagai reverse proxy. Cara ini cukup mudah hanya dengan menginstall aplikasi cloudflare tunnel ke Synology NAS dan menghubungkan Synology NAS ke jaringan cloudflare tunnel yang kita buat. Saya install cloudflare tunnel dari Synology Package Center. Sebelumnya kita perlu menambahkan synology community repository

Selanjutnya adalah membuat tunnel di account cloudflare. Dari cloudflare dashboard masuk ke menu Zero Trust Home –> Network –> Tunnels lalu create tunnel. Pilih cloudflared

Beri nama tunnelnya dan akan muncul cloudflare tunnel id untuk install dan connectnya

Masuk ke Tab install and run connectors setelah save tunnelnya

karena cloudflare tunnel sudah terinstall dari synology package center, langkah selanjutnya kita tinggal jalankan script di bawah. Script ini bisa dijalankan melalui SSH synology. Jangan lupa untuk copy semua perintahnya karena token harus diinput.
Setelah tunnel terhubung kita akan menggunakan public hostname untuk mengaksesnya. Silahkan pilih domain yang akan digunakan lalu arahkan ke localhost dan port 5000 jika
Masuk ke tunnelnya lalu pilih public hostname

pilih domain dan masukan targetnya dengan localhost lalu port Synology DSM, defaultnya 5000. Jika nanti terjadi error redirect bisa gunakan port 80

Setelah save akan secara otomatis membuat record baru untuk domain/subdomain yang dipilih menggunakan CNAME record. Pastikan sebelumnya tidak ada record di domain yang dipilih. Misal sebelumnya sudah ada A record, maka harus dihapus dulu.
Pada step ini kita sudah bisa akses Synology DSM menggunakan domain yang dipilih. Koneksi sudah secara otomatis menggunakan HTTPS dengan SSL valid dari cloudflare
Salah satu kekurangan menggunakan cloudflared tunnel adalah adanya limitasi upload untuk sekali upload maksimal filenya berukuran 100MB. Sebenarnya ini bisa diatasi dengan membuah chunk tetapi perlu dari synology yang melakukan modifikasi, entah apakah sudah diimplementasikan atau belum. Kekurangan lainnya cloudflare tunnel tidak bisa membedakan traffic dari internet dan traffic dari LAN. Jika kita akses dari LAN menggunakan domain tersebut maka trafficnya keluar dulu ke cloudflare baru masuk ke synology NAS, tentunya ini tidak efisien. Kita harus ganti URL menggunakan LAN IP dari synology NAS.
Saya menambahkan kombinasi Tailscale+AdGuard Home sebagai workaround untuk mengatasi masalah ini agar koneksi dari LAN bisa direct. Konsepnya adalah menghubungkan Synology NAS ke Tailscale network. Cara cukup mudah yaitu
- Install Tailscale di Synology NAS
- Buka aplikasi tailscale di Synology NAS lalu login dengan akun Tailscale
Secara otomatis Synology NAS akan terhubung ke Tailnet Tailscale setelah proses sign-in selesai. Pada tahap ini Synology NAS sudah terhubung ke tailscale. Selanjutnya saya setting Synology NAS sebagai advertise subnet jaringan lokal. Tujuannya agar client di tailscale akses ke Synology NAS menggunakan IP LAN, dalam contoh ini IP LAN 192.168.1.100.

Setelah Advestise Subnet disetting, client yang terhubung dengan tailscale bisa langsung terhubung ke Synology NAS dengan IP 192.168.1.100. Dengan setting ini, selanjutnya kita perlu override domain yang tadi di setting di cloudflare ke IP 192.168.1.100. Setting override domain ini bisa dilakukan dengan beberapa alternative. Jika router mendung fungsi ini seperti di router OpenWRT kita bisa langsung mengganti pointing domain ke IP 192.168.1.100. Bagaimana jika router tidak mendukung? kita bisa menggunakan Ad Guard Home atau Pi-hole sebagai DNS server. Di Ad Guard Home atau Pi-hole lakukan setting DNS override.

Setelah override DNS dilakukan selanjutnya kita perlu setting di router dan Tailscale agar DNS diarahkan ke IP DNS server, dalam hal ini IP router atau Ad Guard Home. Misalnya router menggunakan IP 192.168.1.1 maka IP ini yang akan menjadi DNS server di. Jika menggunakan Ad Guard Home atau Pi-hole dengan IP 192.168.1.101 maka masukan IP ini sebagai IP DNS-nya.
Pada router, dibagian DHCP masukan IP DNS Servernya, 192.168.1.1 jika menggunakan Router atau 192.168.1.101 jika menggunakan Ad Guard Home/Pi-Hole. Selajutnya di Tailscale console, di bagian setting DNS lakukan override DNS lalu masukan IP DNS servernya sama seperti di Router.

Dengan setting ini baik di Router maupun di Tailscale akan pointing ke local IP sehingga ketika di akses di jaringan lokal traffiknya akan langsung ke Synology NAS melalui jaringan lokal. Sedangkan client yang terkoneksi Tailscale trafficnya juga akan langsung ke Synology NAS melalui jaringan peer to peer tailscale.
Cara ini saya gunakan karena terkadang saya memerlukan akses Synology DSM dari device yang tidak bisa diinstall Tailscale, sehingga aksesnya hanya bisa via Web. Dengan cara ini akses via web pada device yang tidak terhubung ke tailscale akan menggunakan Cloudflare tunnel. Sementara device yang terhubung ke Tailscale akan langsung connect peer to peer ke Synology NAS cukup dengan 1 domain name. Saya tidak perlu ganti settingan URL untuk mengakses Synology. Cara ini juga bisa digunakan untuk server selain Synology selama bisa diinstall cloudflare tunnel dan tailscale.
Semoga bermanfaat.