| SYNCTHING-CONFIG(5) | Syncthing | SYNCTHING-CONFIG(5) |
نام (NAME)
syncthing-config - پیکربندی سینکتینگ
نمای کلی (OVERVIEW)
این صفحه نحوه پیکربندی سینکتینگ (Syncthing) را برای همگامسازی فایلها، شامل راهاندازی دستگاه، پیکربندی پوشه، تنظیمات اتصال و روشهای مختلف پیکربندی از طریق رابط کاربری تحت وب (web GUI)، خط فرمان یا ویرایش مستقیم فایل پوشش میدهد.
مکانهای فایل پیکربندی (CONFIGURATION FILE LOCATIONS)
مکانهای پیشفرض دایرکتوری پیکربندی و پایگاهداده عبارتند از:
$XDG_STATE_HOME/syncthing $HOME/.local/state/syncthing $HOME/Library/Application Support/Syncthing %LOCALAPPDATA%\Syncthing
توضیحات (DESCRIPTION)
تغییر یافته در نسخه 1.27.0: مکان پیشفرض دایرکتوری پیکربندی و پایگاهداده در سیستمهای شبهیونیکس به $XDG_STATE_HOME/syncthing یا $HOME/.local/state/syncthing تغییر یافت. پیش از این، مکان پیشفرض پیکربندی $XDG_CONFIG_HOME/syncthing یا $HOME/.config/syncthing بود. دایرکتوری پایگاهداده نیز پیشتر $HOME/.config/syncthing یا در صورت تنظیم متغیر محیطی، $XDG_DATA_HOME/syncthing بود. نصبهای موجود ممکن است همچنان به جای پیشفرضهای جدیدتر از این دایرکتوریها استفاده کنند.
افزوده شده در نسخه 1.5.0: پایگاهداده و پیکربندی اکنون میتوانند به طور جداگانه تنظیم شوند. پیش از این، پایگاهداده همیشه در همان دایرکتوری پیکربندی قرار داشت.
سینکتینگ از یک دایرکتوری واحد برای ذخیره پیکربندی و کلیدهای رمزنگاری استفاده میکند. سینکتینگ همچنین یک پایگاهداده شاخص (index) به همراه فرادادههای فایل نگهداری میکند که به صورت پیشفرض در همان دایرکتوری ذخیره میشود، اگرچه این مورد قابل تغییر است.
این مکان به صورت پیشفرض $XDG_STATE_HOME/syncthing یا $HOME/.local/state/syncthing (شبهیونیکس)، $HOME/Library/Application Support/Syncthing (مک)، یا %LOCALAPPDATA%\Syncthing (ویندوز) است. این مقدار میتواند در زمان اجرا با استفاده از فلگهای --config یا --home یا متغیرهای محیطی متناظر ($STCONFDIR یا STHOMEDIR) تغییر یابد. فایلهای زیر در این دایرکتوری قرار دارند:
- config.xml
- فایل پیکربندی، با فرمت XML.
- cert.pem, key.pem
- کلید عمومی و خصوصی ECDSA دستگاه. این کلیدها مبنای شناسه دستگاه (device ID) را تشکیل میدهند. کلید باید خصوصی و محرمانه نگه داشته شود.
- https-cert.pem, https-key.pem
- گواهی و کلید برای اتصالات HTTPS رابط گرافیکی تحت وب (GUI). در صورت تمایل میتوان این موارد را با یک گواهی سفارشی برای HTTPS جایگزین کرد.
پایگاهداده به طور پیشفرض در همان دایرکتوری پیکربندی ذخیره میشود، اما مکان آن را میتوان با فلگهای --data یا --home یا متغیرهای محیطی متناظر ($STDATADIR یا STHOMEDIR) لغو و بازنویسی کرد.
دایرکتوری پایگاهداده شامل فایلهای زیر (از جمله موارد دیگر) است:
- index-*
- پایگاهداده حاوی فرادادهها و هشهای فایلهایی که در حال حاضر روی دیسک هستند و از همتایان (peers) در دسترس میباشند.
- syncthing.log
- خروجی لاگ (گزارش رویدادها)، در برخی سیستمها.
- audit-*.log
- دادههای لاگ حسابرسی (audit log)، در صورت فعال بودن.
- panic-*.log
- دادههای لاگ خرابی و کرش (crash log)، در صورت نیاز.
فرمت فایل پیکربندی (CONFIG FILE FORMAT)
در ادامه نمونهای از یک فایل پیکربندی پیشفرض نشان داده شده است (شناسهها متفاوت خواهند بود):
نکته:
<configuration version="37">
<folder id="default" label="Default Folder" group="Home" path="/Users/jb/Sync/" type="sendreceive" rescanIntervalS="3600" fsWatcherEnabled="true" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="S7UKX27-GI7ZTXS-GC6RKUA-7AJGZ44-C6NAYEB-HSKTJQK-KJHU2NO-CWV7EQW" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<minDiskFree unit="%">1</minDiskFree>
<versioning>
<cleanupIntervalS>3600</cleanupIntervalS>
<fsPath></fsPath>
<fsType>basic</fsType>
</versioning>
<copiers>0</copiers>
<pullerMaxPendingKiB>0</pullerMaxPendingKiB>
<hashers>0</hashers>
<order>random</order>
<ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS>
<pullerPauseS>0</pullerPauseS>
<maxConflicts>-1</maxConflicts>
<disableSparseFiles>false</disableSparseFiles>
<paused>false</paused>
<markerName>.stfolder</markerName>
<copyOwnershipFromParent>false</copyOwnershipFromParent>
<modTimeWindowS>0</modTimeWindowS>
<maxConcurrentWrites>16</maxConcurrentWrites>
<disableFsync>false</disableFsync>
<blockPullOrder>standard</blockPullOrder>
<copyRangeMethod>standard</copyRangeMethod>
<caseSensitiveFS>false</caseSensitiveFS>
<junctionsAsDirs>false</junctionsAsDirs>
<syncOwnership>false</syncOwnership>
<sendOwnership>false</sendOwnership>
<syncXattrs>false</syncXattrs>
<sendXattrs>false</sendXattrs>
</folder>
<device id="S7UKX27-GI7ZTXS-GC6RKUA-7AJGZ44-C6NAYEB-HSKTJQK-KJHU2NO-CWV7EQW" name="syno" group="Personal" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>dynamic</address>
<paused>false</paused>
<autoAcceptFolders>false</autoAcceptFolders>
<maxSendKbps>0</maxSendKbps>
<maxRecvKbps>0</maxRecvKbps>
<ignoredFolder time="2022-01-09T19:09:52Z" id="br63e-wyhb7" label="Foo"></ignoredFolder>
<maxRequestKiB>0</maxRequestKiB>
<untrusted>false</untrusted>
<remoteGUIPort>0</remoteGUIPort>
</device>
<gui enabled="true" tls="false">
<address>127.0.0.1:8384</address>
<apikey>k1dnz1Dd0rzTBjjFFh7CXPnrF12C49B1</apikey>
<theme>default</theme>
</gui>
<ldap></ldap>
<options>
<listenAddress>default</listenAddress>
<globalAnnounceServer>default</globalAnnounceServer>
<globalAnnounceEnabled>true</globalAnnounceEnabled>
<localAnnounceEnabled>true</localAnnounceEnabled>
<localAnnouncePort>21027</localAnnouncePort>
<localAnnounceMCAddr>[ff12::8384]:21027</localAnnounceMCAddr>
<maxSendKbps>0</maxSendKbps>
<maxRecvKbps>0</maxRecvKbps>
<reconnectionIntervalS>60</reconnectionIntervalS>
<relaysEnabled>true</relaysEnabled>
<relayReconnectIntervalM>10</relayReconnectIntervalM>
<startBrowser>true</startBrowser>
<natEnabled>true</natEnabled>
<natLeaseMinutes>60</natLeaseMinutes>
<natRenewalMinutes>30</natRenewalMinutes>
<natTimeoutSeconds>10</natTimeoutSeconds>
<urAccepted>0</urAccepted>
<urSeen>0</urSeen>
<urUniqueID></urUniqueID>
<urURL>https://data.syncthing.net/newdata</urURL>
<urPostInsecurely>false</urPostInsecurely>
<urInitialDelayS>1800</urInitialDelayS>
<autoUpgradeIntervalH>12</autoUpgradeIntervalH>
<upgradeToPreReleases>false</upgradeToPreReleases>
<keepTemporariesH>24</keepTemporariesH>
<cacheIgnoredFiles>false</cacheIgnoredFiles>
<progressUpdateIntervalS>5</progressUpdateIntervalS>
<limitBandwidthInLan>false</limitBandwidthInLan>
<minHomeDiskFree unit="%">1</minHomeDiskFree>
<releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL>
<overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect>
<tempIndexMinBlocks>10</tempIndexMinBlocks>
<unackedNotificationID>authenticationUserAndPassword</unackedNotificationID>
<trafficClass>0</trafficClass>
<setLowPriority>true</setLowPriority>
<maxFolderConcurrency>0</maxFolderConcurrency>
<crashReportingURL>https://crash.syncthing.net/newcrash</crashReportingURL>
<crashReportingEnabled>true</crashReportingEnabled>
<stunKeepaliveStartS>180</stunKeepaliveStartS>
<stunKeepaliveMinS>20</stunKeepaliveMinS>
<stunServer>default</stunServer>
<maxConcurrentIncomingRequestKiB>0</maxConcurrentIncomingRequestKiB>
<announceLANAddresses>true</announceLANAddresses>
<sendFullIndexOnUpgrade>false</sendFullIndexOnUpgrade>
<connectionLimitEnough>0</connectionLimitEnough>
<connectionLimitMax>0</connectionLimitMax>
</options>
<remoteIgnoredDevice time="2022-01-09T20:02:01Z" id="5SYI2FS-LW6YAXI-JJDYETS-NDBBPIO-256MWBO-XDPXWVG-24QPUM4-PDW4UQU" name="bugger" address="192.168.0.20:22000"></remoteIgnoredDevice>
<defaults>
<folder id="" label="" path="~" type="sendreceive" rescanIntervalS="3600" fsWatcherEnabled="true" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="S7UKX27-GI7ZTXS-GC6RKUA-7AJGZ44-C6NAYEB-HSKTJQK-KJHU2NO-CWV7EQW" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<minDiskFree unit="%">1</minDiskFree>
<versioning>
<cleanupIntervalS>3600</cleanupIntervalS>
<fsPath></fsPath>
<fsType>basic</fsType>
</versioning>
<copiers>0</copiers>
<pullerMaxPendingKiB>0</pullerMaxPendingKiB>
<hashers>0</hashers>
<order>random</order>
<ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS>
<pullerPauseS>0</pullerPauseS>
<maxConflicts>10</maxConflicts>
<disableSparseFiles>false</disableSparseFiles>
<paused>false</paused>
<markerName>.stfolder</markerName>
<copyOwnershipFromParent>false</copyOwnershipFromParent>
<modTimeWindowS>0</modTimeWindowS>
<maxConcurrentWrites>16</maxConcurrentWrites>
<disableFsync>false</disableFsync>
<blockPullOrder>standard</blockPullOrder>
<copyRangeMethod>standard</copyRangeMethod>
<caseSensitiveFS>false</caseSensitiveFS>
<junctionsAsDirs>false</junctionsAsDirs>
<syncOwnership>false</syncOwnership>
<sendOwnership>false</sendOwnership>
<syncXattrs>false</syncXattrs>
<sendXattrs>false</sendXattrs>
</folder>
<device id="" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>dynamic</address>
<paused>false</paused>
<autoAcceptFolders>false</autoAcceptFolders>
<maxSendKbps>0</maxSendKbps>
<maxRecvKbps>0</maxRecvKbps>
<maxRequestKiB>0</maxRequestKiB>
<untrusted>false</untrusted>
<remoteGUIPort>0</remoteGUIPort>
</device>
</defaults>
</configuration>
عنصر CONFIGURATION (CONFIGURATION ELEMENT)
<configuration version="37">
<folder></folder>
<device></device>
<gui></gui>
<ldap></ldap>
<options></options>
<remoteIgnoredDevice></remoteIgnoredDevice>
<defaults></defaults>
</configuration>
این عنصر ریشه (root element) است. دارای یک ویژگی (attribute) است:
- version
- نسخه پیکربندی. هر زمان که تغییری ایجاد شود که نیازمند مهاجرت (migration) از فرمتهای قبلی باشد، این مقدار افزایش مییابد.
این عنصر شامل عناصر شرح داده شده در بخشهای بعدی و هر تعداد از این عنصر فرزند اضافی است:
- remoteIgnoredDevice
- شامل شناسه دستگاهی است که باید نادیده گرفته شود. تلاشهای اتصال از این دستگاه در کنسول ثبت (لاگ) میشوند اما هرگز در رابط تحت وب (web GUI) نمایش داده نمیشوند.
عنصر FOLDER (FOLDER ELEMENT)
<folder id="default" label="Default Folder" group="Home" path="/Users/jb/Sync/" type="sendreceive" rescanIntervalS="3600" fsWatcherEnabled="true" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="S7UKX27-GI7ZTXS-GC6RKUA-7AJGZ44-C6NAYEB-HSKTJQK-KJHU2NO-CWV7EQW" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<minDiskFree unit="%">1</minDiskFree>
<versioning>
<cleanupIntervalS>3600</cleanupIntervalS>
<fsPath></fsPath>
<fsType>basic</fsType>
</versioning>
<copiers>0</copiers>
<pullerMaxPendingKiB>0</pullerMaxPendingKiB>
<hashers>0</hashers>
<order>random</order>
<ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS>
<pullerPauseS>0</pullerPauseS>
<maxConflicts>-1</maxConflicts>
<disableSparseFiles>false</disableSparseFiles>
<paused>false</paused>
<markerName>.stfolder</markerName>
<copyOwnershipFromParent>false</copyOwnershipFromParent>
<modTimeWindowS>0</modTimeWindowS>
<maxConcurrentWrites>16</maxConcurrentWrites>
<disableFsync>false</disableFsync>
<blockPullOrder>standard</blockPullOrder>
<copyRangeMethod>standard</copyRangeMethod>
<caseSensitiveFS>false</caseSensitiveFS>
<junctionsAsDirs>false</junctionsAsDirs>
<syncOwnership>false</syncOwnership>
<sendOwnership>false</sendOwnership>
<syncXattrs>false</syncXattrs>
<sendXattrs>false</sendXattrs>
</folder>
یک یا چند عنصر folder باید در فایل وجود داشته باشند. هر عنصر یک پوشه را توصیف میکند. ویژگیهای زیر را میتوان روی عنصر folder تنظیم کرد:
- id (اجباری)
- شناسه پوشه که باید یکتا باشد.
- label
- برچسب پوشه، یک نام محلی خوانا برای انسان و توصیفی است. میتواند روی هر دستگاه متفاوت، خالی و/یا مشابه با برچسب پوشههای دیگر باشد. (اختیاری)
- group
- در نسخه 2.1.0
اضافه شده
است.
گروه برای یک پوشه، یک نام محلی خوانا برای انسان و توصیفی است. اجازه میدهد پوشهها بهصورت محلی گروهبندی شوند. میتواند روی هر دستگاه متفاوت، خالی و/یا مشابه با سایر گروههای پوشه باشد. (اختیاری)
- filesystemType
- پیادهسازی داخلی سیستم فایل مورد استفاده برای دسترسی به این پوشه، که در یک فصل جداگانه به تفصیل شرح داده شده است.
- path (اجباری)
- مسیر دایرکتوری که پوشه در آن روی این دستگاه ذخیره میشود؛ به سایر دستگاهها ارسال نمیشود.
- type
- نحوه مدیریت پوشه توسط Syncthing را کنترل میکند. مقادیر ممکن عبارتند از:
- sendreceive
- پوشه در حالت پیشفرض است. تغییرات محلی را ارسال و تغییرات راه دور را دریافت میکند. توجه داشته باشید که این نوع قبلاً «readwrite» نامیده میشد که منسوخ شده است اما همچنان در پیکربندیهای ورودی پذیرفته میشود.
- sendonly
- پوشه در حالت «فقط ارسال» (send only) است – توسط Syncthing روی این دستگاه تغییر داده نخواهد شد. توجه داشته باشید که این نوع قبلاً «readonly» نامیده میشد که منسوخ شده است اما همچنان در پیکربندیهای ورودی پذیرفته میشود.
- receiveonly
- پوشه در حالت «فقط دریافت» (receive only) است – تغییرات را به سایر دستگاهها انتشار نخواهد داد.
- receiveencrypted
- باید در دستگاههای غیرقابل اعتماد (untrusted) استفاده شود، جایی که به دلیل وارد نشدن رمز عبور پوشه، دادهها قابل رمزگشایی نیستند. به دستگاههای غیرقابل اعتماد (رمزگذاریشده) مراجعه کنید.
- rescanIntervalS
- فاصله زمانی پویش مجدد (rescan) بر حسب ثانیه. در صورتی که از افزونههای خارجی برای راهاندازی پویش مجدد استفاده شود، میتوان آن را روی 0 تنظیم کرد تا غیرفعال شود.
- fsWatcherEnabled
- اگر روی true تنظیم شود، تغییرات فایلها در پوشه را شناسایی کرده و آنها را پویش میکند.
- fsWatcherDelayS
- مدت زمانی که تغییرات شناساییشده پیش از زمانبندی یک پویش انباشته میشوند (تنها در صورتی اعمال میشود که fsWatcherEnabled روی true تنظیم شده باشد).
- fsWatcherTimeoutS
- حداکثر تاخیر پیش از راهاندازی یک پویش هنگامی که فایلی بهطور مداوم در حال تغییر است. اگر تنظیم نشده یا صفر باشد، یک مقدار پیشفرض بر اساس fsWatcherDelayS محاسبه میشود.
- ignorePerms
- اگر true باشد، فایلهای مبدأ از این پوشه با فلگ «بدون بیتهای مجوز» (no permission bits) به دستگاههای راه دور اعلام میشوند. دستگاههای راه دور هنگام ایجاد فایلها از هر آنچه تنظیمات پیشفرض مجوزهایشان است استفاده خواهند کرد. کاربرد اصلی برای سیستمهای فایلی است که از مجوزها پشتیبانی نمیکنند، مانند FAT، یا محیطهایی که در آنها تغییر مجوزها غیرممکن است.
- autoNormalize
- تصحیح خودکار خطاهای نرمالسازی UTF-8 که در نام فایلها یافت میشوند. این سازوکار و نحوه راهاندازی آن در یک فصل جداگانه توضیح داده شده است.
عناصر فرزند زیر میتوانند وجود داشته باشند:
- device
- این عناصر
باید دارای
ویژگی id
باشند و
میتوانند
ویژگی introducedBy
را نیز
داشته
باشند، که
دستگاهی را
مشخص
میکند که
ما را برای
اشتراکگذاری
این پوشه با
دستگاه
مشخصشده
معرفی کرده
است. اگر
معرفیکننده
اصلی
اشتراک این
پوشه را با
این دستگاه
قطع کند،
دستگاه ما
نیز پیروی
کرده و
اشتراک
پوشه را قطع
خواهد کرد
(مشروط بر
اینکه skipIntroductionRemovals
در دستگاه
معرفیکننده
روی false باشد).
تمام دستگاههای ذکرشده دستگاههایی هستند که پوشه مربوطه را به اشتراک خواهند گذاشت. هر دستگاه ذکرشده باید یک عنصر device مجزا در ادامه فایل داشته باشد. مرسوم است که شناسه دستگاه محلی در همه پوشهها گنجانده شود. در حال حاضر اگر در فایل پیکربندی موجود نباشد، Syncthing آن را بهطور خودکار اضافه خواهد کرد.
زیرعنصر encryptionPassword حاوی رمز مخفی لازم برای رمزگشایی دادههای این پوشه در دستگاه راه دور است. در صورت خالی ماندن، دادهها بهصورت ساده و مستقیم قابل دسترسی خواهند بود (اما همچنان با رمزگذاری لایه انتقال محافظت میشوند). این سازوکار و نحوه راهاندازی آن در یک فصل جداگانه توضیح داده شده است.
- minDiskFree
- حداقل فضای خالی مورد نیازی که باید روی دیسک محل استقرار این پوشه در دسترس باشد. با کاهش مقدار به زیر این آستانه، پوشه متوقف خواهد شد. محتوای این عنصر بر اساس ویژگی unit مشخصشده تفسیر میشود. مقادیر پذیرفتهشده برای unit عبارتند از % (درصد از اندازه دیسک / حجم)، kB، MB، GB و TB. برای غیرفعال کردن روی صفر تنظیم کنید.
- versioning
- پیکربندی
نسخهبندی
(versioning) را مشخص
میکند.
همچنین ببینید:
- pullerMaxPendingKiB
- کنترل میکند که پس از رسیدن به این میزان از درخواستهای پاسخدادهنشده، ارسال درخواست به سایر دستگاهها چه زمانی متوقف شود. تعداد کشندهها (pullers) بر اساس این مقدار مورد نظر از دادههای درخواستهای معوق بهطور خودکار تنظیم میشود.
- order
- ترتیبی که فایلهای مورد نیاز باید از کلاستر دریافت (pull) شوند. در صورتی که نوع پوشه «send only» باشد هیچ تاثیری ندارد. مقادیر ممکن عبارتند از:
- random (پیشفرض)
- دریافت فایلها با ترتیب تصادفی. این گزینه برای ایجاد تعادل در منابع میان دستگاههای موجود در کلاستر بهینهسازی شده است.
- alphabetic
- دریافت فایلها بر اساس ترتیب حروف الفبای نام فایل.
- smallestFirst, largestFirst
- دریافت فایلها به ترتیب اندازه فایل؛ به ترتیب ابتدا کوچکترین و ابتدا بزرگترین.
- oldestFirst, newestFirst
- دریافت فایلها به ترتیب زمان آخرین تغییر؛ به ترتیب ابتدا قدیمیترین و ابتدا جدیدترین.
توجه داشته باشید که فایلهای پویششده بهصورت دستهای ارسال میشوند و مرتبسازی تنها روی فایلهای کشفشده اعمال میگردد. این بدان معناست که همگامسازی ممکن است با یک فایل ۱ گیگابایتی شروع شود حتی اگر یک فایل ۱ کیلوبایتی در دستگاه مبدا موجود باشد، تا زمانی که آن فایل ۱ کیلوبایتی برای دستگاه دریافتکننده شناخته شود.
- ignoreDelete
- هشدار:
اگر روی true تنظیم شود، این دستگاه وانمود میکند که دستورالعملهای حذف فایلها از سایر دستگاهها را ندیده است. این سازوکار در یک فصل جداگانه توضیح داده شده است.
- scanProgressIntervalS
- فاصله زمانی بر حسب ثانیه که اطلاعات پیشرفت پویش با آن به رابط گرافیکی (GUI) ارسال میشود. تنظیم روی 0 باعث میشود Syncthing از مقدار پیشفرض ۲ استفاده کند. اگر نیازی به مشاهده پیشرفت پویش ندارید، برای غیرفعال کردن آن را روی -1 تنظیم کنید.
- pullerPauseS
- تنظیمی برای محدود کردن نرخ تلاش مجدد کشنده (puller) هنگام دریافت فایلها. این مقدار را تغییر ندهید مگر اینکه دقیقاً بدانید چه کاری انجام میدهید.
- maxConflicts
- حداکثر تعداد نسخههای تداخل (conflict copies) که برای هر فایل نگهداری میشود. پیشفرض 10 است. مقدار -1 به معنای تعداد نامحدود است. تنظیم این مقدار روی 0 نسخههای تداخل را بهطور کلی غیرفعال میکند.
- disableSparseFiles
- بهطور پیشفرض، بلوکهای حاوی تماماً صفر نوشته نمیشوند و باعث میشوند فایلها در سیستمهای فایلی که از این قابلیت پشتیبانی میکنند بهصورت تنک (sparse) ذخیره شوند. هنگامی که روی true تنظیم شود، فایلهای تنک (Sparse Files) ایجاد نخواهند شد.
- paused
- اگر این پوشه (بهطور موقت) تعلیق شده باشد، برابر با true است.
- markerName
- نام یک دایرکتوری یا فایل در ریشه پوشه که بهعنوان نشانگر (marker) استفاده میشود - برای هدف آن به marker FAQ مراجعه کنید. دایرکتوری نشانگر توسط Syncthing تنها برای حالت پیشفرض .stfolder ایجاد میشود و در غیر این صورت ایجاد نخواهد شد.
- copyOwnershipFromParent
- در سیستمهای یونیکس، سعی میکند مالکیت فایل/پوشه را از دایرکتوری والد (دایرکتوری که در آن قرار دارد) کپی کند. نیازمند اجرای Syncthing با دسترسی کاربر ارشد (privileged user) یا اعطای قابلیتهای بیشتر به آن (مانند CAP_CHOWN در لینوکس) است.
- modTimeWindowS
- اختلاف برچسب زمان تغییر مجاز هنگام مقایسه فایلها برای برابری. برای استفاده در سیستمهای فایلی که دارای برچسبهای زمان تغییر ناپایداری هستند که ممکن است پس از ثبت در طول آخرین عملیات نوشتن تغییر کنند. مقدار پیشفرض در اندروید هنگامی که پوشه در یک پارتیشن FAT قرار دارد برابر با 2 و در غیر این صورت 0 است.
- maxConcurrentWrites
- حداکثر تعداد عملیات نوشتن همزمان در حین همگامسازی. افزایش این مقدار ممکن است بسته به فضای ذخیرهسازی زیربنایی، عملکرد دیسک را افزایش یا کاهش دهد. پیشفرض 16 است.
- disableFsync
- هشدار:
اعمال عملیات فایل روی دیسک پیش از ثبت آنها در پایگاه داده را غیرفعال میکند. غیرفعال کردن fsync میتواند منجر به آسیبدیدگی دادهها (data corruption) شود. این سازوکار در یک فصل جداگانه توضیح داده شده است.
- blockPullOrder
- ترتیبی که
بلوکهای
یک فایل
بارگیری
(دانلود)
میشوند.
این گزینه
سرعت
انتشار
بخشهای
مختلف فایل
را میان
دستگاههای
متصل کنترل
میکند، به
بهای تحمیل
فشار بیشتر
بر حافظه
ذخیرهسازی.
گزینههای موجود:
- standard (پیشفرض)
- بلوکهای یک فایل به N توالی پیوسته و مساوی تقسیم میشوند که در آن N تعداد دستگاههای متصل است. هر دستگاه شروع به دانلود توالی اختصاصی خود میکند و پس از آن توالیهای سایر دستگاهها را بهصورت تصادفی انتخاب مینماید. توزیع داده قابل قبولی را فراهم کرده و حداقل فشار را به دیسکهای گردان (spinning disk) وارد میکند.
- random
- بلوکهای یک فایل با ترتیب تصادفی دانلود میشوند. توزیع دادههای عالی فراهم میکند، اما فشار بسیار زیادی به درایوهای دیسک گردان وارد میسازد.
- inOrder
- بلوکهای یک فایل بهصورت متوالی، از ابتدا تا انتها دانلود میشوند. برای درایوهای دیسک گردان مناسب است، اما بهبودی در توزیع دادهها ایجاد نمیکند.
- copyRangeMethod
- انتخاب روشی را برای کپی دادهها میان فایلها فراهم میکند. میتوان از این گزینه برای بهینهسازی کپیها در سیستمهای فایل شبکهای، بهبود سرعت کپیهای بزرگ یا کلون کردن دادهها با استفاده از قابلیت copy-on-write در صورت پشتیبانی سیستم فایل زیربنایی، استفاده کرد. این سازوکار در یک فصل جداگانه توضیح داده شده است.
- caseSensitiveFS
- با غیرفعال کردن بررسیهای امنیتی اضافی برای سیستمهای فایل غیرحساس به حروف بزرگ و کوچک (case insensitive)، بر عملکرد تأثیر میگذارد. این سازوکار و نحوه راهاندازی آن در یک فصل جداگانه توضیح داده شده است.
- junctionsAsDirs
- در صورت تنظیم روی true، با اتصالات دایرکتوری (junctions) در سامانه NTFS مانند دایرکتوریهای معمولی رفتار میشود.
- syncOwnership
- اگر روی true تنظیم شود، مالکیت فایل و دایرکتوری همگامسازی میشود. برای اطلاعات بیشتر به syncOwnership مراجعه کنید.
- sendOwnership
- اگر روی true تنظیم شود، اطلاعات مالکیت فایل و دایرکتوری پویش میشود. برای اطلاعات بیشتر به sendOwnership مراجعه کنید.
- syncXattrs
- اگر روی true تنظیم شود، ویژگیهای گسترشیافته (extended attributes) فایل و دایرکتوری همگامسازی میشوند. برای اطلاعات بیشتر به syncXattrs مراجعه کنید.
- sendXattrs
- اگر روی true تنظیم شود، ویژگیهای گسترشیافته فایل و دایرکتوری پویش شده و به سایر دستگاهها ارسال میشوند. برای اطلاعات بیشتر به sendXattrs مراجعه کنید.
- blockIndexing
- در نسخه 2.1.0
اضافه شده
است.
مشخص میکند که آیا برای پوشه از نمایهسازی بلوکی (block indexing) استفاده شود یا خیر؛ مقدار پیشفرض برای پوشههای ارسال-دریافت و فقط-دریافت برابر با true است. نمایهسازی بلوکی این امکان را برای Syncthing فراهم میکند که بلوکهای داده را بین فایلها (حتی در پوشههای مختلف) دوباره استفاده کند، اما نیازمند نگهداری نمایهای از هش تکتک بلوکها است. این نمایه برای پوشههای بزرگ میتواند پرهزینه باشد، بنابراین میتوان نمایهسازی را در ازای مصرف پهنای باند بیشتر برای انتقال غیرفعال کرد.
عنصر DEVICE (DEVICE ELEMENT)
<device id="S7UKX27-GI7ZTXS-GC6RKUA-7AJGZ44-C6NAYEB-HSKTJQK-KJHU2NO-CWV7EQW" name="syno" group="Personal" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="2CYF2WQ-AKZO2QZ-JAKWLYD-AGHMQUM-BGXUOIS-GYILW34-HJG3DUK-LRRYQAR">
<address>dynamic</address>
<paused>false</paused>
<autoAcceptFolders>false</autoAcceptFolders>
<maxSendKbps>0</maxSendKbps>
<maxRecvKbps>0</maxRecvKbps>
<ignoredFolder time="2022-01-09T19:09:52Z" id="br63e-wyhb7" label="Foo"></ignoredFolder>
<maxRequestKiB>0</maxRequestKiB>
<untrusted>false</untrusted>
<remoteGUIPort>0</remoteGUIPort>
<numConnections>0</numConnections>
</device>
<device id="2CYF2WQ-AKZO2QZ-JAKWLYD-AGHMQUM-BGXUOIS-GYILW34-HJG3DUK-LRRYQAR" name="syno local" compression="metadata" introducer="true" skipIntroductionRemovals="false" introducedBy="">
<address>tcp://192.0.2.1:22001</address>
<paused>true</paused>
<allowedNetwork>192.168.0.0/16</allowedNetwork>
<autoAcceptFolders>false</autoAcceptFolders>
<maxSendKbps>100</maxSendKbps>
<maxRecvKbps>100</maxRecvKbps>
<maxRequestKiB>65536</maxRequestKiB>
<untrusted>false</untrusted>
<remoteGUIPort>8384</remoteGUIPort>
<numConnections>0</numConnections>
</device>
یک یا چند عنصر device باید در فایل وجود داشته باشند. هر عنصر یک دستگاه حاضر در کلاستر را توصیف میکند. مرسوم است که یک عنصر device برای دستگاه محلی گنجانده شود؛ Syncthing در حال حاضر در صورت عدم وجود، آن را اضافه خواهد کرد. ویژگیهای زیر را میتوان روی عنصر device تنظیم کرد:
- id (اجباری)
- شناسه دستگاه (device ID).
- name
- یک نام ملموس برای دستگاه. (اختیاری)
- group
- در نسخه 2.1.0
اضافه شده
است.
گروه برای یک دستگاه، یک نام محلی خوانا برای انسان و توصیفی است. اجازه میدهد دستگاهها بهصورت محلی در کنار هم گروهبندی شوند. میتواند روی هر دستگاه متفاوت، خالی و/یا مشابه سایر گروههای دستگاه باشد. (اختیاری)
- compression
- اینکه آیا هنگام ارسال پیامها به این دستگاه از فشردهسازی پروتکل استفاده شود یا خیر. مقادیر ممکن عبارتند از:
- metadata
- فشردهسازی بستههای فراداده (متادیتا)، مانند اطلاعات ایندکس. فراداده معمولاً بسیار فشردهسازیپذیر است، بنابراین این یک پیشفرض مناسب محسوب میشود.
- always
- فشردهسازی تمامی بستهها، از جمله دادههای فایل. در صورتی توصیه میشود که محتوای پوشهها عمدتاً دادههای فشردهپذیر مانند اسناد یا فایلهای متنی باشند.
- never
- غیرفعال کردن تمام فشردهسازیها.
- introducer
- اگر این
دستگاه
باید به
عنوان
معرفیکننده
(introducer) مورد
اعتماد
باشد، روی true
تنظیم
میشود؛
یعنی ما
باید هنگام
اتصال،
لیست
دستگاههای
آن را برای
هر پوشه کپی
کنیم.
همچنین ببینید (SEE ALSO):
- skipIntroductionRemovals
- اگر میخواهید فقط معرفیها را دنبال کنید و لغو معرفیها (de-introductions) را اعمال نکنید، روی true تنظیم کنید. برای مثال، در صورت فعال بودن این گزینه، دستگاهی را که به ما معرفی شده است حذف نخواهیم کرد، حتی اگر معرفیکننده اصلی دیگر آن دستگاه راه دور را به عنوان دستگاه شناختهشده فهرست نکند.
- introducedBy
- مشخص میکند کدام دستگاه ما را به این دستگاه معرفی کرده است. فقط برای دنبال کردن لغو معرفیها (de-introductions) استفاده میشود.
- certName
- نام عمومی (Common Name) گواهی دستگاه، در صورتی که مقدار پیشفرض «syncthing» نباشد.
از میان عناصر فرزند زیر، حداقل یک فرزند address باید وجود داشته باشد.
- address (اجباری: حداقل یک مورد باید وجود داشته باشد.)
- حاوی یک آدرس یا نام هاست (میزبان) برای استفاده هنگام تلاش برای اتصال به این دستگاه است. ورودیهایی غیر از dynamic به یک پیشوند مخصوص پروتکل نیاز دارند. برای پروتکل TCP میتوان از پیشوندهای tcp:// (دوگانهپشته / dual-stack)، tcp4:// (فقط IPv4) یا tcp6:// (فقط IPv6) استفاده کرد. پیشوندها برای پروتکل QUIC نیز مشابه هستند: quic://، quic4:// و quic6:// توجه داشته باشید که آدرسهای IP نیازی به استفاده از پیشوندهای IPv4 یا IPv6 ندارند؛ این پیشوندها اختیاری هستند. فرمتهای پذیرفتهشده عبارتند از:
- آدرس IPv4 (tcp://192.0.2.42)
- از پورت پیشفرض (22000) استفاده میشود.
- آدرس IPv4 و پورت (tcp://192.0.2.42:12345)
- آدرس و پورت دقیقاً همانطور که مشخص شده استفاده میشوند.
- آدرس IPv6 (tcp://[2001:db8::23:42])
- از پورت پیشفرض (22000) استفاده میشود. آدرس باید درون براکتهای کروشه قرار گیرد.
- آدرس IPv6 و پورت (tcp://[2001:db8::23:42]:12345)
- آدرس و پورت دقیقاً همانطور که مشخص شده استفاده میشوند. آدرس باید درون براکتهای کروشه قرار گیرد.
- نام هاست (tcp6://fileserver)
- نام هاست روی پورت پیشفرض (22000) استفاده خواهد شد و تلاش برای برقراری اتصالات فقط از طریق IPv6 انجام میشود.
- نام هاست و پورت (tcp://fileserver:12345)
- نام هاست روی پورت مشخصشده استفاده خواهد شد و بسته به وضوح نام (name resolution)، تلاش برای برقراری اتصال از طریق هر دو پروتکل IPv4 و IPv6 صورت میگیرد.
- dynamic
- کلمه dynamic (بدون هیچ پیشوندی) به این معنی است که از کشف محلی و سراسری برای یافتن دستگاه استفاده شود.
میتوانید چندین آدرس تعیین کنید و آن را با کلمه کلیدی dynamic ترکیب نمایید؛ برای مثال:
<device id="...">
<address>tcp://192.0.2.1:22001</address>
<address>quic://192.0.1.254:22000</address>
<address>dynamic</address>
</device>
در رابط گرافیکی (GUI)، چندین مقدار با کاما از یکدیگر جدا میشوند.
- paused
- مقدار True در صورتی که همگامسازی با این دستگاه (بهطور موقت) متوقف یا معلق شده باشد.
- allowedNetwork
- در صورت تعیین شدن، اتصالات به این دستگاه را فقط به این شبکه محدود میکند. این سازوکار با جزئیات در یک فصل جداگانه توصیف شده است. برای پیکربندی چندین شبکه، میتوانید: تگهای <allowedNetwork> را در فایل پیکربندی تکرار کنید یا چندین شبکه را با کاما در رابط کاربری گرافیکی وارد نمایید.
- autoAcceptFolders
- اگر true باشد، پوشههای بهاشتراکگذاشتهشده از این دستگاه راه دور بهطور خودکار اضافه شده و بهصورت محلی تحت مسیر پیشفرض همگامسازی میشوند. برای نام پوشه، Syncthing تلاش میکند از برچسب دستگاه راه دور استفاده کند، و اگر همان برچسب از قبل وجود داشته باشد، سپس تلاش میکند از شناسه پوشه استفاده نماید. اگر آن شناسه نیز وجود داشته باشد، پوشه صرفاً برای پذیرش دستی پیشنهاد میشود. یک پوشه محلی که از قبل با همان شناسه اضافه شده باشد، به جای ایجاد جداگانه، صرفاً به اشتراک گذاشته خواهد شد.
- maxSendKbps
- حداکثر نرخ ارسال برای استفاده در این دستگاه. با وجود اینکه نام پیکربندی شبیه به کیلوبیت بر ثانیه به نظر میرسد، اما واحد آن کیبیبایت بر ثانیه است.
- maxRecvKbps
- حداکثر نرخ دریافت برای استفاده در این دستگاه. با وجود اینکه نام پیکربندی شبیه به کیلوبیت بر ثانیه به نظر میرسد، اما واحد آن کیبیبایت بر ثانیه است.
- ignoredFolder
- شامل شناسه پوشهای است که باید نادیده گرفته شود. این پوشه همیشه هنگام اعلان شدن از سوی دستگاه راه دور مربوطه نادیده گرفته خواهد شد؛ یعنی این مورد ثبت (لاگ) میشود، اما هیچ پنجرهای در رابط وب نشان داده نخواهد شد. چندین پوشه نادیدهگرفتهشده با تکرار تگهای <ignoredFolder> در فایل پیکربندی مشخص میشوند.
- maxRequestKiB
- حداکثر میزان دادهای که میتواند در درخواستها به سمت این دستگاه معلق باشد. واحد آن کیبیبایت است.
- remoteGUIPort
- در صورت تنظیم روی یک عدد صحیح مثبت، رابط گرافیکی یک پیوند HTTP به آدرس IP که در حال حاضر برای همگامسازی استفاده میشود، نمایش میدهد. فقط پورت TCP با مقدار مشخصشده در اینجا جایگزین میشود. توجه داشته باشید که هرگونه فوروارد پورت یا تنظیمات فایروال باید بهصورت دستی انجام شود و این پیوند به دلیل محدودیتهای مرورگرهای مدرن احتمالاً برای آدرسهای IPv6 محلی پیوند (link-local) کار نخواهد کرد.
- untrusted
- این مقدار بولی یک دستگاه خاص را به عنوان غیرقابلاعتماد (untrusted) مشخص میکند، که مانع از هرگونه اشتراکگذاری دادههای رمزگذارینشده با آن میشود. سپس هر پوشه بهاشتراکگذاشتهشده با آن دستگاه نیاز به تنظیم گذرواژه رمزگذاری دارد، یا باید از قبل بهصورت محلی از نوع «دریافت رمزگذاریشده» باشد. به توضیحات مفصل تحت Untrusted (Encrypted) Devices مراجعه کنید.
- numConnections
- تعداد اتصالات به این دستگاه. برای اطلاعات بیشتر numConnections را ببینید.
عنصر GUI (GUI ELEMENT)
<gui enabled="true" tls="false">
<address>127.0.0.1:8384</address>
<apikey>k1dnz1Dd0rzTBjjFFh7CXPnrF12C49B1</apikey>
<theme>default</theme>
</gui>
باید دقیقاً یک عنصر gui وجود داشته باشد. پیکربندی رابط گرافیکی کاربر همچنین توسط REST API و Event API استفاده میشود. صفتهای زیر میتوانند روی عنصر gui تنظیم شوند:
- enabled
- اگر برابر با true نباشد، رابط گرافیکی کاربر و API راهاندازی نخواهند شد.
- tls
- اگر روی true تنظیم شود، TLS (HTTPS) اجباری خواهد شد. درخواستهای غیر HTTPS به HTTPS تغییر مسیر داده میشوند. وقتی روی false تنظیم شود، اتصالات TLS همچنان امکانپذیر هستند اما الزامی نیستند.
عناصر فرزند زیر میتوانند وجود داشته باشند:
- address (الزامی: دقیقاً یک عنصر باید وجود داشته باشد.)
- آدرس گوش دادن (listen address) را تنظیم میکند. فرمتهای آدرس مجاز عبارتند از:
- آدرس و پورت IPv4 (127.0.0.1:8384)
- آدرس و پورت همانطور که داده شدهاند استفاده میشوند.
- آدرس و پورت IPv6 ([::1]:8384)
- آدرس و پورت همانطور که داده شدهاند استفاده میشوند. آدرس باید درون براکت قرار گیرد.
- نویسه عام (Wildcard) و پورت (0.0.0.0:12345, [::]:12345, :12345)
- این موارد معادل یکدیگرند و باعث میشوند Syncthing روی تمام رابطها از طریق هر دو IPv4 و IPv6 گوش فرا دهد.
- مکان سوکت یونیکس (/var/run/st.sock)
- اگر آدرس یک مسیر مطلق باشد، به عنوان مسیر یک سوکت یونیکس تفسیر میشود.
- unixSocketPermissions
- هنگامی که address روی مکان یک سوکت یونیکس تنظیم شده است، این مقدار را به یک مقدار هشتهشتی (اکتال) تنظیم کنید تا مجوزهای پیشفرض سوکت را بازنویسی کند.
- user
- برای الزام به احراز هویت تنظیم میشود.
- password
- شامل هش bcrypt از گذرواژه واقعی است.
- apikey
- در صورت تنظیم، کلید API است که امکان استفاده از رابط REST را فعال میکند.
- insecureAdminAccess
- اگر true باشد، اجازه دسترسی به رابط گرافیکی وب را از خارج (یعنی خارج از localhost) بدون احراز هویت میدهد. در هنگام راهاندازی، هشداری درباره این تنظیم نمایش داده خواهد شد.
- insecureSkipHostcheck
- هنگامی که رابط گرافیکی / API به localhost متصل است، الزام میشود که هدر Host مشابه localhost باشد. این گزینه آن بررسی را دور میزند.
- insecureAllowFrameLoading
- با تنظیم نکردن هدر HTTP بنام X-Frame-Options: SAMEORIGIN، امکان رندر کردن رابط گرافیکی را درون یک <iframe>، <frame> یا <object> فراهم میکند. این ممکن است برای ارائه رابط گرافیکی Syncthing به عنوان بخشی از یک وبسایت از طریق پراکسی مورد نیاز باشد.
- theme
- نام پوستهای که باید استفاده شود.
- authMode
- حالت احراز هویت مورد استفاده. در صورت عدم وجود، حالت احراز هویت (static) به منظور سازگاری با نسخههای پیشین توسط وجود فیلدهای user/password کنترل میشود.
- sendBasicAuthPrompt
- در نسخه 1.26.0
اضافه شد.
پیش از نسخه 1.26.0، رابط گرافیکی از HTTP Basic Authorization برای ورود استفاده میکرد، اما از نسخه 1.26.0 به بعد بهطور پیشفرض از یک فرم HTML استفاده میکند. احراز هویت پایه (Basic Authorization) همچنان در صورتی که هدر درخواست Authorization در یک درخواست وجود داشته باشد پشتیبانی میشود، اما برخی مرورگرها این هدر را ارسال نمیکنند مگر اینکه با یک پاسخ 401 درخواست شود.
هنگامی که این تنظیم فعال باشد، رابط گرافیکی به درخواستهای احراز هویتنشده با یک پاسخ 401 پاسخ میدهد و احراز هویت پایه را درخواست میکند، تا نشانیهای وب به سبک https://user:pass@localhost همچنان در مرورگرهای استاندارد کار کنند. سایر کلاینتهایی که همیشه هدر درخواست Authorization را ارسال میکنند به این تنظیم نیازی ندارند.
هنگامی که این تنظیم غیرفعال باشد، رابط گرافیکی پاسخهای 401 ارسال نخواهد کرد تا کاربران پنجرههای بازشوی مرورگر برای درخواست نام کاربری و گذرواژه را مشاهده نکنند.
- metricsWithoutAuth
- اگر true باشد، اجازه دسترسی به '/metrics' را بدون احراز هویت میدهد.
- sessionCookieDurationS
- در نسخه 2.1.0
اضافه شد.
مدت زمانی که پس از انتخاب «stay logged in» در فرم ورود رابط گرافیکی، کاربر در حالت واردشده باقی میماند. به ثانیه، پیشفرض 604800 (یک هفته).
- sessionCookiePath
- در نسخه 2.1.0
اضافه شد.
مسیر کوکی نشست؛ پیشفرض «/»، تنها در صورتی تغییر دهید که رابط گرافیکی از طریق یک پراکسی در یک زیرمسیر ارائه شود.
عنصر LDAP (LDAP ELEMENT)
<ldap>
<address>localhost:389</address>
<bindDN>cn=%s,ou=users,dc=syncthing,dc=net</bindDN>
<transport>nontls</transport>
<insecureSkipVerify>false</insecureSkipVerify>
</ldap>
عنصر ldap شامل گزینههای پیکربندی LDAP است. این سازوکار بهطور مفصل در بخش LDAP Authentication شرح داده شده است.
- insecureSkipVerify
- رد کردن اعتبارسنجی (true یا false).
- searchBaseDN
- مقدار Base DN برای جستجوهای کاربر.
- searchFilter
- فیلتر جستجو برای جستجوهای کاربر.
عنصر OPTIONS (OPTIONS ELEMENT)
<options>
<listenAddress>default</listenAddress>
<globalAnnounceServer>default</globalAnnounceServer>
<globalAnnounceEnabled>true</globalAnnounceEnabled>
<localAnnounceEnabled>true</localAnnounceEnabled>
<localAnnouncePort>21027</localAnnouncePort>
<localAnnounceMCAddr>[ff12::8384]:21027</localAnnounceMCAddr>
<maxSendKbps>0</maxSendKbps>
<maxRecvKbps>0</maxRecvKbps>
<reconnectionIntervalS>60</reconnectionIntervalS>
<relaysEnabled>true</relaysEnabled>
<relayReconnectIntervalM>10</relayReconnectIntervalM>
<startBrowser>true</startBrowser>
<natEnabled>true</natEnabled>
<natLeaseMinutes>60</natLeaseMinutes>
<natRenewalMinutes>30</natRenewalMinutes>
<natTimeoutSeconds>10</natTimeoutSeconds>
<urAccepted>0</urAccepted>
<urSeen>0</urSeen>
<urUniqueID></urUniqueID>
<urURL>https://data.syncthing.net/newdata</urURL>
<urPostInsecurely>false</urPostInsecurely>
<urInitialDelayS>1800</urInitialDelayS>
<autoUpgradeIntervalH>12</autoUpgradeIntervalH>
<upgradeToPreReleases>false</upgradeToPreReleases>
<keepTemporariesH>24</keepTemporariesH>
<cacheIgnoredFiles>false</cacheIgnoredFiles>
<progressUpdateIntervalS>5</progressUpdateIntervalS>
<limitBandwidthInLan>false</limitBandwidthInLan>
<minHomeDiskFree unit="%">1</minHomeDiskFree>
<releasesURL>https://upgrades.syncthing.net/meta.json</releasesURL>
<overwriteRemoteDeviceNamesOnConnect>false</overwriteRemoteDeviceNamesOnConnect>
<tempIndexMinBlocks>10</tempIndexMinBlocks>
<unackedNotificationID>authenticationUserAndPassword</unackedNotificationID>
<trafficClass>0</trafficClass>
<setLowPriority>true</setLowPriority>
<maxFolderConcurrency>0</maxFolderConcurrency>
<crashReportingURL>https://crash.syncthing.net/newcrash</crashReportingURL>
<crashReportingEnabled>true</crashReportingEnabled>
<stunKeepaliveStartS>180</stunKeepaliveStartS>
<stunKeepaliveMinS>20</stunKeepaliveMinS>
<stunServer>default</stunServer>
<maxConcurrentIncomingRequestKiB>0</maxConcurrentIncomingRequestKiB>
<announceLANAddresses>true</announceLANAddresses>
<sendFullIndexOnUpgrade>false</sendFullIndexOnUpgrade>
<connectionLimitEnough>0</connectionLimitEnough>
<connectionLimitMax>0</connectionLimitMax>
</options>
عنصر options شامل تمام گزینههای پیکربندی سراسری دیگر است.
- listenAddress
- آدرس شنود برای اتصالهای همگامسازی ورودی. برای نحو مجاز، به Listen Addresses مراجعه کنید. برای پیکربندی چندین آدرس، میتوانید تگهای <listenAddress> را در فایل پیکربندی تکرار کنید یا چندین آدرس جداشده با کاما را در GUI وارد نمایید.
- globalAnnounceServer
- یک URI به سرور اعلان (کشف) سراسری، یا کلمه default برای گنجاندن سرورهای پیشفرض. هر تعداد از عناصر globalAnnounceServer میتوانند وجود داشته باشند. نحو برای ورودیهای غیرپیشفرض، ساختار یک URL با پروتکل HTTP یا HTTPS است. تعدادی گزینه میتوانند به عنوان گزینههای پرسمان به URL اضافه شوند: insecure برای جلوگیری از اعتبارسنجی گواهی (مورد نیاز برای نشانیهای HTTP) و id=<device ID> برای انجام پینکردن گواهی (certificate pinning). شناسه دستگاه مورد استفاده هنگام راهاندازی توسط سرور کشف چاپ میشود. برای پیکربندی چندین سرور، میتوانید تگهای <globalAnnounceServer> را در فایل پیکربندی تکرار کنید یا چندین سرور جداشده با کاما را در GUI وارد نمایید.
- globalAnnounceEnabled
- مشخص میکند که آیا این دستگاه به سرور اعلان (کشف) سراسری اعلام شود و همچنین از آن برای جستجوی دستگاههای دیگر استفاده گردد یا خیر.
- localAnnounceEnabled
- مشخص میکند که آیا اعلانها به شبکه محلی (LAN) ارسال شوند و همچنین از چنین اعلانهایی برای یافتن دستگاههای دیگر استفاده شود یا خیر.
- localAnnouncePort
- درگاهی (Port) که برای شنود و ارسال اعلانهای همگانی (Broadcast) پروتکل IPv4 استفاده میشود.
- localAnnounceMCAddr
- آدرس گروهی و درگاهی که برای عضویت و ارسال اعلانهای چندپخشی (Multicast) پروتکل IPv6 استفاده میشود.
- maxSendKbps
- محدودیت نرخ دادههای خروجی، به کیبیبایت بر ثانیه.
- maxRecvKbps
- محدودیت نرخ دادههای ورودی، به کیبیبایت بر ثانیه.
- reconnectionIntervalS
- تعداد ثانیههای انتظار بین هر تلاش برای اتصال به دستگاههایی که در حال حاضر متصل نیستند.
- relaysEnabled
- هنگامی که true باشد، به رلهها متصل شده و به صورت بالقوه برای اتصالهای دستگاهبهدستگاه استفاده میشوند.
- relayReconnectIntervalM
- فاصله زمانی (به دقیقه) بین تلاشهای اتصال مجدد به رله را تنظیم میکند.
- startBrowser
- مشخص میکند که آیا هنگام شروع سینکتینگ، برای نمایش GUI تلاشی برای باز کردن مرورگر انجام شود یا خیر.
- natEnabled
- مشخص میکند که آیا برای اتصالهای همگامسازی ورودی، تلاشی برای انجام نگاشت درگاه UPnP و NAT-PMP صورت گیرد یا خیر.
- natLeaseMinutes
- درخواست اجاره (lease) برای این تعداد دقیقه؛ صفر برای درخواست اجاره دائمی.
- natRenewalMinutes
- تلاش برای تمدید اجاره پس از این تعداد دقیقه.
- natTimeoutSeconds
- هنگام پویش برای دستگاههای UPnP، این مدت زمان برای دریافت پاسخها منتظر بماند.
- urAccepted
- مشخص میکند که آیا کاربر ارسال دادههای استفاده ناشناس را پذیرفته است یا خیر. مقدار پیشفرض، 0، به این معنی است که کاربر انتخابی نکرده است و سینکتینگ در زمانی دیگر در آینده سوال خواهد کرد. -1 به معنای خیر است، و یک عدد بالاتر از صفر به این معنی است که آن نسخه از گزارش استفاده پذیرفته شده است.
- urSeen
- بالاترین نسخه گزارش استفاده که تاکنون در GUI وب نمایش داده شده است.
- urUniqueID
- شناسه یکتایی که همراه با گزارش استفاده ارسال میشود. هنگام فعال شدن گزارش استفاده ایجاد میگردد.
- urURL
- آدرس اینترنتی (URL) برای ارسال دادههای گزارش استفاده در صورت فعال بودن.
- urPostInsecurely
- هنگامی که true باشد، نشانی UR URL میتواند به جای https از http استفاده کند یا دارای یک گواهی خودامضا (self-signed) باشد. مقدار پیشفرض false است.
- urInitialDelayS
- مدت زمان انتظار از زمان راهاندازی تا ارسال اولین گزارش استفاده. این امکان را میدهد که سیستم قبل از گزارش آمار پایدار شود.
- autoUpgradeIntervalH
- بررسی نسخه جدیدتر پس از این تعداد ساعت. برای غیرفعال کردن ارتقای خودکار، روی 0 تنظیم کنید.
- upgradeToPreReleases
- اگر true باشد، ارتقای خودکار شامل کاندیداهای انتشار (پیشانتشارها) نیز میشود (به Versions & Releases مراجعه کنید).
- keepTemporariesH
- نگهداری انتقالهای ناموفق موقت به مدت این تعداد ساعت. تا زمانی که فایلهای موقت نگهداری میشوند، نیازی به انتقال مجدد دادههای موجود در آنها نیست.
- cacheIgnoredFiles
- مشخص میکند که آیا نتایج ارزیابی الگوهای نادیدهگیری کَش (ذخیره موقت) شوند یا خیر. افزایش عملکرد به بهای مصرف حافظه. مقدار پیشفرض false است زیرا هزینه ارزیابی الگوهای نادیدهگیری معمولاً چندان قابل توجه نیست.
- progressUpdateIntervalS
- فاصله زمانی بر حسب ثانیه که پیشرفت دانلودهای در حال انجام به GUI ارائه میشود. برای غیرفعال کردن روی -1 تنظیم کنید. توجه داشته باشید که در صورت غیرفعال بودن، پیشرفت تفصیلی همگامسازی برای «موارد خارج از همگامسازی» (Out of Sync Items) که نشان میدهد چه مقدار از هر فایل دوباره استفاده، کپی و دانلود شده است، کار نخواهد کرد.
- limitBandwidthInLan
- مشخص میکند که آیا محدودیتهای پهنای باند برای دستگاههای موجود در همان دامنه پخشی (Broadcast Domain) دستگاه محلی اعمال شود یا خیر.
- minHomeDiskFree
- حداقل فضای خالی مورد نیازی که باید در پارتیشن حاوی پیکربندی و نمایه (Index) در دسترس باشد. محتوای این عنصر بر اساس ویژگی unit دادهشده تفسیر میشود. مقادیر پذیرفتهشده برای unit عبارتند از: % (درصد اندازه دیسک / حجم)، kB، MB، GB و TB. برای غیرفعال کردن روی صفر تنظیم کنید.
- releasesURL
- نشانی اینترنتی (URL) که اطلاعات نسخههای منتشرشده برای ارتقای خودکار از آن بارگیری میشود.
- alwaysLocalNet
- شبکهای که باید بر اساس نشانهگذاری CIDR به عنوان شبکه محلی در نظر گرفته شود. برای پیکربندی چندین شبکه، میتوانید تگهای <alwaysLocalNet> را در فایل پیکربندی تکرار کنید یا چندین شبکه جداشده با کاما را در GUI وارد نمایید.
- overwriteRemoteDeviceNamesOnConnect
- اگر تنظیم شود، نام دستگاهها در هر اتصال همیشه با نام ارائهشده توسط دستگاه دوردست بازنویسی خواهد شد. به طور پیشفرض، نامی که دستگاه دوردست اعلام میکند تنها زمانی پذیرفته میشود که قبلاً نامی تنظیم نشده باشد.
- tempIndexMinBlocks
- هنگام تبادل اطلاعات نمایه (Index) برای انتقالهای ناقص، فقط فایلهایی را در نظر میگیرد که حداقل این تعداد بلوک داشته باشند.
- unackedNotificationID
- شناسه یک اعلان که باید در GUI وب نمایش داده شود. به محض اینکه کاربر آن را تایید کند (مانند اعلان انتقال هنگام ارتقا) حذف خواهد شد. شناسههای چندگانه با تکرار تگهای <unackedNotificationID> در فایل پیکربندی مشخص میشوند.
- trafficClass
- یک نوع سرویس (TOS) در IPv4 یا کلاس ترافیک (Traffic Class) در IPv6 را برای بستههای خروجی مشخص میکند. برای مشخص کردن یک نقطه کد خدمات متمایز (DSCP)، مقدار باید دو بیت به چپ شیفت داده شود تا دو بیت کمارزش ECN در نظر گرفته شوند.
- stunServer
- سروری که
برای STUN
استفاده
میشود و به
صورت ip:port مشخص
میگردد.
کلیدواژه
default به
مجموعهای
از سرورهای
عمومی STUN
گسترش
مییابد،
با اولویت
دادن به
سرورهایی
که توسط
پروژه
سینکتینگ
میزبانی
میشوند.
برای پیکربندی چندین سرور، میتوانید تگهای <stunServer> را در فایل پیکربندی تکرار کنید یا چندین سرور جداشده با کاما را در GUI وارد نمایید.
- stunKeepaliveStartS
- فاصله زمانی به ثانیه بین تماس با یک سرور STUN برای حفظ نگاشت NAT. مقدار پیشفرض 180 است و میتوانید آن را روی 0 تنظیم کنید تا تماس با سرورهای STUN غیرفعال شود. در صورت نیاز، این فاصله زمانی به طور خودکار تا حداقل stunKeepaliveMinS کاهش مییابد.
- stunKeepaliveMinS
- حداقل فاصله زمانی برای stunKeepaliveStartS، به ثانیه.
- setLowPriority
- سینکتینگ در هنگام راهاندازی تلاش خواهد کرد تا اولویت پردازش خود را کاهش دهد. به طور مشخص: در لینوکس، خود را در یک گروه پردازشی جداگانه قرار میدهد، سطح niceness آن گروه پردازشی را روی ۹ و اولویت I/O را روی سطح تلاش حداکثری (best effort) پنج تنظیم میکند؛ در سایر یونیکسها، سطح niceness پردازش را روی ۹ تنظیم میکند؛ در ویندوز، کلاس اولویت پردازش را روی below normal قرار میدهد. برای غیرفعال کردن این رفتار، به عنوان مثال برای کنترل اولویت پردازش توسط خودتان هنگام اجرای سینکتینگ، این گزینه را روی false تنظیم کنید.
- maxFolderConcurrency
- این گزینه کنترل میکند که چه تعداد پوشه میتوانند به طور همزمان در عملیاتهای سنگین I/O مانند همگامسازی یا پویش باشند. این سازوکار به طور دقیق در یک فصل جداگانه توضیح داده شده است.
- crashReportingURL
- نشانی اینترنتی سروری که در صورت فعال بودن، گزارشهای خرابی خودکار به آن ارسال خواهند شد.
- crashReportingEnabled
- سوییچی برای انصراف از ویژگی گزارش خرابی خودکار. مقدار false را تنظیم کنید تا سینکتینگ از ارسال لاگهای پنیک در مشکلات جدی خودداری کند. پیشفرض true است تا به توسعهدهندگان در رفع اشکال کمک کند.
- maxConcurrentIncomingRequestKiB
- این گزینه مقدار بایتهایی را که به صورت دادههای پاسخ در حال خوانده شدن و پردازش «در جریان» هستند، محدود میکند.
- announceLANAddresses
- فعالسازی (پیشفرض) یا غیرفعالسازی اعلام آدرسهای IP خصوصی شبکه محلی (RFC1918) به سیستم کشف سراسری.
- sendFullIndexOnUpgrade
- کنترل میکند که آیا هنگام رخ دادن ارتقا، تمام دادههای نمایه دوباره ارسال شوند یا خیر. این رفتار در نسخههای قدیمیتر پیشفرض بود، اما عمدتاً به عنوان یک مرحله عیبیابی مفید است و باعث دگرگونی و بار زیاد پایگاهداده میشود. مقدار پیشفرض اکنون false است.
- featureFlag
- فلگهای ویژگی (Feature flags) رشتههای متنی سادهای هستند که وقتی به پیکربندی اضافه میشوند، میتوانند ویژگیهای ناتمام یا در حال توسعه را برای امکان آزمایش زودهنگام توسط کاربر فعال کنند. هر مقدار پشتیبانیشده به طور جداگانه همراه با آن ویژگی اعلام خواهد شد تا کاربران عادی آن را تصادفی فعال نکنند. برای پیکربندی چندین فلگ، میتوانید تگهای <featureFlag> را در فایل پیکربندی تکرار کنید یا چندین فلگ جداشده با کاما را در GUI وارد نمایید.
- connectionLimitEnough
- تعداد اتصالهایی که در آن از تلاش برای اتصال به دستگاههای بیشتر دست میکشیم، صفر به معنی عدم وجود محدودیت است. روی اتصالهای ورودی تاثیری ندارد. این سازوکار به طور دقیق در یک فصل جداگانه توضیح داده شده است.
- connectionLimitMax
- حداکثر تعداد اتصالهایی که در کل اجازه خواهیم داد، صفر به معنی عدم وجود محدودیت است. روی اتصالهای ورودی تاثیر میگذارد و از تلاش برای اتصالهای خروجی جلوگیری میکند. این سازوکار به طور دقیق در یک فصل جداگانه توضیح داده شده است.
- auditEnabled
- هنگامی که
true باشد،
مشابه
تنظیم بودن
--audit است.
پیشفرض false
است.
هنگامی که این گزینه، یا --audit (یا هر دو) فعال باشند، حسابرسی (auditing) فعال میشود.
- auditFile
- مشابه --auditfile
است.
پیشفرض
روی
تنظیمنشده
(unset) است.
به دلایل سازگاری، اگر هم این گزینه و هم --auditfile تنظیم شده باشند، --auditfile اولویت دارد.
عنصر DEFAULTS (DEFAULTS ELEMENT)
<defaults>
<folder id="" label="" path="~" type="sendreceive" rescanIntervalS="3600" fsWatcherEnabled="true" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="S7UKX27-GI7ZTXS-GC6RKUA-7AJGZ44-C6NAYEB-HSKTJQK-KJHU2NO-CWV7EQW" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<minDiskFree unit="%">1</minDiskFree>
<versioning>
<cleanupIntervalS>3600</cleanupIntervalS>
<fsPath></fsPath>
<fsType>basic</fsType>
</versioning>
<copiers>0</copiers>
<pullerMaxPendingKiB>0</pullerMaxPendingKiB>
<hashers>0</hashers>
<order>random</order>
<ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS>
<pullerPauseS>0</pullerPauseS>
<maxConflicts>10</maxConflicts>
<disableSparseFiles>false</disableSparseFiles>
<paused>false</paused>
<markerName>.stfolder</markerName>
<copyOwnershipFromParent>false</copyOwnershipFromParent>
<modTimeWindowS>0</modTimeWindowS>
<maxConcurrentWrites>16</maxConcurrentWrites>
<disableFsync>false</disableFsync>
<blockPullOrder>standard</blockPullOrder>
<copyRangeMethod>standard</copyRangeMethod>
<caseSensitiveFS>false</caseSensitiveFS>
<junctionsAsDirs>false</junctionsAsDirs>
</folder>
<device id="" compression="metadata" introducer="false" skipIntroductionRemovals="false" introducedBy="">
<address>dynamic</address>
<paused>false</paused>
<autoAcceptFolders>false</autoAcceptFolders>
<maxSendKbps>0</maxSendKbps>
<maxRecvKbps>0</maxRecvKbps>
<maxRequestKiB>0</maxRequestKiB>
<untrusted>false</untrusted>
<remoteGUIPort>0</remoteGUIPort>
<numConnections>0</numConnections>
</device>
<ignores>
<line>!foo2</line>
<line>// comment</line>
<line>(?d).DS_Store</line>
<line>*2</line>
<line>qu*</line>
</ignores>
</defaults>
عنصر defaults یک الگو را برای گزینههای دستگاه و پوشه تازه اضافهشده توصیف میکند. هنگام افزودن یک دستگاه دوردست یا پوشه جدید، چه از طریق واسط کاربری گرافیکی (GUI) و چه از طریق واسط خط فرمان، از این گزینهها استفاده خواهد شد. عناصر فرزند زیر میتوانند در عنصر defaults حضور داشته باشند:
- device
- الگویی برای یک عنصر device، با همان ساختار داخلی. هر فیلدی در اینجا برای یک دستگاه دوردست تازه اضافهشده استفاده خواهد شد. ویژگی id در این زمینه بیمعنی است.
- folder
- الگویی
برای یک
عنصر folder، با
همان
ساختار
داخلی. هر
فیلدی در
اینجا برای
یک پوشه به
اشتراک
گذاشته شده
تازه
اضافهشده
استفاده
خواهد شد.
ویژگی id در
این زمینه
بیمعنی
است.
واسط کاربری پیشنهاد میکند که پوشههای جدید در مسیر ارائهشده در ویژگی path ایجاد شوند (پیشتر defaultFolderPath تحت options بود). این امر همچنین برای پوشههایی که به طور خودکار از یک دستگاه دوردست پذیرفته میشوند اعمال میشود.
حتی اشتراکگذاری با سایر دستگاههای دوردست را میتوان در الگو با گنجاندن عنصر مناسب folder.device در زیر آن انجام داد.
- ignores
- اضافهشده
در نسخه 1.19.0.
الگویی برای الگوهای نادیدهگیری (ignore patterns) اعمالشده روی پوشههای جدید. این الگوها هنگامی که یک پوشه به طور خودکار از یک دستگاه دوردست پذیرفته میشود، در فایل .stignore کپی میشوند. واسط گرافیکی (GUI) نیز هنگام افزودن یک پوشه جدید، از آنها برای پر کردن اولیه فیلد مربوطه استفاده میکند. در XML، هر خط الگو با یک عنصر <line> مشخص میشود.
نشانیهای شنود (Listen Addresses)
انواع نشانیهای زیر در نشانیهای شنود پروتکل همگامسازی پذیرفته میشوند. اگر میخواهید سینکتینگ روی چندین نشانی شنود داشته باشد، میتوانید یکی از این دو کار را انجام دهید: تکرار برچسبهای <listenAddress> در فایل پیکربندی یا وارد کردن چندین نشانی جدا شده با کاما در واسط گرافیکی (GUI).
- نشانیهای شنود پیشفرض (default)
- این معادل tcp://0.0.0.0:22000، quic://0.0.0.0:22000 و dynamic+https://relays.syncthing.net/endpoint است.
- وایلدکارت و پورت TCP (tcp://0.0.0.0:22000, tcp://:22000)
- اینها معادل یکدیگرند و باعث میشوند سینکتینگ روی تمامی رابطها، IPv4 و IPv6، روی پورت مشخصشده شنود کند.
- وایلدکارت و پورت TCP IPv4 (tcp4://0.0.0.0:22000, tcp4://:22000)
- اینها معادل یکدیگرند و باعث میشوند سینکتینگ روی تمامی رابطها فقط از طریق IPv4 شنود کند.
- نشانی و پورت TCP IPv4 (tcp4://192.0.2.1:22000)
- این گزینه باعث میشود سینکتینگ فقط روی نشانی و پورت مشخصشده در IPv4 شنود کند.
- وایلدکارت و پورت TCP IPv6 (tcp6://[::]:22000, tcp6://:22000)
- اینها معادل یکدیگرند و باعث میشوند سینکتینگ روی تمامی رابطها فقط از طریق IPv6 شنود کند.
- نشانی و پورت TCP IPv6 (tcp6://[2001:db8::42]:22000)
- این گزینه باعث میشود سینکتینگ فقط روی نشانی و پورت مشخصشده در IPv6 شنود کند.
- نشانی و پورت QUIC (مانند quic://0.0.0.0:22000)
- سینتکس آن همانند TCP است، همچنین quic4 و quic6 نیز میتوانند استفاده شوند.
- نشانی رله ایستا (relay://192.0.2.42:22067?id=abcd123...)
- سینکتینگ به نشانی رله مشخصشده متصل شده و برای اتصالات ورودی شنود خواهد کرد.
کارهای باقیمانده (Todo)
مستندسازی
پارامترهای
URL در دسترس.
- استخر رله پویا (dynamic+https://192.0.2.42/relays)
- سینکتینگ نشانی HTTPS مشخصشده را واکشی کرده، آن را برای دادههای JSON توصیفکننده رلهها تجزیه میکند، یک رله را از میان رلههای موجود انتخاب کرده و از طریق آن شنود میکند، درست مانند اینکه در بالا به عنوان یک رله ایستا مشخص شده باشد.
کارهای باقیمانده (Todo)
مستندسازی
پارامترهای
URL در دسترس.
همگامسازی فایلهای پیکربندی (SYNCING CONFIGURATION FILES)
همگامسازی فایلهای پیکربندی بین دستگاهها (بهطوری که چندین دستگاه از فایلهای پیکربندی یکسانی استفاده کنند) میتواند باعث بروز مشکلاتی شود. در صورتی که پوشه خانگی (Home) خود را بین دستگاهها همگام کنید، این امر به سادگی و به طور تصادفی ممکن است رخ دهد. یک نشانه رایج از همگامسازی فایلهای پیکربندی این است که دو دستگاه با شناسه دستگاه (Device ID) یکسان مواجه شوند.
اگر میخواهید از سینکتینگ برای پشتیبانگیری از فایلهای پیکربندی خود استفاده کنید، توصیه میشود فایلهایی که از آنها پشتیبان میگیرید در یک پوشه فقط ارسال (Send Only Folder) قرار داشته باشند تا از بازنویسی پیکربندی اختصاصی هر دستگاه توسط سایر دستگاهها جلوگیری شود. پوشه موجود روی دستگاه(های) دوردست نباید به عنوان پیکربندی برای دستگاههای دوردست استفاده شود.
اگر مایلید پوشه خانگی خود را در حالتی غیر از فقط-ارسال همگامسازی کنید، میتوانید پوشهای را که فایلهای پیکربندی را ذخیره میکند به لیست نادیدهگیری (ignore list) اضافه کنید. اگر همچنین مایلید از فایلهای پیکربندی خود نسخه پشتیبان تهیه کنید، یک پوشه دیگر در حالت فقط ارسال تنها برای پوشه پیکربندی اضافه کنید.
نویسنده (AUTHOR)
نویسندگان سینکتینگ (The Syncthing Authors)
حق نشر (COPYRIGHT)
2014-2026, The Syncthing Authors
| July 23, 2026 | v2.1.0 |