#40 - ใช้ Tailscale เพื่อเข้าถึง Synology NAS จากนอกบ้าน
ปกติเวลาที่เราจะเข้าถึงอุปกรณ์ NAS อย่าง Synology จากนอกบ้านเราจะใช้ Synology QuickConnect [1] ผ่านการพิมพ์ที่อยู่เว็บไซต์ที่ลงท้ายด้วย quickconnect.to ซึ่งวิธีนี้ก็โอเคนะที่ตัว QuickConnect ทำหน้าที่เป็นตัว Relay Server ที่เป็นตัวกลางสำหรับให้ Client วิ่งผ่าน Server ตัวกลางไปยังตัว NAS โดยไม่ต้องเจอกับ Firewall โดย Traffic ที่วิ่งนั้นได้เข้ารหัสไว้เรียบร้อย
ฟังดูแล้วก็ดี แต่มันก็ไม่ได้ดีขนาดนั้น เพราะตอนที่เราใช้งานผ่านทางนี้มันทำงานได้ช้ามาก กว่าจะ Upload/Download File ได้หมดเวลาพอดี แถมยังไม่ได้ปลอดภัยอะไรขนาดนั้นถ้าเราไม่ได้เซ็ตตัว Server ไว้ให้ปลอดภัยดีพอที่จะป้องกัน Hacker เจาะระบบเข้าไปในไฟล์ของเราได้ หรือป้องกันไม่ให้โจมตีผ่านทาง Vulnerability (ช่องโหว่) ที่มีอยู่แล้วในระบบปฏิบัติการ DSM
จุดนี้เป็นสิ่งที่ทำให้เราคิดว่าเราจะใช้งานผ่านทางอื่นแทนที่จะใช้งาน QuickConnect โดยเดิมทีเราจะใช้
- Dynamic DNS ซึ่งมันก็ติดที่ว่าเราใช้งานผ่านเครือข่าย AIS ที่ต้องใช้งานผ่าน thddns.net ซึ่งเราดันลืมรหัสผ่าน วิธีนี้ก็ตกไป
- Cloudflare Zero Trust ซึ่งเราต้องเชื่อม Domain Name เข้ากับ Nameserver ของ Clouflare แถมต้องมาตั้งค่าในตัวคอมที่เราจะรีโหมดด้วยการติดตั้ง cloudflared และใช้งานได้ผ่านทางหน้าเว็บเบราวเซอร์ซึ่งไม่สะดวก วิธีนี้ก็ตกไป
จนกระทั่งมาเจอบริการอย่าง Tailscale
Tailscale
Tailscale
Tailscale [2] คือบริการ Cloud VPN ที่สร้างเครือข่ายส่วนตัวที่ปลอดภัย และใช้งานได้ง่ายผ่านโปรโตคอล WireGuard ที่เครื่องมือที่ได้รับความนิยม ส่งผลให้คอมพิวเตอร์ VM หรือคอนเทนเนอร์สามารถเชื่อมต่อ และสื่อสารกันแบบเข้ารหัส end-to-end ได้ในรูปแบบ Peer-to-peer ที่วิ่งผ่านเครือข่ายส่วนตัวอย่าง Tailnet ส่งผลให้ปลอดภัยกว่าการใช้ VPN แบบดั้งเดิม
ว่าแต่เครื่องมือ WireGuard นี่มันคืออะไร?
WireGuard
WireGuard เป็นเครื่องมือการสร้าง Tunnel เชื่อมต่อระหว่างคอมพิวเตอร์ VM หรือคอนเทนเนอร์ในรูปแบบ Peer-to-peer ที่สามารถเชื่อมต่อระหว่างอุปกรณ์ 2 อุปกรณ์ได้โดยตรง ทำให้เราได้เครือข่ายในรูปแบบ Mesh networks แต่การสร้างเครือข่าย Mesh networks เองจะดูยุ่งยากไปหน่อย เพราะมันต้องจัดการกับเรื่องเครือข่ายที่ดูยุ่งยาก แถมต้องมาจัดการกับ Encryption Keys (ที่เรียบง่ายและปลอดภัยว่า Certificates) ในแต่ละอุปกรณ์อีก
ภาพ Network จาก Wikimedia Commons อัพโหลดโดย Maksims โดยตัว Mesh Network ที่กล่าวถึงของ Tailscale จะเป็นแบบ Fully Connected
Tailscale เข้ามาแก้ปัญหาการสร้างเครือข่ายแบบ Mesh networks โดยผ่านการใช้เครื่องมือ Opensource Tailscale Node Software (หรือ Coordination Server ผ่านหน้าเว็บ login.tailscale.com) ที่จะเป็นตัวกลางสำหรับการบริหาร Encrpyiton Keys ไว้ที่ตัวเอง โดยมีหลักการทำงานดังนี้
- แต่ละโหนดในเครือข่ายจะสร้าง Public/private key ไว้ที่ตัวเอง
- แต่ละโหนดจะติดต่อกับ Coordination Server เพื่อที่จะเก็บ Public key ไว้และกำหนดตำแหน่งของโหนดนั้น ๆ สำหรับการเชื่อมต่อ
- แต่ละโหนดจะดาวน์โหลด Public key ของโหนดอื่น ๆ ที่เก็บไว้ใน Coordination Server
- แต่ละโหนดจะตั้งค่า WireGuard ด้วย Public key ที่เก็บไว้
โดยตัว Private key จะถูกเก็บไว้ในโหนดแต่ละโหนดโดยที่ไม่ได้เผยแพร่ให้โหนดอื่น หรือ Coordination server รู้ ซึ่งตัว Private key สำคัญเพราะ key นี้เป็น key ที่กำหนด Identity ของโหนดนั้น ๆ ในเครือข่ายเมื่อที่จะเชื่อมต่อเข้าหากัน ส่งผลให้โหนด 2 โหนดเชื่อมต่อระหว่างกันได้
ฟังดูแล้วโอเค ว่าแต่ตัว Coordination Server รู้ได้อย่างไรว่าจะส่ง Public key (ที่มันจะคล้ายกับ Public Key ที่ใช้ตอนเชื่อมต่อ SSH) ไปที่โหนดไหน จุดนี้จะใช้งานผ่านทาง Authenticate ระหว่างตัวโหนดกับตัว Coordination Server แล้วทางโหนดจะอัพโหลด Public key ไปเก็บไว้
แต่อย่างไรก็ดีทาง Coordination Server จะไม่ได้จัดการการ Authenticate ด้วยตัวเอง แต่ จะ Outsource ระบบ Authenticate ผ่าน OAuth2, Open ID Connect หรือ SAML โดยตัวที่นิยมที่ใช้งานกันก็ได้แก่ GMail, GSuite และ Office365 ทำให้ผู้ใช้สามารถนำบัญชีที่ใช้งานผ่าน Google Docs, Office 365 และอื่น ๆ มาล็อคอินได้เลย
ผลที่ได้ก็คือ Tailscale จะเริ่มต้นการเชื่อมต่อโหนดกับตัว Coordindation Server นั้นหลังจากที่เราล็อคอินเข้าสู่ระบบ ตัวอย่างเช่น เราดาวน์โหลดแอพไว้บนมือถือที่ใช้ iOS จาก App Store แล้วล็อคอินเข้าระบบ ทางแอพจะสร้าง Public/private keys แล้วจะแลกเปลี่ยน Public key ระหว่างโหนดแต่ละโหนดในเครือข่ายนั้น ๆ ส่งผลให้โหนดอื่นดาวน์โหลด Public key ที่สร้างจากมือถือลงไป ผลที่ได้ก็คือ เราสามารถสร้าง Mesh network แล้ว
นอกจากการสร้าง Mesh network แล้ว ทาง Tailscale แก้ปัญหาเรื่องของ IP ที่มันเปลี่ยนไปตลอดเวลา และเรื่องของ Firewall ไว้เรียบร้อย แถมยังออกแบบมาให้รองรับการเข้ารหัสการเชื่อมต่อระหว่างกันแบบ end-to-end อีกด้วย
สำหรับรายละเอียดเพิ่มเติมสามารถดูได้ในหน้านี้
แพคเกจ
เว็บ Tailscale [3] มีแพคเกจสำหรับการให้บริการในสองรูปแบบ ได้แก่ Personal กับ Business โดยแพคเกจแบบ Personal จะแบ่งได้เป็น
- Personal ที่เปิดให้ผู้ใช้ทั่วไปใช้งานได้ฟรี แต่ทางระบบจะจำกัดให้มีผู้ใช้ทั้งหมด 3 ราย และมีจำนวนเครื่องทั้งหมดสูงสุดเป็นจำนวน 100 เครื่อง อย่างไรก็ดีถ้าต้องการเพิ่มจำนวนเครื่องไปอีกก็จะต้องจ่ายด้วยราคา 0.50 ดอลลาร์สหรัฐ
- Personal Plus ที่ต้องจ่ายเงิน 5 ดอลลาร์ต่อเดือนที่รองรับผู้ใช้ได้เพิ่มขึ้นจาก 3 เป็น 6 คน ที่สามารถแชร์ให้เพื่อนกับครอบครัวได้
หน้าจอแสดงแพคเกจ Personal ของ Tailscale
ในตัวอย่างนี้เราจะใช้แพคเกจแบบ Personal แบบฟรี
ส่วนทาง Business ในบทความนี้จะไม่ได้กล่าวถึง โดยข้อมูลเพิ่มเติมสามารถดูได้ในหน้านี้
การสมัครสมาชิก
จุดนี้ทำได้ง่ายมา เพียงแค่เข้าหน้าเว็บแล้วกดไปที่ Get started - it’s free! จากนั้นก็ล็อคอินด้วยบัญชี Google, Microsoft, GitHub, Apple หรือ Passkey เพื่อสมัครสมาชิกเข้าไปยัง Tailscale ครับ
การติดตั้ง
เมื่อสมัครสมาชิกเข้าไปยังหน้าจอการจัดการโหนดที่เชื่อมต่อกับ Tailscale แล้ว ระบบจะสอบถามข้อมูลเบื้องตันว่าผู้ใช้ทำงานเกี่ยวกับอะไร และเคยใช้เครื่องมือไหนมาก่อน จุดนี้ก็ตอบได้ตามสบาย พอกดปุ่มเพื่อเข้ามาหน้าถัดไปแล้ว ระบบจะเปิดให้เพิ่มอุปกรณ์เครื่องแรกเข้าไปในเครือข่าย โดยผู้ใช้สามารถเพิ่มได้โดยการเลือกระบบปฏิบัติการ/อุปกรณ์ที่จะติดตั้ง โดย Tailscale รองรับระบบปฏิบัติการที่หลากหลายได้แก่ Windows, Linux, macOS, iPhone & iPad, Android และ Synology
หน้าจอต้อนรับหลังจากล็อคอินเข้าไปใน Tailscale ที่แสดงหน้าจอให้เพิ่มอุปกรณ์เครื่องแรกเข้าไปในเครือข่าย
โดยในบทความนี้เราจะกล่าวถึง Synology เสียก่อน ก็เพราะเราอยากให้เครื่อง NAS รองรับการเชื่อมต่อจากนอกบ้านไงล่ะ
การติดตั้งลงใน Synology
การติดตั้งลงบน Synology [4] ทำได้ไม่ยาก เพียงแค่
- เราต้องอัพเดทให้ตัว NAS เป็นรุ่นล่าสุดเสียก่อน
- จากนั้นล็อคอินเข้าไปในหน้าของ Synology เสียก่อนโดยไม่ผ่านการใช้งาน QuickConnet ด้วยผู้ใช้ที่เป็น Admin
- เข้าไปยังหน้า Synology Package Center
- ค้นหาด้วยคำว่า Tailscale จากนั้นกดติดตั้ง
- เมื่อติดตั้ง Tailscale เสร็จแล้ว ให้เข้าไปที่ Tailscale จากนั้นก็ล็อคอินด้วยผู้ใช้ที่เราได้สร้างไว้ แค่นี้เราก็เปิดให้ Synology เข้าถึงจากภายนอกในเครือข่ายเดียวกันได้แล้ว
ภาพ Tailscale ในหน้า Package Manager ของ Synology ที่ติดตั้งแล้ว
เมื่อติดตั้งลงบนอุปกรณ์ Synology แล้ว เราจำเป็นต้องติดตั้งที่อุปกรณ์อื่นเพื่อที่จะเข้าถึง Synology ได้ โดยทำได้หลายวิธีตามด้านล่างนี้
ระบบปฏิบัติการ Windows และ macOS
สำหรับ Windows กับ macOS ผู้อ่านสามารถดาวน์โหลดได้จากหน้าเว็บของ Tailscale สำหรับ Windows และ macOS ได้ครับ
ระบบปฏิบัติการ Linux
สำหรับ Linux อันนี้ทาง Tailscale ออกแบบมาให้รองรับระบบปฏิบัติการที่คนใช้กันเยอะ ๆ ก็ได้แก่ Ubuntu, Raspberrypi OS, RHEL, openSUSE, Fedora, Debian เป็นต้น โดยเราติดตั้ง Tailscale ได้โดยเข้าผ่านหน้าจอคอมมานไลน์แล้วพิมพ์คำสั่งตามด้านล่างนี้
curl -fsSL https://tailscale.com/install.sh | sh
กดปุ่ม Enter แล้วระบบจะจัดการให้อัตโนมัติ จากนั้นทำตามหน้าจอในนั้นแจ้งได้เลยก็รัน Tailscale ได้โดยการพิมพ์คำสั่ง
sudo tailscale up
ส่วนกรณีที่ต้องการดู IP (แบบ IPv4) ของคอมพิวเตอร์ของเราก็ทำได้โดยการพิมพ์คำสั่ง
tailscale ip -4
ส่วนรายละเอียดเพิ่มเติมสามารถอ่านได้ในหน้าเว็บของ Tailscale
iPhone & iPad กับ Android
สำหรับ iPhone, iPad และ Android อันนี้สามารถดาวน์โหลดจาก App Store หรือ Play Store มาติดตั้งและเปิดแอพเพื่อที่จะล็อคอินด้วยผู้ใช้ที่เราสร้างไว้ จากนั้นก็เพิ่ม VPN Profile เข้าไปในเครื่อง ร่วมกับเปิดใช้งาน VPN แค่นี้เราก็สามารถเชื่อมต่อกับเครือข่ายเดียวกันกับ Synology ได้แล้ว
การเชื่อมต่อเข้ากับ Synology
เมื่อเราเข้าไปในเครือข่ายเดียวกันกับ Synology แล้ว เราสามารถเข้าไปดู IP ได้โดย
- เข้าไปในหน้าแอพของ Tailscale
- เลือกเครื่องที่เป้น Synology
- จากนั้นดูที่ MagicDNS หรือ IPv4
- ก็อปปี้ MagicDNS หรือ IPv4 แล้ววางไว้บนแถบ Address และกดปุ่ม Enter
แค่นี้ก็สามารถเข้าไปยังหน้าล็อคอินของ Synology ได้โดยไม่ผ่าน QuickConnect เพื่อเข้าถึง NAS จากนอกบ้านได้แล้ว
หน้าจอแสดงรายการโหนดที่มีในเครือข่าย
หน้าจอแสดง MagicDNS, IPv4 และ IPv6
หน้าล็อคอินของ Synology
ที่มา
- https://www.reddit.com/r/synology/comments/t4cv93/why_quickconnect_leaves_you_vulnerable_to/
- https://tailscale.com/blog/how-tailscale-works
- https://tailscale.com/pricing
- https://tailscale.com/kb/1131/synology
Kittisak Chotikkakamthorn
จบทั้งแพทย์ + วิศวะร่วมกับผ่านการฝึกงานทางด้าน AI ที่มหาวิทยาลัยที่ไต้หวันที่พัฒนาเทคนิค Machine Learning ที่เป็น state-of-the-art (SOTA) สำหรบัการแก้ปัญหาทางการแพทย์ ปัจจุบันเขียนบล็อกโดยสนใจเกี่ยวกับทางด้าน Coding, AI, Data รวมถึงเขียนเป็นไดอารี่เป็นหลัก
ผู้อ่านสามารถส่งอีเมลมาทาง contact[at]nickuntitled.com
© 2025 Nick Untitled is licensed under CC BY 4.0 / Privacy Policy