آنچه در این مقاله میخوانید
نحوه همگامسازی دایرکتوریها با BitTorrent Sync در اوبونتو ۲۴.۰۴
۱۰ فروردین ۱۴۰۴
همگامسازی فایلها و دایرکتوریها بین سرورها و سیستمهای محلی یکی از کارهای رایج و ضروری برای بسیاری از کسانی است که با شبکههای کامپیوتری سروکار دارند. یکی از روشهای ساده و خودکار، استفاده از BitTorrent Sync است. این نرمافزار از همان پروتکل BitTorrent که معمولاً برای اشتراکگذاری فایلها بهکار میرود، برای همگامسازی دادهها بین دستگاهها استفاده میکند.
یکی از ویژگیهای مهم BitTorrent Sync این است که تمام ارتباطاتش بهطور کامل رمزگذاری شده و تنها افرادی که کد منحصر بهفردی که بهطور خودکار ساخته میشود را دارند، میتوانند به فایلها دسترسی پیدا کنند. یعنی اطلاعات شما بهصورت امن منتقل میشوند، برخلاف پروتکل BitTorrent که بهصورت عمومی برای اشتراکگذاری فایلها استفاده میشود.
در این راهنما، به شما نشان خواهیم داد که چطور BitTorrent Sync را روی دو سرور اوبونتو ۲۴.۰۴ نصب کرده و دایرکتوریهای اشتراکی خود را راهاندازی کنید. اگر هنوز سرور اوبونتو نسخه ۲۴.۰۴ را راهاندازی نکردهاید، میتوانید از راهنمای نحوه راهاندازی اولیه سرور مجازی با اوبونتو Ubuntu استفاده کنید.

در ادامه بخوانید:
- نصب BitTorrent Sync
- پیکربندی BitTorrent Sync
- پیکربندی SSL برای رابط وب BitTorrent Sync
- ایجاد دایرکتوری مشترک
- دسترسی به رابط وب BitTorrent Sync
- تست BitTorrent Sync
- جمعبندی
- سوالات متداول
نصب BitTorrent Sync
اولین قدم برای شروع، نصب نرمافزار BitTorrent Sync روی هر دو سرور است. بسیاری از مراحل این راهنما روی هر دو سرور اوبونتو مشابه خواهند بود، بنابراین مطمئن شوید که دستورات را برای هر دو سرور حتما تکرار کنید.
پکیج رسمی BitTorrent Sync در مخازن پیشفرض اوبونتو موجود نیست. با این حال، یک PPA (آرشیو بسته شخصی) وجود دارد که میتوانید از آن برای دریافت بستههای بهروز استفاده کنید.
برای هر دو سرور، این PPA را اضافه کنید تا سرورها بتوانند بستهها را با دستور زیر دانلود کنند:
sudo add-apt-repository ppa:tuxpoldo/btsync
حالا باید بستههای محلی خود را بهروزرسانی کنید تا سرورها از نرمافزار جدیدی که بهتازگی در دسترس قرار گرفته، مطلع شوند. بعد از این مرحله، BitTorrent Sync و همچنین Nginx را باید نصب کنید.
نصب Nginx برای این است که بتوانید بعداً رمزگذاری SSL را به رابط وب خود اضافه کنید.
sudo apt update
sudo apt install btsync nginx
هنگام نصب، از شما چند سوال پرسیده خواهد شد. بهتر است از تمام این سوالات با فشردن ENTER
عبور کنید.
پیشنهاد مطالعه: نحوه نصب Nginx در سرور مجازی اوبونتو Ubuntu
پیکربندی BitTorrent Sync
حالا که BitTorrent Sync نصب شد، قرار است اسکریپت پیکربندی را اجرا کنید که دوباره از شما مقادیری درخواست میکند.
برای اجرای دوباره اسکریپت و انتخاب تنظیمات خود، این دستور را در هر سرور وارد کنید:
sudo dpkg-reconfigure btsync
برای پیکربندی بیشتر تنظیمات را میتوانید با مقادیر پیشفرض قبول کنید و شما فقط باید ENTER
را فشار دهید.
در زیر، مقادیری که باید پیکربندی کنید آورده شده است:
- آدرس IP برای اتصال به رابط وب:
127.0.0.1
- نام کاربری برای دسترسی به رابط وب: هر چیزی که میخواهید انتخاب کنید. در این مثال از حساب کاربری
admin
استفاده میکنیم. - رمز عبور برای دسترسی به رابط وب: هر چیزی که میخواهید انتخاب کنید. برای نمایش از
password
استفاده میکنیم. - مقدار Umask برای تنظیم دایمون:
002
همانطور که دیدید، برای اکثر تنظیمات میتوانید مقادیر پیشفرض را بپذیرید. با این حال، مقادیر بالا بسیار مهم هستند. اگر اینها را اشتباه تنظیم کردید، دستور را دوباره اجرا کنید.
با ثبتنام در لیارا، ۱۰۰ هزار تومان اعتبار هدیه بگیرید و از سرور مجازی رایگان با کیفیت بالا و امکانات عالی استفاده کنید!
پشتیبانی ۲۴ ساعته برای کاربران سرور مجازی رایگان!
خرید سرور مجازی رایگان
پیکربندی SSL برای رابط وب BitTorrent Sync
تا اینجا BitTorrent Sync را برای بیشتر تنظیمات پیکربندی کردید. حالا باید دایرکتوریهای همگامسازی را تنظیم کنید. اما قبل از آن، نیاز به پیکربندی سرور وب Nginx با SSL داریم.
شاید متوجه شده باشید که رابط وب را بهطور خاص برای دسترسی از local loopback interface (آدرس 127.0.0.1
) تنظیم کردیم. بنابراین نمیتوانید به رابط وب هنگامی که BitTorrent Sync را روی سرور از راه دور اجرا میکنید، دسترسی داشته باشید.
دسترسی را محدود کردیم چون باوجود رمزگذاری ترافیک BitTorrent Sync، ترافیک رابط وب بهصورت متن ساده منتقل میشود. این موضوع میتواند به افرادی که در حال مشاهده ترافیک بین سرور و کامپیوتر محلی ما هستند، این امکان را بدهد که ارتباطات بین دستگاهها را ببینند.
برای حل این مشکل، Nginx را با SSL پیکربندی میکنیم تا ارتباطات از طریق SSL به رابط وب BitTorrent Sync منتقل شوند. این کار باعث میشود که بتوانید BitTorrent Sync را بهطور امن و از راه دور مدیریت کنید، بدون اینکه نگرانی از بابت دسترسی افراد غیرمجاز به دادههای حساس وجود داشته باشد.
تمام این مراحل که در ادامه میگوییم باید روی هر دو سرور انجام شود:
تولید گواهینامه و کلید SSL
اولین قدم برای راهاندازی این کار، ایجاد یک دایرکتوری برای ذخیره گواهینامه و کلید SSL است. این کار را در ساختار دایرکتوری پیکربندی Nginx مانند زیر انجام دهید:
sudo mkdir /etc/nginx/ssl
حالا میتوانید گواهینامه و کلید SSL خود را در یک مرحله با اجرای دستور زیر ایجاد کنید:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
پس از اجرای کد بالا، از شما خواسته میشود تا اطلاعاتی برای گواهینامه خود وارد کنید. فیلدها را تا حد ممکن پر کنید. تنها فیلدی که واقعاً اهمیت دارد، این مورد است:
Common Name (e.g. server FQDN or YOUR name) []:
در این فیلد، نام دامنه یا آدرس IP عمومی سرور خود را وارد کنید.
پیکربندی Nginx برای رمزگذاری ترافیک با SSL و انتقال به BitTorrent Sync
بعد از تولید گواهینامه و کلید SSL، میتوانید سرور Nginx را طوری پیکربندی کنید که هنگام ارتباط با کاربران از راه دور، از گواهینامههای SSL استفاده کنند. سپس اطلاعات را به رابط وب BitTorrent Sync که روی رابط محلی در حال گوش دادن است، منتقل کنید.
فایل سرور پیشفرض Nginx را دستنخورده نگه دارید تا در صورت نیاز در آینده از آن استفاده کنید. از آنجا که BitTorrent Sync بهطور پیشفرض روی پورت 8888 اجرا میشود، از همین پورت برای ارتباط SSL نیز استفاده خواهید کرد.
برای ایجاد یک فایل بلوک سرور جدید، یک فایل جدید با دسترسی sudo
در ویرایشگر خود باز کنید:
sudo nano /etc/nginx/sites-available/btsync
داخل فایل، باید خطوط زیر را اضافه کنید:
server {
listen <span class="highlight">server_domain_or_IP</span>:8888 ssl;
server_name <span class="highlight">server_domain_or_IP</span>;
}
access_log /var/log/nginx/access.log;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
proxy_pass http://127.0.0.1:8888;
}
} </pre>
پس از اضافه کردن کد بالا، عبارت your_server_domain_or_IP
را با نام دامنه یا آدرس IP عمومی سرور خود جایگزین کنید. با این کار به Nginx میگویید تا به پورت شبیه به پورت رابط وب BitTorrent Sync که روی رابط محلی در حال اجرا است، متصل شود.
تفاوت اینجاست که Nginx از آدرس عمومی استفاده کرده و از SSL برای رمزگذاری ترافیک استفاده میکند.
Nginx از گواهینامه SSL که ایجاد کردهاید برای رمزگذاری ترافیک به سمت کاربر استفاده میکند و سپس آن را به رابط وب BitTorrent Sync منتقل میکند. به این ترتیب، ترافیک بین سرور و کاربر بهطور کامل رمزگذاریشده باقی میماند و رابط وب BitTorrent Sync همچنان طوری عمل میکند که انگار از خود سرور به آن دسترسی دارید.
در آخر فایل را ذخیره کرده و آنرا ببندید.
حالا فقط کافیاست فایل پیکربندی را به دایرکتوری فعال Nginx لینک کنید تا فعال شود:
sudo ln -s /etc/nginx/sites-available/btsync /etc/nginx/sites-enabled/
پس از تنظیمات بالا، سرویس Nginx را ریست کنید تا تغییرات اعمال شود:
sudo service nginx restart
در نهایت حتما مطمئن شوید که این مراحل را روی هر دو سرور انجام دادهاید.
ایجاد دایرکتوری مشترک
تا اینجای کار، پیکربندی BitTorrent Sync را انجام داده و SSL و Nginx را برای رمزگذاری ارتباطات با رابط وب تنظیم کردهاید.

قبل از شروع به استفاده از رابط وب، باید دایرکتوریهایی که قصد دارید همگامسازی کنید را تنظیم کنید. به این دلیل که فایلهای همگامسازیشده توسط BitTorrent Sync از یک سرور راه دور ایجاد میشوند، این بخش از پیکربندی برای ما با اهمیت است.
در این راهنما، دایرکتوریهایی که قرار است همگامسازی شوند در مسیر /shared
روی هر دو سرور قرار دارند. حالا با دستور زیر این دایرکتوریها را ایجاد کنید:
sudo mkdir /shared
بعد از ایجاد دایرکتوری، باید مالکیت آن را به حساب کاربری root
اختصاص دهید. در همان زمان، مالکیت گروهی دایرکتوری را به گروه btsync
(که در حین نصب ایجاد شده است) دهید:
sudo chown root:btsync /shared
بعد از تعیین مالکیت، باید مجوزها را تنظیم کنید. ابتدا باید بیت setgid
را روی دایرکتوری فعال کنید تا گروه btsync
بتواند مالکیت هر فایلی که در دایرکتوری ایجاد میشود را به دست آورد.
برای اینکه این فرآیند به درستی انجام شود، باید به گروه btsync
اجازه نوشتن نیز بدهید:
sudo chmod 2775 /shared
در نهایت، از آنجا که حساب کاربری سرور معمولی شما مالک یا صاحب گروه دایرکتوری نیست، باید حساب کاربری خود را به گروه btsync
اضافه کنید. با اینکار میتوانید به محتوای دایرکتوری دسترسی داشته و با آن تعامل کنید:
sudo usermod -a -G btsync your_user
دقت کنید که بجای your_use
r باید نام کابری خود را وارد کنید.
در آخر این مرحله، برای ثبت تغییرات در محیط فعلی، باید از سیستم خارج شده و دوباره وارد شوید. برای خروج، دستور زیر را وارد کنید:
exit
حالا باید دوباره وارد سیستم شوید تا تغییرات اعمال شده به درستی اعمال شوند.
دسترسی به رابط وب BitTorrent Sync
حالا که همه چیز تنظیم شده، میتوانیم رابط وب BitTorrent Sync را ببینیم و همه چیز را کنار هم بچینیم.
برای شروع، باید هر دو سرور را در یک مرورگر وب با استفاده از پروتکل https
و پورت 8888
دسترسی پیدا کنید. آدرس باید بهاین صورت باشد، آن را در مرورگر خود وارد کنید.
https://server_domain_or_IP:8888
البته، ممکن است با یک هشدار مواجه شوید که به شکل زیر خواهد بود:

این هشدار فقط به این معناست که مرورگر شما نمیتواند طرفی که گواهی SSL شما را امضا کرده است شناسایی کند. چون ما از گواهینامههای خودامضا استفاده کردیم، این خطا طبیعی است و مشکلی ندارد. میتوانید با خیال راحت دکمه Proceed anyways
را انتخاب کنید.
بعد از آن، از شما خواسته میشود تا نام کاربری و رمز عبوری که هنگام پیکربندی BitTorrent Sync وارد کردهاید را وارد کنید. در مثال ما، نام کاربری admin
و رمز عبور password
بود.
پس از ورود به سیستم، رابط وب اصلی BitTorrent Sync را مانند شکل زیر مشاهده خواهید کرد:

افزودن دایرکتوری مشترک به سرور اول
بعد از انجام تنظیمات لازم، میتوانید دایرکتوری پیکربندیشده را به رابط وب اضافه کنید.
برای این کار، روی دکمه Add Folder
در گوشه بالای سمت راست کلیک کنید. سپس یک پنجره باز خواهد شد، از طریق آن، دایرکتوری مورد نظر را به رابط وب BitTorrent Sync اضافه کنید:

به دایرکتوری /shared
که ایجاد کردهایم بروید و روی آن کلیک کنید. باید فیلد Path
با مقدار صحیح پر شود.
در کنار فیلد Secret
، روی دکمه Generate
کلیک کنید تا یک کلید محرمانه برای دایرکتوری ایجاد شود:

سپس روی دکمه Add
در گوشه پایین سمت راست کلیک کنید. دایرکتوری شما به رابط وب BitTorrent Sync اضافه خواهد شد.
حالا یک دکمه جدید در دسترس خواهد بود. روی دکمه Secret/QR
مربوط به دایرکتوری /shared
که تازه اضافه کردهاید کلیک کنید:

پس از کلیک، یک پنجره گفتگو برای شما نمایش داده میشود که در آن، کد محرمانه (Secret) مربوط به این دایرکتوری را خواهید دید. این کد برای همگامسازی دایرکتوری با نسخه دیگری از BitTorrent Sync استفاده میشود.
برای همگامسازی با سرور دوم خود، باید کد محرمانه Full access
را از اینجا کپی کنید.
افزودن دایرکتوری مشترک به سرور دوم
حالا که سرور اول برای اشتراکگذاری دایرکتوری پیکربندی کردیم، باید برای سرور دوم نیز همینکار را انجام دهید.
مراحل بیشتر شبیه به سرور اول خواهد بود، اما با چند تفاوت جزئی:
وارد رابط وب سرور دوم بشید، اینبار با استفاده از نام دامنه یا آدرس IP سرور دوم. حتما از پروتکل https
و پورت 8888
استفاده کنید:
<pre> https://<span class="highlight">second_server_domain_or_IP</span>:8888 </pre>
دوباره هشدار SSL نمایش داده میشود. پس از ورود، به همان رابط کاربری خالی که قبلاً مشاهده کردید، منتقل خواهید شد.
حالا، مثل قبل، روی دکمه Add Folder کلیک کنید و دایرکتوری /shared
که قبلاً ایجاد کردهایم را انتخاب کنید.
در این مرحله، به جای تولید یک کد محرمانه جدید، باید از کدی که در سرور اول ایجاد شده استفاده کنیم. این کار باعث میشود که این دو سرور بهطور ایمن با هم ارتباط برقرار کنند، چرا که هر کد محرمانه منحصر به فرد و تصادفی است. کد محرمانه سرور اول را وارد کنید تا اتصال دو سرور برقرار شود.

پس از اتمام کار، روی دکمه Add
در گوشه پایین سمت راست کلیک کنید.
پس از چند لحظه، ستون Connected devices and status
در رابط اصلی با اطلاعات مربوط به سرور همراه پر خواهد شد.

پیام بالا به این معنی است که سرورهای شما به درستی با یکدیگر ارتباط برقرار کردهاند و حالا میتوانند محتوا را بهطور همزمان همگامسازی کنند.
تست BitTorrent Sync
در نهایت، برای تست تنظیماتی که انجام دادید، وارد هر یک از سرورهایی که تنظیمات همگامسازی را انجام دادهاید شوید و با دستور زیر به دایرکتوری /shared
بروید.
cd /shared
برای ایجاد 10 فایل نمونه، دستور زیر را وارد کنید:
touch file{1..10}
بعد از مدتی، در سرور دیگر باید 10 فایلی که ایجاد کردهاید را مشاهده کنید:
# On the second server
cd /shared
ls -l
total 0
-rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file1
-rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file10
-rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file2
-rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file3
. . .
تبریک میگوییم:) با موفقیت تمام مراحل را انجام دادید و اکنون سرور شما برای انتقال امن فایلها آماده است.
همین الان، بدون کمترین پیچیدگی، سرور مجازی خودتون رو در کمتر از ۳۰ ثانیه، راهاندازی کنید.
✅ عملکرد پایدار ✅ ترافیک نامحدود ✅ هزینه بهصرفه
خرید سرور مجازی اوبونتو
جمعبندی
در نهایت، این پیکربندی به شما این امکان را میدهد که سرویس را از طریق اتصال امن SSL بهطور کامل مدیریت کنید.
این اپلیکیشن بسیار انعطافپذیر است و میتوان از آن به روشهای مختلف استفاده کرد. برخی ویژگیهای جالب آن شامل اسکن رمزها بهصورت QR کد از طریق موبایل، تنظیم دسترسی فقطخواندنی به محتوا و ایجاد رمزهای یکبار مصرف برای مشتریان است. همچنین میتوانید سرورهای خود را طوری تنظیم کنید که فقط با میزبانهای خاص ارتباط برقرار کنند.
سرویس BitTorrent Sync یک سیستم کنترل نسخه ساده ارائه میدهد که با استفاده از دایرکتوری پنهان ./SyncArchive
، نسخههای قدیمی فایلها را ذخیره میکند.
سوالات متداول
1- چطور میتوانم SSL را برای BitTorrent Sync تنظیم کنم؟
ابتدا یک گواهینامه SSL بسازید و آن را در تنظیمات nginx وارد کنید تا ترافیک به صورت امن از طریق SSL رمزگذاری شود.
2- آیا میتوانم دسترسیهای خاصی را برای کاربران مختلف تنظیم کنم؟
بله، میتوانید دسترسیهای خواندن و نوشتن یا فقط خواندنی برای هر پوشه تنظیم کنید.
3- آیا BitTorrent Sync از نسخههای قبلی فایلها پشتیبانی میکند؟
بله، این سرویس نسخههای قدیمیتر فایلها را در دایرکتوری ./SyncArchive
ذخیره میکند.