ลง Syncthing บน Ubuntu เพื่อ Sync ข้อมูลระหว่าง Linux, Windows และ macOS

  1. ลง Syncthing บน Ubuntu เพื่อ Sync ข้อมูลระหว่าง Linux, Windows และ macOS
  2. ลง Syncthing บน Windows, macOS เพื่อใช้ Sync ไฟล์ระหว่างเครื่อง
  3. ตั้งค่า Syncthing ให้ซิงค์ไฟล์ระหว่างเครื่อง

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

  • ไม่ต้องมีไฟล์เซิฟเวอร์เป็นศูนย์กลาง ข้อมูลทั้งหมดจะอยู่บนเครื่องที่ซิงค์กันเท่านั้น
  • มีความปลอดภัยสูง การรับส่งข้อมูลทั้งหมดจะผ่านการเข้ารหัส TLS
  • สามารถใช้ได้ทั้งใน Linux, macOS, Windows ซิงค์โฟลเดอร์ข้ามระหว่างแพลทฟอร์มได้
  • ตัวโปรแกรมทำการซิงค์โดยอัตโนมัติอยู่ตลอดเวลาโดยไม่ต้องสั่ง
  • มี User interface สำหรับดูข้อมูลและตั้งค่าได้ ทั้งเป็นเว็บและ System tray

ซึ่งในบทความนี้จะอธิบายขั้นตอนการลงและใช้งาน Syncthing บน Ubuntu ผ่าน Command line โดยมีขั้นตอนดังนี้

1. เตรียมความพร้อมเซิฟเวอร์ ด้วยการเตรียม repository

ลง curl และ apt-transport-https

sudo apt install curl apt-transport-https -y

Import GPG Key

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

เพิ่ม repository

echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

จากนั้นทำการอัพเดท apt

sudo apt-get update -y

2. ลง Syncthing ด้วยคำสั่ง

sudo apt-get install syncthing -y

และตรวจสอบเวอร์ชั่นที่ลงด้วยคำสั่ง

syncthing --version

# syncthing v1.15.0-rc.6 "Fermium Flea" (go1.16.2 linux-amd64) ...

3. ตั้งค่า Syncthing ให้เป็น Systemd service บน Ubuntu

เมื่อลงเสร็จเรียบร้อยแล้ว เราจะต้องตั้งค่าให้ syncthing เป็น systemd service เพื่อที่จะจัดการผ่าน service manager ของ Ubuntu ซึ่งจะทำให้เราสั่ง service start, stop, restart ได้ และจะทำให้ syncthing เริ่มทำงานโดยอัตโนมัติเมื่อเปิดเครื่อง โดย

สร้างไฟล์ systemd service

sudo vim /etc/systemd/system/[email protected]

และใส่เนื้อหาในไฟล์ ดังนี้

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

[Install]
WantedBy=multi-user.target

จากนั้นรีโหลด servide daemon โดยใช้คำสั่ง

sudo systemctl daemon-reload

เปิดใช้งาน syncthing และตั้งค่าให้เปิดเซอร์วิสโดยอัตโนมัติเมื่อเปิดเครื่อง

sudo systemctl start [email protected]

sudo systemctl enable [email protected]

ดูสถานะของเซอร์วิส

sudo systemctl status [email protected]

หากใช้งานได้เป็นปกติ จะปรากฎข้อมูล ดังภาพ

หากทุกอย่างเรียบร้อยถึงขั้นตอนนี้ แสดงว่า syncthing ใช้งานได้แล้ว

เปิดพอร์ท Firewall

กรณีระบบมี Firewall ต้องเปิดพอร์ทเพื่อใช้งาน ได้แก่ พอร์ท 22000 สำหรับเชื่อมต่อ และพอร์ท 8384 สำหรับใช้งานผ่านหน้าเว็บไซต์ (TCP)
– สำหรับ AWS EC2 ให้เพิ่มสองพอร์ทดังกล่าวไปยัง Security Group > Inbound rules 
– สำหรับไฟร์วอลล์ ufw บท Ubuntu ให้รันคำสั่ง sudo ufw allow 8384,22000/tcp

4. ทดลองเข้าใช้งานผ่านหน้าเว็บไซต์

เมื่อลง syncthing และเปิดใช้งานเรียบร้อยแล้ว จะสามารถเข้าใช้งานผ่านหน้าเว็บได้โดยไปที่ https://YOUR_IP_ADDRESS:8384

หากยังไม่ได้ตั้งรหัสผ่าน เมื่อเข้าใช้งานหน้าเว็บครั้งแรกจะปรากฎเตือน ให้คลิกที่ Settings เพื่อไปตั้งรหัสผ่านก่อน

เมื่อคลิก Setting แล้ว ให้ไปที่แทป GUI ให้กรอกข้อมูลเพื่อตั้งชื่อ username และ password แล้วกด save

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

ข้อสังเกต: โฟลเดอร์ที่แชร์ default จะอยู่ที่ /home/ubuntu/Sync

ในโพสต่อไป จะอธิบายวิธีการลง Syncthing บน Windows และ macOS และวิธีการ Sync ข้อมูลระหว่างเครื่อง