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 syncthing@ubuntu
sudo systemctl enable syncthing@ubuntu
ดูสถานะของเซอร์วิส
sudo systemctl status syncthing@ubuntu
หากใช้งานได้เป็นปกติ จะปรากฎข้อมูล ดังภาพ
หากทุกอย่างเรียบร้อยถึงขั้นตอนนี้ แสดงว่า 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 ข้อมูลระหว่างเครื่อง