−25%

Windows รายปี ถึง 31 ต.ค. ดูแพ็กเกจ

EQVPS
เริ่มต้นใช้งาน

VPS สำหรับ Syncthing: ออนไลน์ตลอด เข้ารหัสทุกไฟล์

peer ของ Syncthing ที่ออนไลน์ 24/7 อุปกรณ์ของคุณซิงก์ได้แม้ไม่เคยเปิดพร้อมกัน และเซิร์ฟเวอร์เก็บเฉพาะข้อมูลที่เข้ารหัสแล้ว การตั้งค่าที่ทดสอบแล้ว

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 เป็นอย่างแรก

แชร์โฟลเดอร์โดยที่เซิร์ฟเวอร์อ่านไม่ได้

บนแล็ปท็อปของคุณ (หรืออุปกรณ์ที่เชื่อถือได้เครื่องใดก็ได้):

  1. เพิ่มเซิร์ฟเวอร์เป็นอุปกรณ์ระยะไกลด้วย device ID ของมัน
  2. เปิดโฟลเดอร์ที่ต้องการซิงก์ → Sharing ติ๊กเลือกเซิร์ฟเวอร์ แล้วใส่ รหัสผ่านเข้ารหัส ข้าง ๆ เก็บรหัสผ่านนี้ไว้ในตัวจัดการรหัสผ่าน ถ้าไม่มีมัน ข้อมูลบนเซิร์ฟเวอร์ก็เป็นแค่สัญญาณรบกวน
  3. ในเว็บอินเทอร์เฟซของเซิร์ฟเวอร์ ยอมรับโฟลเดอร์และเลือกประเภท Receive Encrypted

เท่านี้เอง ลองดูว่ามีอะไรไปถึงเซิร์ฟเวอร์จริง ๆ:

find /home/syncthing -path '*syncthing-enc*' -type f | head

คุณจะเห็นพาธอย่าง …/I.syncthing-enc/C8/PICA7BFKFPSGQ06C4D4SQ50GB6E151QUNF1EOBK แทนชื่อไฟล์ของคุณ ในการทดสอบ เราค้นหาวลีจากไฟล์ที่ซิงก์บนเซิร์ฟเวอร์ ไม่เจออะไรเลย

อุปกรณ์อื่นของคุณแชร์โฟลเดอร์เดียวกันกันเองตามปกติ และแชร์กับเซิร์ฟเวอร์ด้วยรหัสผ่านเข้ารหัสเดียวกัน อุปกรณ์ที่เชื่อถือได้เครื่องใดที่รู้รหัสผ่านก็ซิงก์จากเซิร์ฟเวอร์ได้ รวมถึงแล็ปท็อปเครื่องใหม่หลังจากเครื่องเก่าพัง

พูดกันตรง ๆ

  • การซิงก์ไม่ใช่การสำรองข้อมูล การลบและการเขียนทับโดยไม่ตั้งใจก็ถูกซิงก์ไปด้วย เปิดการเก็บเวอร์ชันบนอุปกรณ์ที่เชื่อถือได้ หรือเก็บข้อมูลสำรองแยกไว้ที่อื่น
  • การเข้ารหัสซ่อนเนื้อหาและชื่อ แต่ไม่ได้ซ่อนทุกอย่าง ขนาดไฟล์และเวลาที่มีการเปลี่ยนแปลงยังหาได้จากเซิร์ฟเวอร์ สำหรับคนส่วนใหญ่ถือเป็นการแลกที่รับได้ ถ้าสำหรับคุณไม่ใช่ การตั้งค่านี้ก็ไม่เหมาะกับคุณ
  • รหัสผ่านคือกุญแจ ถ้าทำหาย สำเนาที่เข้ารหัสบนเซิร์ฟเวอร์ก็ไร้ประโยชน์ นั่นคือจุดประสงค์ และก็เป็นความเสี่ยงด้วย
  • โทรศัพท์ ไม่มีแอปมือถือทางการแล้ว Android มีแอปที่ชุมชนดูแล ส่วน iOS มีแต่ไคลเอนต์ของบุคคลที่สาม ตรวจสอบของคุณก่อนจะวางแผนโดยพึ่งมัน

ถ้าคุณต้องการเว็บอินเทอร์เฟซเต็มรูปแบบที่มีปฏิทิน รายชื่อติดต่อ และลิงก์แชร์ แทนการซิงก์เงียบ ๆ เบื้องหลัง ลองดู Nextcloud ถ้าคุณแค่อยากให้ไฟล์อยู่ทุกที่และอ่านได้เฉพาะบนอุปกรณ์ของคุณเอง นี่คือเครื่องมือที่เบากว่า

ที่เกี่ยวข้อง

พร้อม deploy แล้วหรือยัง? จ่ายด้วยคริปโต ไม่ต้อง KYC — ใช้งานได้ในราวหนึ่งนาที

Deploy เลย →

FAQ

เซิร์ฟเวอร์อ่านไฟล์ของฉันได้ไหม?

ไม่ได้ ถ้าคุณแชร์โฟลเดอร์ให้มันในฐานะอุปกรณ์ที่ไม่น่าเชื่อถือ รหัสผ่านเข้ารหัสตั้งบนอุปกรณ์ของคุณเอง แล้วเซิร์ฟเวอร์จะเก็บเนื้อหาที่เข้ารหัสภายใต้ชื่อที่ถูกสลับ ในการทดสอบของเรา ไฟล์ข้อความไปถึงเซิร์ฟเวอร์ในรูปประมาณ I.syncthing-enc/C8/PICA7… และไม่มีเนื้อหาแบบข้อความธรรมดาที่ไหนเลย ขนาดไฟล์และเวลาที่มีการเปลี่ยนแปลงยังพอเดาได้ แต่ชื่อและเนื้อหาเดาไม่ได้

Syncthing ต้องมี IP ของตัวเองไหม?

แนะนำอย่างยิ่ง อุปกรณ์ของคุณเชื่อมต่อเซิร์ฟเวอร์ที่พอร์ต 22000 (TCP และ UDP) บนแพ็กเกจ NAT ภายนอกเข้าได้แค่พอร์ต SSH Syncthing จึงหันไปใช้ relay สาธารณะ ใช้ได้ แต่ช้ากว่า และทราฟฟิกที่เข้ารหัสของคุณจะผ่าน relay ของคนอื่น

ต้องใช้ดิสก์เท่าไร?

เซิร์ฟเวอร์เก็บสำเนาเต็มของทุกโฟลเดอร์ที่คุณแชร์ให้ จึงควรคิดจากข้อมูลของคุณ ไม่ใช่จาก Syncthing เอกสารและโน้ตใส่ได้ใน 15–25 GB ส่วนคลังรูปภาพมักหมายถึงแพ็กเกจ Pro ตั้งแต่ 400 GB ขึ้นไป ซึ่งมีให้ตามคำขอ

ทำไม syncthing@sync ถึงไม่ยอมเริ่ม?

เพราะ Debian และ Ubuntu มีผู้ใช้ระบบชื่อ sync อยู่แล้ว โดยมี /bin เป็นโฮมไดเรกทอรี Syncthing พยายามสร้างการตั้งค่าใน /bin/.local แล้วล้มเพราะระบบไฟล์อ่านอย่างเดียว ให้สร้างผู้ใช้ชื่ออื่นแทน เราใช้ syncthing

นี่คือการสำรองข้อมูลหรือเปล่า?

ไม่ใช่ การซิงก์คัดลอกการลบไปด้วย ลบไฟล์บนแล็ปท็อป ไฟล์นั้นก็หายจากเซิร์ฟเวอร์ด้วย ให้เปิดการเก็บเวอร์ชันไฟล์บนอุปกรณ์ที่เชื่อถือได้ หรือมีข้อมูลสำรองแยกต่างหาก

ความคิดเห็น

ยังไม่มีความคิดเห็น เป็นคนแรกสิ

แสดงความคิดเห็น

ความคิดเห็นจะถูกตรวจสอบก่อนแสดง