Syncthing มีนิสัยน่ารำคาญอยู่อย่างหนึ่ง คืออุปกรณ์สองเครื่องจะซิงก์กันได้เฉพาะตอนที่ออนไลน์ทั้งคู่ แล็ปท็อปหลับ โทรศัพท์อยู่ในกระเป๋าใช้เน็ตมือถือ คอมพิวเตอร์ที่บ้านปิดอยู่ ไฟล์จึงต้องรอจังหวะที่สองเครื่องบังเอิญตื่นพร้อมกัน peer ที่ออนไลน์ตลอดเวลาแก้ปัญหานี้ได้ ทุกอย่างซิงก์ผ่านเซิร์ฟเวอร์ ไม่ว่าแต่ละเครื่องจะโผล่มาตอนไหน
ข้อโต้แย้งที่พบบ่อยคือ “แบบนั้นไฟล์ของฉันก็ไปอยู่บน VPS สิ” Syncthing มีคำตอบสำหรับเรื่องนี้ด้วย คือแชร์โฟลเดอร์ให้เซิร์ฟเวอร์ในฐานะอุปกรณ์ที่ ไม่น่าเชื่อถือ แล้วมันจะเก็บแต่ข้อมูลเข้ารหัสที่ตัวมันเองอ่านไม่ได้
เลือกแพ็กเกจไหน
ตัว Syncthing เล็กมาก ใช้ RAM ราว 25–30 MB ในการทดสอบของเรา สิ่งที่คุณซื้อจริง ๆ คือดิสก์ เพราะเซิร์ฟเวอร์เก็บสำเนาเต็มของทุกโฟลเดอร์ที่แชร์ให้
| สิ่งที่คุณซิงก์ | แพ็กเกจ |
|---|---|
| เอกสาร โน้ต ไฟล์ตั้งค่า ไฟล์ฐานข้อมูลรหัสผ่าน | Nano-IP: 2 vCPU, 1 GB, 15 GB ($8/เดือน) |
| เอกสารหลายปีกับรูปภาพบางส่วน | Micro-IP: 2 vCPU, 2 GB, 25 GB ($10/เดือน) |
| โฟลเดอร์งานและคลังไฟล์ที่ใหญ่ขึ้น | Small-IP: 4 vCPU, 4 GB, 35 GB ($16/เดือน) |
| คลังรูปภาพ | Pro-32: 400 GB ($40/เดือน), ตามคำขอ |
เลือกแพ็กเกจที่มี IPv4 ของตัวเอง อุปกรณ์ของคุณต้องเข้าถึงเซิร์ฟเวอร์ที่พอร์ต 22000 ได้ บนแพ็กเกจ NAT ผ่านได้แค่ SSH และ Syncthing จะหันไปใช้ relay สาธารณะ ซึ่งช้ากว่าและวิ่งผ่านโครงสร้างที่คุณไม่ได้ควบคุม เลือกเยอรมนีหรือฟินแลนด์ ที่ใกล้คุณกว่าและมีว่างตอนสั่งซื้อ เซิร์ฟเวอร์จ่ายด้วยคริปโตได้ ไม่ต้องทำ KYC
การติดตั้ง
ในฐานะ root บน Ubuntu 24.04 หรือ Debian 12 จาก repository ทางการของ Syncthing (ช่องเสถียร v2):
mkdir -p /etc/apt/keyrings
curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" > /etc/apt/sources.list.d/syncthing.list
apt update && apt install -y syncthing
รันด้วยผู้ใช้ของมันเองภายใต้ systemd:
useradd -m -s /bin/bash syncthing
systemctl enable --now syncthing@syncthing
ufw allow 22/tcp && ufw allow 22000/tcp && ufw allow 22000/udp && ufw enable
อย่าตั้งชื่อผู้ใช้ว่า sync ชื่อนี้เป็นของบัญชีระบบที่มี /bin เป็นโฮมไดเรกทอรีอยู่แล้ว และ syncthing@sync จะล้มพร้อมข้อผิดพลาดเรื่องระบบไฟล์อ่านอย่างเดียว เราเองก็สะดุดเรื่องนี้มาแล้ว
ดู device ID ของเซิร์ฟเวอร์ ซึ่งคุณจะนำไปวางในอุปกรณ์อื่น:
runuser -u syncthing -- syncthing device-id
เว็บอินเทอร์เฟซฟังเฉพาะที่ 127.0.0.1:8384 ซึ่งตรงกับที่ต้องการ เข้าถึงผ่าน SSH tunnel จากคอมพิวเตอร์ของคุณ:
ssh -L 8384:127.0.0.1:8384 root@YOUR_SERVER_IP
เปิด http://127.0.0.1:8384 แล้วตั้งรหัสผ่านใน Settings → GUI เป็นอย่างแรก
แชร์โฟลเดอร์โดยที่เซิร์ฟเวอร์อ่านไม่ได้
บนแล็ปท็อปของคุณ (หรืออุปกรณ์ที่เชื่อถือได้เครื่องใดก็ได้):
- เพิ่มเซิร์ฟเวอร์เป็นอุปกรณ์ระยะไกลด้วย device ID ของมัน
- เปิดโฟลเดอร์ที่ต้องการซิงก์ → Sharing ติ๊กเลือกเซิร์ฟเวอร์ แล้วใส่ รหัสผ่านเข้ารหัส ข้าง ๆ เก็บรหัสผ่านนี้ไว้ในตัวจัดการรหัสผ่าน ถ้าไม่มีมัน ข้อมูลบนเซิร์ฟเวอร์ก็เป็นแค่สัญญาณรบกวน
- ในเว็บอินเทอร์เฟซของเซิร์ฟเวอร์ ยอมรับโฟลเดอร์และเลือกประเภท Receive Encrypted
เท่านี้เอง ลองดูว่ามีอะไรไปถึงเซิร์ฟเวอร์จริง ๆ:
find /home/syncthing -path '*syncthing-enc*' -type f | head
คุณจะเห็นพาธอย่าง …/I.syncthing-enc/C8/PICA7BFKFPSGQ06C4D4SQ50GB6E151QUNF1EOBK แทนชื่อไฟล์ของคุณ ในการทดสอบ เราค้นหาวลีจากไฟล์ที่ซิงก์บนเซิร์ฟเวอร์ ไม่เจออะไรเลย
อุปกรณ์อื่นของคุณแชร์โฟลเดอร์เดียวกันกันเองตามปกติ และแชร์กับเซิร์ฟเวอร์ด้วยรหัสผ่านเข้ารหัสเดียวกัน อุปกรณ์ที่เชื่อถือได้เครื่องใดที่รู้รหัสผ่านก็ซิงก์จากเซิร์ฟเวอร์ได้ รวมถึงแล็ปท็อปเครื่องใหม่หลังจากเครื่องเก่าพัง
พูดกันตรง ๆ
- การซิงก์ไม่ใช่การสำรองข้อมูล การลบและการเขียนทับโดยไม่ตั้งใจก็ถูกซิงก์ไปด้วย เปิดการเก็บเวอร์ชันบนอุปกรณ์ที่เชื่อถือได้ หรือเก็บข้อมูลสำรองแยกไว้ที่อื่น
- การเข้ารหัสซ่อนเนื้อหาและชื่อ แต่ไม่ได้ซ่อนทุกอย่าง ขนาดไฟล์และเวลาที่มีการเปลี่ยนแปลงยังหาได้จากเซิร์ฟเวอร์ สำหรับคนส่วนใหญ่ถือเป็นการแลกที่รับได้ ถ้าสำหรับคุณไม่ใช่ การตั้งค่านี้ก็ไม่เหมาะกับคุณ
- รหัสผ่านคือกุญแจ ถ้าทำหาย สำเนาที่เข้ารหัสบนเซิร์ฟเวอร์ก็ไร้ประโยชน์ นั่นคือจุดประสงค์ และก็เป็นความเสี่ยงด้วย
- โทรศัพท์ ไม่มีแอปมือถือทางการแล้ว Android มีแอปที่ชุมชนดูแล ส่วน iOS มีแต่ไคลเอนต์ของบุคคลที่สาม ตรวจสอบของคุณก่อนจะวางแผนโดยพึ่งมัน
ถ้าคุณต้องการเว็บอินเทอร์เฟซเต็มรูปแบบที่มีปฏิทิน รายชื่อติดต่อ และลิงก์แชร์ แทนการซิงก์เงียบ ๆ เบื้องหลัง ลองดู Nextcloud ถ้าคุณแค่อยากให้ไฟล์อยู่ทุกที่และอ่านได้เฉพาะบนอุปกรณ์ของคุณเอง นี่คือเครื่องมือที่เบากว่า
ที่เกี่ยวข้อง
- โฮสต์ Nextcloud เองบน VPS: คลาวด์ส่วนตัวเต็มรูปแบบพร้อมเว็บอินเทอร์เฟซ
- VPS สำหรับ Vaultwarden: รหัสผ่านบนเซิร์ฟเวอร์ของคุณเอง
- VPS สำหรับพื้นที่จัดเก็บแบบเข้ารหัส: LUKS และสิ่งที่การเข้ารหัสบนเซิร์ฟเวอร์ทำได้และทำไม่ได้
- วิธีตั้งค่าการยืนยันตัวตนด้วยคีย์ SSH
- วิธีตั้งค่าไฟร์วอลล์ ufw
ความคิดเห็น
ยังไม่มีความคิดเห็น เป็นคนแรกสิ