สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ข้อดี & ข้อเสีย
- ขั้นตอนที่ 2: เตรียม SD: อัปโหลด Raspbian
- ขั้นตอนที่ 3: เตรียม SD: ปรับแต่งการ์ด
- ขั้นตอนที่ 4: เตรียม Raspberry Pi
- ขั้นตอนที่ 5: วิธีที่ 1: เชื่อมต่อกับ Pi โดยใช้หน้าจอ, คีย์บอร์ด, เมาส์
- ขั้นตอนที่ 6: วิธีที่ 2: เชื่อมต่อกับ Pi โดยใช้ VNC จากคอมพิวเตอร์ของคุณ
- ขั้นตอนที่ 7: เตรียม HDD
- ขั้นตอนที่ 8: กำหนดค่า Rsync: สร้าง Synchro Script
- ขั้นตอนที่ 9: กำหนดค่า Rsync: ทำ Synchro วันละครั้ง
- ขั้นตอนที่ 10: เตรียมแซมบ้า
- ขั้นตอนที่ 11: [ไม่บังคับ] Samba: กำหนดค่าการเข้าถึงแบบอ่านไปยังไดรฟ์เครือข่าย Vincent
- ขั้นตอนที่ 12: [ไม่บังคับ] Samba: เข้าถึง Log
- ขั้นตอนที่ 13: [ไม่บังคับ] Samba: ซ่อนโฟลเดอร์ที่ไม่มีประโยชน์ "/home/pi"
- ขั้นตอนที่ 14: การเข้าถึงไดรฟ์เครือข่ายจาก Windows
- ขั้นตอนที่ 15: เตรียมเครื่องที่ 2
- ขั้นตอนที่ 16: สร้าง SSH ระหว่างเครื่องในเครื่องและเครื่องระยะไกล
- ขั้นตอนที่ 17: ทดสอบ Synchro
- ขั้นตอนที่ 18: กำหนดค่าเส้นทางอินเทอร์เน็ต
- ขั้นตอนที่ 19: บรรณานุกรม
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
วัตถุประสงค์
- ในกรณีที่เกิดเหตุการณ์ที่บ้าน ฉันต้องการกู้คืนเอกสารดิจิทัลที่สำคัญของฉัน (รูปภาพ เอกสารระบุตัวตน ฯลฯ) และเลือกที่จะแบ่งปันได้
- ฉันต้องการแชร์วิธีแก้ปัญหานี้กับคนอื่น (คนที่ฉันไว้ใจ พ่อแม่ หรือเพื่อน)
- ฉันไม่ต้องการพึ่งพาคลาวด์สาธารณะ (การสมัครสมาชิก ค่าธรรมเนียม การพัฒนา GTC ฯลฯ)
หลักการ
- สร้างเครื่องจัดเก็บที่เหมือนกัน 2 เครื่อง วางไว้ในตำแหน่งที่แตกต่างกัน 2 แห่ง (เช่น บ้าน 2 หลัง)
- กำหนดพื้นที่จัดเก็บเฉพาะให้กับแต่ละตำแหน่งในแต่ละเครื่อง
- ซิงโครไนซ์พื้นที่เก็บข้อมูล 2 ช่องเป็นประจำ
เสบียง
ฮาร์ดแวร์
แต่ละเครื่องมี:
- 1x Raspberry Pi 4 B 1GB
- 1x กล่องสำหรับ Raspberry Pi 4
- แหล่งจ่ายไฟ 1x USB C 5V 3A
- การ์ด SD 1x Kingston SDC10/16GB
- 1x NAS HDD 1 ถึง WD Red Mobile
- 1x กล่อง HDD BX-2525U3
ซอฟต์แวร์ Windows
- balenaEtcher
- Raspbian buster desktop เต็ม
- mobaxterm
- โปรแกรมดู VNC (ไม่บังคับ)
แพ็คเกจ Raspbian
- Rsync
- แซมบ้า
ขั้นตอนที่ 1: ข้อดี & ข้อเสีย
ข้อดี
- โซลูชันนี้มีราคาถูก: ฉันไม่มีค่าธรรมเนียมการสมัครสมาชิกและฮาร์ดแวร์มีราคาไม่แพง
- "RAID ระยะไกล" นี้ค่อนข้างง่ายที่จะทำ ฉันไม่ต้องการวัสดุหรือเครื่องมือเพิ่มเติมเพื่อทำสิ่งนี้
- Raspberry Pi สามารถใช้กับแอปพลิเคชั่นเพิ่มเติม เช่น มีเดียเซ็นเตอร์ (kodi, …) หรือ domotic (jeedom, domoticz, …)
- ข้อมูลของฉันไม่พร้อมใช้งานบนคลาวด์สาธารณะที่อาจตกเป็นเป้าหมายของการละเมิดลิขสิทธิ์ข้อมูลจำนวนมาก
- การใช้ HDD ของ 1To การสิ้นเปลืองไฟฟ้าโดยเฉลี่ยจะเท่ากับคลาวด์
- ไฟร์วอลล์ของเราเตอร์ของฉันและการเข้ารหัส SSH ของการเชื่อมต่อของฉันทำให้การแลกเปลี่ยนข้อมูลปลอดภัย
ข้อเสีย/การปรับปรุง
- คนอื่นมีสำเนาเอกสารของฉัน ในกรณีของฉัน บุคคลนี้มาจากครอบครัวของฉัน ฉันเลยไม่สนใจ
- ฉันใช้บัญชี "pi" ที่เป็นค่าเริ่มต้น โดยมีรหัสผ่านเฉพาะสำหรับทั้งสองเครื่อง ฉันสามารถรักษาความปลอดภัยในการเข้าถึงได้อีกเล็กน้อยโดยใช้บัญชีเฉพาะที่แยกจากกันในแต่ละด้าน แทนที่จะใช้บัญชี "pi"
- ฉันพึ่งพาผู้ให้บริการอินเทอร์เน็ตและการเข้ารหัส SSH เพื่อความปลอดภัยของการเชื่อมต่อระหว่าง 2 บ้าน การวิจัยสามารถทำได้เพื่อปรับปรุงระดับความปลอดภัย
- ตอนนี้ฉันสร้างแค่ 2 พาร์ติชั่นต่อไดรฟ์ พาร์ติชันที่ 3 ที่เล็กกว่า (~5Go) อาจมีประโยชน์สำหรับกิจกรรม Raspbian อื่นๆ เพื่อรักษาการ์ด µSD
ขั้นตอนที่ 2: เตรียม SD: อัปโหลด Raspbian
จากคอมพิวเตอร์ (ในกรณีของฉัน Windows 10) ให้ทำตามคำแนะนำการติดตั้งอย่างเป็นทางการ (https://www.raspberrypi.org/downloads/raspbian/) เพื่อติดตั้ง "Raspbian Buster พร้อมเดสก์ท็อป"
เพิ่มไฟล์ว่างชื่อ "ssh" ใน "/boot/" disk
เพิ่มไฟล์ชื่อ "wpa_supplicant.conf" ใน "/boot/" disk
เปิด wpa_supplicant.conf และป้อนข้อความ:
ประเทศ=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network= { ssid="MyWiFiNetwork" psk="aVeryStrongPassword" key_mgmt=WPA-PSK }
บันทึกและปิดไฟล์
ขั้นตอนที่ 3: เตรียม SD: ปรับแต่งการ์ด
เพิ่มไฟล์ว่างชื่อ "ssh" ใน "/boot/" disk
เพิ่มไฟล์ชื่อ "wpa_supplicant.conf" ใน "/boot/" disk
เปิด wpa_supplicant.conf และป้อนข้อความ:
ประเทศ=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network= { ssid="MyWiFiNetwork" psk="aVeryStrongPassword" key_mgmt=WPA-PSK }
บันทึกและปิดไฟล์
ขั้นตอนที่ 4: เตรียม Raspberry Pi
ใส่การ์ด SD ของคุณใน Pi
เพิ่มพลังให้ Raspberry Pi เลือกวิธีการเปิดเดสก์ท็อป:
- ใช้สาย hdmi หน้าจอ คีย์บอร์ด และเมาส์
- การใช้ VNC จากคอมพิวเตอร์ของคุณ
สำหรับข้อมูลเพิ่มเติม โปรดไปที่
ขั้นตอนที่ 5: วิธีที่ 1: เชื่อมต่อกับ Pi โดยใช้หน้าจอ, คีย์บอร์ด, เมาส์
เชื่อมต่อพอร์ต Raspberry Pi HDMI0 เข้ากับหน้าจอด้วยสาย micro-hdmi เป็น hdmi
เสียบแป้นพิมพ์และเมาส์ usb (หรือแป้นพิมพ์ขนาดเล็กแบบไร้สาย เช่น "Rii Mini i8 Wireless")
เสียบแหล่งจ่ายไฟ USB C และเปิดเครื่อง Raspberry Pi
Raspbian จะเริ่มบนหน้าจอของคุณ
เมื่อเดสก์ท็อปปรากฏขึ้น ให้ตอบแผงการกำหนดค่าเพื่อสิ้นสุดการกำหนดค่า Pi ของคุณ
ขั้นตอนที่ 6: วิธีที่ 2: เชื่อมต่อกับ Pi โดยใช้ VNC จากคอมพิวเตอร์ของคุณ
เชื่อมต่อ Raspberry Pi กับเครือข่ายอีเธอร์เน็ตของคุณ (ด้วย wifi หรือด้วยสายเคเบิล)
จากคอมพิวเตอร์ของคุณ ให้เปิด Mobaxterm (หรือสีโป๊ว) เริ่มการเชื่อมต่อ ssh ใหม่ (เข้าสู่ระบบ pi รหัสผ่านราสเบอร์รี่) และกำหนดค่า Pi ของคุณ:
ssh pi@raspberry_ip
sudo raspi-config
- ในตัวเลือกการเชื่อมต่อ / VNC: ตั้งค่า Yes
- ใน Advanced options / Resolution: ตั้งค่า DMT Mode 82 1920x1080 60Hz 16:9
- ใน Advanced options / GL driver: set G1 Legacy Original non-GL desktop drive
บันทึกและออกจาก raspi-config
รีบูต Pi:
sudo รีบูต
จากคอมพิวเตอร์ของคุณ ให้เปิด VNC Viewer และเชื่อมต่อกับ Pi โดยใช้ล็อกอิน pi รหัสผ่านราสเบอร์รี่: เดสก์ท็อป Pi ควรปรากฏขึ้น
ตอบแผงการกำหนดค่าเพื่อสิ้นสุดการกำหนดค่า Pi ของคุณ
เมื่อคุณเปลี่ยนรหัสผ่าน Pi แล้ว การเชื่อมต่อ VNC สามารถปิดได้ รีสตาร์ทโดยใช้รหัสผ่านใหม่ของคุณ
ขั้นตอนที่ 7: เตรียม HDD
- เชื่อมต่อ HDD กับคอมพิวเตอร์ของคุณ
- เปิดตัวจัดการพาร์ติชั่นของ Windows เลือก HDD ของคุณ และสร้างพาร์ติชั่น NTFS 2 พาร์ติชั่น (หรือ 3 พาร์ติชั่น หากคุณต้องการพื้นที่ว่างขนาดเล็กเพื่อรักษาการ์ด µSD) ตัวอย่างเช่น ฉันตั้งชื่อ 2 ส่วนว่า "loic" และ "vincent"
- เชื่อมต่อ HDD กับ Pi: Raspbian ควรเมานต์ 2 ดิสก์บนเดสก์ท็อปโดยอัตโนมัติ ไดรฟ์เชื่อมโยงกับโฟลเดอร์ /media/pi/loic/ และ /media/pi/vincent/
ขั้นตอนที่ 8: กำหนดค่า Rsync: สร้าง Synchro Script
เปิดพรอมต์บน Pi desktop
ใน /home/pi/ สร้างสคริปต์:
mkdir /home/pi/scriptsnano /home/pi/scripts/SB_sync
ใส่ข้อความ:
#!/bin/sh
######## ตัวกำหนดค่า ########### ip_distante="192.168.0.19" port_distant="xxxxx" media_local="/media/pi/loic" media_distant="pi@${ ip_distante}:/media/pi/loic" machine_locale="RPi4_loic" machine_distante="RPi4_vincent" ################################# ## log_local="/home/pi/SB_sync_logs"log_distant="pi@${ip_distante}:/home/pi/SB_sync_logs" currentDate=`date+"%Y-%m-%d %T"`mkdir -p / home/pi/SB_sync_logs #synchro จาก ${machine_locale} ${media_local}/ vers ${machine_distante} ${media_distant}/ echo $currentDate> ${log_local}/0.synchro_en_cours_${machine_locale}_vers_${machine_distante} echo " การซิงโครไนซ์ระหว่างทาง: จาก ${machine_locale} ${media_local}/ vers ${machine_distante} ${media_distant}/ " >> ${log_local}/0.synchro_en_cours_${machine_locale}_vers_${machine_distante} ${machine_distante}} media_distant}/ " >> ${log_distant}/0.synchro_en_cours_${machine_locale}_vers_${machine_distante} echo "Compte `whoami`" > ${log_local}/1.${machine_locale}_vers_${machine_distante}.log echo "--------- -เปิดตัว: "`date +"%Y-%m-%d %T"`"----------" >> ${log_local}/1.${machine_locale}_vers_${machine_distante}.log /usr/bin/rsync -avhPS --chmod=a+rwx --delete -e "ssh -p ${port_distant}" ${media_local}/${media_distant}/ 2>&1 >> ${log_local} /1.${machine_locale}_vers_${machine_distante}.log
echo "----------Fin: "`date +"%Y-%m-%d%T"`"----------" >> ${log_local}/ 1.${machine_locale}_vers_${machine_distante}.log
rm ${log_local}/0.synchro_en_cours_${machine_locale}_vers_${machine_distante}
กำหนดค่าบรรทัดที่ 3 ถึง 7:
- แทนที่ "loic" และ "vincent" ด้วยชื่อไดรฟ์ของคุณ
- port_distant: ตอนนี้ ใช้ 22 เป็นพอร์ตระยะไกล ในขั้นตอนสุดท้าย คุณจะต้องแทนที่ด้วยค่าอื่นที่คุณเลือก (เช่น: 34567)
บันทึกไฟล์และออก
ขั้นตอนที่ 9: กำหนดค่า Rsync: ทำ Synchro วันละครั้ง
ในพรอมต์ ให้เปิด crontab:
sudo crontab -u pi -e
ที่ท้ายไฟล์ เพิ่ม cron:
0 1 * * * /usr/bin/flock -xn /tmp/flocktmp.lock -c"/home/pi/scripts/SB_sync"
ใน cron นี้ สคริปต์ SB_sync จะเปิดตัวทุกวันเวลา 01:00 น. เลือกชั่วโมงที่คุณต้องการ แต่เปลี่ยนระหว่าง 2 เครื่อง ดังนั้นการซิงโครไนซ์ 2 รายการจึงจะดำเนินการทีละเครื่อง
บันทึกและปิดไฟล์
ขั้นตอนที่ 10: เตรียมแซมบ้า
Samba เชื่อมต่อที่เก็บข้อมูล linux กับเครือข่าย windows
เปิดพรอมต์และติดตั้งแพ็คเกจ:
sudo apt-get ติดตั้ง samba samba-common-bin -y
เปิดใช้งานบัญชี "pi" โดยอัตโนมัติเพื่อเข้าถึง Samba:
sudo smbpasswd -a pi
บันทึกไฟล์กำหนดค่าเริ่มต้นของ Samba:
cp /etc/samba/smb.conf /etc/samba/smb.old
เปิดไฟล์:
sudo nano /etc/samba/smb.conf
และที่ส่วนท้ายของไฟล์ ให้เพิ่มบรรทัดเหล่านี้เพื่อกำหนดค่าไดรฟ์ของคุณเพื่อแชร์:
[เอกสาร LOIC]
ความคิดเห็น = เส้นทาง NAS de loic = /media/pi/loic ผู้ใช้ที่ถูกต้อง = @users กลุ่มบังคับ = ผู้ใช้สร้างมาสก์ = หน้ากากไดเรกทอรี 0660 = 0775 อ่านอย่างเดียว = ไม่สามารถเรียกดูได้ = ใช่ สาธารณะ = ใช่
บันทึกไฟล์และออก
ขั้นตอนที่ 11: [ไม่บังคับ] Samba: กำหนดค่าการเข้าถึงแบบอ่านไปยังไดรฟ์เครือข่าย Vincent
เปิดไฟล์การกำหนดค่า Samba:
sudo nano /etc/samba/smb.conf
และที่ส่วนท้ายของไฟล์ ให้เพิ่มบรรทัดเหล่านี้เพื่อกำหนดค่าไดรฟ์อื่นที่คุณต้องการเข้าถึง:
[เอกสาร วินเซนต์]
ความคิดเห็น = เส้นทางสำรองของวินเซนต์ = /media/pi/vincent ผู้ใช้ที่ถูกต้อง = @users กลุ่มบังคับ = ผู้ใช้สร้างมาสก์ = 0660 ไดเร็กทอรีมาสก์ = 0775 อ่านอย่างเดียว = ใช่ เรียกดูได้ = ใช่ สาธารณะ = ใช่
บันทึกไฟล์และออก
ขั้นตอนที่ 12: [ไม่บังคับ] Samba: เข้าถึง Log
เปิดไฟล์การกำหนดค่า Samba:
sudo nano /etc/samba/smb.conf
และที่ส่วนท้ายของไฟล์ ให้เพิ่มบรรทัดเหล่านี้เพื่อเข้าถึงจาก windows ไปยังสถานะการซิงโครไนซ์:
[LOG SYNCHRO]comment = "บันทึกการซิงโครไนซ์เครื่องเข้า"
เส้นทาง = /home/pi/SB_sync_logs/ ผู้ใช้ที่ถูกต้อง = @users กลุ่มบังคับ = ผู้ใช้สร้างมาสก์ = 0660 ไดเร็กทอรีมาสก์ = 0771 อ่านอย่างเดียว = ใช่ เรียกดูได้ = ใช่ สาธารณะ = ใช่
บันทึกไฟล์และออก
ขั้นตอนที่ 13: [ไม่บังคับ] Samba: ซ่อนโฟลเดอร์ที่ไม่มีประโยชน์ "/home/pi"
เปิดไฟล์การกำหนดค่า Samba:
sudo nano /etc/samba/smb.conf
ในไฟล์ ค้นหาบรรทัดต่อไปนี้และเพิ่ม ";" ที่จุดเริ่มต้นเพื่อแสดงความคิดเห็น:
;[บ้าน]
; comment = หน้าแรก ไดเร็กทอรี; เรียกดูได้ = ไม่; อ่านอย่างเดียว = ใช่; สร้างหน้ากาก = 0700; ไดเร็กทอรีมาสก์ = 0700; ผู้ใช้ที่ถูกต้อง = %S
บันทึกไฟล์และออก
ขั้นตอนที่ 14: การเข้าถึงไดรฟ์เครือข่ายจาก Windows
จากคอมพิวเตอร์ Windows ให้เปิด explorer
คลิกที่ "เครือข่าย" และรีเฟรชหน้าต่าง
คอมพิวเตอร์ที่มีชื่อ Rapberry Pi ของคุณจะปรากฏขึ้น
เปิดโดยใช้บัญชี "pi" และรหัสผ่านของคุณ
คุณควรเห็นโฟลเดอร์ที่เพิ่มไว้ก่อนหน้านี้ในไฟล์การกำหนดค่า Samba
ขั้นตอนที่ 15: เตรียมเครื่องที่ 2
เครื่องแรกของคุณพร้อมแล้ว
ทำซ้ำขั้นตอนก่อนหน้าสำหรับเครื่องที่ 2 โดยแทนที่ (เช่น) "loic" ด้วย "vincent"
เมื่อเตรียมทั้ง 2 เครื่องแล้ว คุณจะต้องแลกเปลี่ยนคีย์ ssh เพื่ออนุญาตการเข้าถึงระหว่างกัน ดูขั้นตอนถัดไป
ขั้นตอนที่ 16: สร้าง SSH ระหว่างเครื่องในเครื่องและเครื่องระยะไกล
เพื่อให้การแชร์คีย์ SSH ง่ายขึ้น Raspberry Pi แต่ละอันจะต้องเชื่อมต่อกับเครือข่ายอีเธอร์เน็ตเดียวกัน
ในแต่ละ Raspberry Pi ให้เปิดพรอมต์บนเดสก์ท็อป Pi แล้วป้อน:
ssh-keygen -q -t rsa -b 2048 -N ''
ssh-copy-id pi@IP_of_other_raspberry
ขั้นตอนที่ 17: ทดสอบ Synchro
2 เครื่องของคุณพร้อมแล้ว
คุณสามารถทดสอบการซิงโครไนซ์บนคอมพิวเตอร์ที่ใช้ Windows ของคุณ:
- เพิ่มไฟล์ในไดรฟ์เครือข่ายท้องถิ่นของคุณ (เช่น \Rpi4-loic\documents loic\test\test.txt)
- เรียกใช้สคริปต์บนเดสก์ท็อป Pi ในพื้นที่ของคุณ (เรียกใช้ SB_sync ใน /home/pi/scripts)
- ตรวจสอบว่าไฟล์ของคุณปรากฏในไดรฟ์เครือข่ายสำรอง (เช่น \Rpi4-vincent\documents loic\test\test.txt)
คุณควรจะสามารถอ่านและเขียนไฟล์ใน \Rpi4-loic\documents loic\test\ ได้ แต่จะอ่านเฉพาะไฟล์ใน \Rpi4-vincent\documents loic\test
ขั้นตอนถัดไปและขั้นตอนสุดท้ายคือการย้ายเครื่อง "รีโมต" ภายในเครือข่ายของที่อื่น และกำหนดค่าการเชื่อมต่อระหว่างเราเตอร์ 2 เครื่องผ่านอินเทอร์เน็ต
ขั้นตอนที่ 18: กำหนดค่าเส้นทางอินเทอร์เน็ต
ในกรณีของฉัน สำหรับเครื่องท้องถิ่นที่บ้าน ฉันสมัครรับข้อมูลการเข้าถึงอินเทอร์เน็ตรวมถึงเราเตอร์และ IP แบบคงที่
สำหรับเครื่องระยะไกล ผู้ให้บริการอินเทอร์เน็ตเหมือนกัน ดังนั้นการกำหนดค่าจึงง่ายกว่า และฉันไม่ต้องการ DNS
ในบ้านของฉัน:
- ในเราเตอร์ของฉัน ฉันสร้างเส้นทางของพอร์ตจาก "remote_internet_fixed_IP" ที่ "port_34567" ถึง "my_raspberry_IP" ที่พอร์ต "22"
- ในราสเบอร์รี่ของฉัน ใน /home/pi/scripts/SB_sync ฉันแทนที่ค่า "port_distant" "22" ด้วย "port_34567"
ในสถานที่ห่างไกล:
- ในเราเตอร์ ฉันสร้างเส้นทางของพอร์ตจาก "my_internet_fixed_IP" ที่ "port_34567" ถึง "my_raspberry_IP" ที่พอร์ต "22"
- ในราสเบอร์รี่ระยะไกลใน /home/pi/scripts/SB_sync ฉันแทนที่ค่า "port_distant" "22" ด้วย "port_34567"
สำหรับการสมัครของคุณ:
- คุณต้องเปลี่ยน IP และ port_34567 ด้วยตัวเอง
- ในกรณีของ IP อินเทอร์เน็ตแบบไดนามิก คุณต้องสมัคร DNS
ด้วยความช่วยเหลือของเจ้าของราสเบอร์รี่ระยะไกล ทำซ้ำการทดสอบขั้นตอนก่อนหน้า
ที่เสร็จเรียบร้อย!
ขั้นตอนที่ 19: บรรณานุกรม
ติดตั้ง Raspbian บนการ์ด µSD
ปรับแต่งการ์ด µSD หลังจากฟอร์แมต (SSH และ WiFi)
ใช้ Raspberry Pi. ของคุณ
Raspberry Pi ซิงค์กับ rysnc โดย feralhosting
พอร์ต SSH เฉพาะสำหรับ Rsync
ติดตั้งและใช้ Samba