| STRELAYSRV(1) | Syncthing | STRELAYSRV(1) |
نام (NAME)
strelaysrv - سرور رله Syncthing
خلاصه دستور (SYNOPSIS)
strelaysrv [-debug] [-ext-address=<address>] [-global-rate=<bytes/s>] [-keys=<dir>] [-listen=<listen addr>]
[-message-timeout=<duration>] [-nat] [-nat-lease=<duration>] [-nat-renewal=<duration>]
[-nat-timeout=<duration>] [-network-timeout=<duration>] [-per-session-rate=<bytes/s>]
[-ping-interval=<duration>] [-pools=<pool addresses>] [-pprof] [-protocol=<string>]
[-provided-by=<string>] [-status-srv=<listen addr>] [-token=<string>] [-version]
توضیحات (DESCRIPTION)
برنامه Syncthing بر شبکهای از سرورهای رله متکی است که توسط جامعه کاربری مشارکت داده شدهاند. هر فردی میتواند یک سرور رله را اجرا کند و این سرور بهطور خودکار به استخر رلهها میپیوندد و در دسترس کاربران Syncthing قرار میگیرد. فهرست فعلی رلهها در نشانی زیر قابل مشاهده است: https://relays.syncthing.net.
گزینهها (OPTIONS)
- -debug
- فعالسازی خروجی اشکالزدایی.
- -ext-address=<address>
- آدرسی اختیاری برای اعلان در دسترس بودن روی آن. امکان شنود روی یک درگاه غیرممتاز با هدایت درگاه (port forwarding) از مثلاً 443، و برقراری ارتباط روی درگاه 443 را فراهم میکند.
- -global-rate=<bytes/s>
- محدودیت نرخ سراسری، به بایت بر ثانیه (bytes/s).
- -keys=<dir>
- دایرکتوری محل ذخیرهسازی cert.pem و key.pem (پیشفرض «.»).
- -listen=<listen addr>
- آدرس شنود پروتکل (پیشفرض «:22067»).
- -message-timeout=<duration>
- حداکثر مدتزمانی که منتظر دریافت پیامهای مرتبط میمانیم (پیشفرض 1m0s).
- -nat
- استفاده از UPnP/NAT-PMP برای دریافت نگاشت درگاه خارجی.
- -nat-lease=<duration>
- مدتزمان اجاره (lease) در NAT به دقیقه (پیشفرض 60).
- -nat-renewal=<duration>
- بازه زمانی تمدید NAT به دقیقه (پیشفرض 30).
- -nat-timeout=<duration>
- مهلت زمانی کشف NAT به ثانیه (پیشفرض 10).
- -network-timeout=<duration>
- مهلت زمانی برای عملیات شبکه میان کلاینت و رله. چنانچه در این بازه زمانی هیچ دادهای بین کلاینت و سرور رله دریافت نشود، اتصال قطع خواهد شد. علاوه بر این، اگر در این بازه زمانی هیچ دادهای میان کلاینتهای رلهشده ردوبدل نشود، نشست نیز خاتمه مییابد (پیشفرض 2m0s).
- -per-session-rate=<bytes/s>
- محدودیت نرخ به ازای هر نشست، به بایت بر ثانیه (bytes/s).
- -ping-interval=<duration>
- بازه زمانی ارسال پینگها (پیشفرض 1m0s).
- -pools=<pool addresses>
- فهرست جدا شده با کاما از نشانیهای استخر رله برای پیوستن (پیشفرض «https://relays.syncthing.net/endpoint»). برای غیرفعال کردن اعلان به یک استخر، و در نتیجه خصوصی باقی ماندن رله، این مقدار را خالی بگذارید.
- -pprof
- فعالسازی پروفایلگیری داخلی (profiling) روی سرور وضعیت.
- -protocol=<string>
- پروتکل مورد استفاده برای شنود. مقدار ‘tcp’ برای IPv4 و IPv6، مقدار ‘tcp4’ برای IPv4، و مقدار ‘tcp6’ برای IPv6 (پیشفرض «tcp»).
- -provided-by=<string>
- توضیحاتی اختیاری درباره اینکه چه کسی سرور رله را ارائه میدهد.
- -status-srv=<listen addr>
- نشانی شنود سرویس وضعیت (برای غیرفعال کردن خالی بگذارید) (پیشفرض «:22070»). سرویس وضعیت توسط رابط کاربری سرور استخر رله برای نمایش آمار (دادههای منتقلشده، تعداد کلاینتها و غیره) به کار میرود.
- -token=<string>
- توکن برای محدود کردن دسترسی به سرور رله (اختیاری). پیوستن به تمام استخرها را غیرفعال میکند.
- -version
- نمایش نسخه.
نصب (Installing)
به بخش releases <https://github.com/syncthing/relaysrv/releases> رفته و فایل مناسب سیستمعامل خود را بارگیری کنید. پس از استخراج آن، یک فایل باینری به نام strelaysrv (یا strelaysrv.exe در ویندوز) به دست میآید. این برنامه را به هر روشی که راحتتر هستید اجرا کنید؛ دوبار کلیک کردن روی آن باید در هر محیط گرافیکی کار کند. در نخستین اجرا، strelaysrv فایلهای گواهی و پایگاهداده را در دایرکتوری جاری تولید میکند، مگر اینکه گزینههایی خلاف آن داده شده باشد. همچنین بهطور پیشفرض به استخرهای رله ملحق میشود، به این معنی که بهصورت عمومی قابل مشاهده بوده و هر کلاینتی میتواند به آن متصل شود. پیام راهاندازی، دستورالعملهایی را درباره نحوه تغییر این رفتار چاپ میکند.
سرور رله را همچنین میتوان از طریق apt، مدیر بسته دبیان/اوبونتو، تهیه کرد. نسخههای اخیر را میتوان در مخزن apt <https://apt.syncthing.net> سینکتینگ یافت. نام این بسته syncthing-relaysrv است.
راهاندازی (SETTING UP)
در وهله نخست، باید درباره یک دایرکتوری برای ذخیره کلید و گواهی TLS و یک درگاه شنود تصمیم بگیرید. درگاه شنود پیشفرض 22067 کار میکند، اما برای سازگاری بهینه، درگاه شناختهشدهای برای ترافیک رمزگذاریشده مانند 443 پیشنهاد میشود. این امر ممکن است برای اجرا بدون کاربر root یا یک کاربر ممتاز، نیازمند پیکربندی اضافی باشد؛ به بخش اجرا روی درگاه 443 به عنوان یک کاربر غیرممتاز در ادامه مراجعه کنید. در اصل، فرآیندی مشابه دستورهای زیر باید روی یک سیستم لینوکس/یونیکس کار کند:
$ sudo useradd strelaysrv $ sudo mkdir /etc/strelaysrv $ sudo chown strelaysrv /etc/strelaysrv $ sudo -u strelaysrv /usr/local/bin/strelaysrv -keys /etc/strelaysrv
این دستورها کاربری به نام strelaysrv و دایرکتوری /etc/strelaysrv را برای ذخیره کلیدها ایجاد میکنند. کلیدها در نخستین راهاندازی تولید میشوند. رله به استخر سراسری رله خواهد پیوست، مگر اینکه آرگومان -pools="" داده شده باشد.
برای شروع خودکار سرور رله هنگام بوت سیستم، از سازوکار توصیهشده برای سیستمعامل خود استفاده کنید.
پیکربندی کلاینت (Client configuration)
سینکتینگ را میتوان بهگونهای پیکربندی کرد که از سرورهای رله خاصی استفاده کند (بهطور انحصاری به جای استخر عمومی)؛ این کار با افزودن سرورهای مورد نظر در فیلد Sync Protocol Listen Address، زیر بخش Actions و Settings انجام میشود. ساختار آن به صورت زیر است:
relay://<host name|IP>[:port]/?id=<relay device ID>
برای نمونه:
relay://private-relay-1.example.com:443/?id=ITZRNXE-YNROGBZ-HXTH5P7-VK5NYE5-QHRQGE2-7JQ6VNJ-KZUEDIU-5PPR5AM
شناسه دستگاه (device ID) رله هنگام راهاندازی نمایش داده میشود.
اجرا روی درگاه 443 به عنوان یک کاربر غیرممتاز (Running on port 443 as an unprivileged user)
توصیه میشود که رله را روی درگاه 443 (یا درگاه دیگری که معمولاً از طریق فایروالهای سازمانی مجاز دانسته میشود) اجرا کنید تا شانس اتصال کاربران به حداکثر برسد. با این حال، گوش دادن روی درگاههای زیر 1024 به دسترسی root نیاز دارد و اجرای رله به عنوان کاربر root توصیه نمیشود. خوشبختانه چندین راهکار در دسترس شما وجود دارد.
یک گزینه، اجرای رله روی درگاه 22067 و استفاده از قاعده iptables برای هدایت ترافیک از درگاه 443 به درگاه 22067 است، برای نمونه:
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 22067
یا چنانچه از ufw استفاده میکنید، موارد زیر را به /etc/ufw/before.rules بیفزایید:
*nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 22067 COMMIT
شما باید strelaysrv را با گزینه -ext-address ":443" راهاندازی کنید. این پارامتر به strelaysrv اعلام میکند که با وجود شنود روی درگاه 22067، از طریق درگاه 443 قابل دسترس است. شما همچنین باید اجازه عبور هر دو درگاه 443 و 22067 را از فایروال بدهید.
گزینه دیگر در اینجا شرح داده شده است <https://wiki.apache.org/httpd/NonRootPortBinding>، اگرچه ممکن است نتیجه برای شما متفاوت باشد.
ملاحظات فایروال (FIREWALL CONSIDERATIONS)
سرور رله بهطور پیشفرض به دو درگاه گوش میدهد: یکی برای اتصالات داده و دیگری برای ارائه آمار عمومی در https://relays.syncthing.net. فایروال، مانند iptables، باید اتصالات ورودی TCP به درگاههای زیر را مجاز بداند:
- درگاه داده: 22067/tcp که با -listen بازنویسی میشود و با -ext-address اعلان میگردد
- درگاه وضعیت: 22070/tcp که با -status-srv بازنویسی میشود
قوانین زمان اجرای iptables برای مجاز ساختن دسترسی به درگاههای پیشفرض:
iptables -I INPUT -p tcp --dport 22067 -j ACCEPT iptables -I INPUT -p tcp --dport 22070 -j ACCEPT
لطفاً برای پایدار کردن قوانین فایروال، به مستندات توزیع لینوکس خود رجوع کنید.
کنترل دسترسی برای رلههای خصوصی (ACCESS CONTROL FOR PRIVATE RELAYS)
در نسخه 1.22.1 اضافه شد.
رلههای خصوصی را میتوان بهگونهای پیکربندی کرد که فقط اتصالاتی را از همتایان دارای راز مشترک (shared secret) بپذیرند. برای پیکربندی این قابلیت، از گزینه -token استفاده کنید:
$ strelaysrv -token=mySecretToken
سپس دستگاههای Syncthing خود را بهگونهای تنظیم کنید که هنگام اتصال به رله، توکن را ارسال کنند:
relay://<host name|IP>[:port]/?id=<relay device ID>&token=mySecretToken
همچنین ببینید (SEE ALSO)
syncthing-relay(7), syncthing-faq(7), syncthing-networking(7)
نویسندگان (AUTHORS)
The Syncthing Authors
کپیرایت و تکثیر (COPYRIGHT)
2014-2026, The Syncthing Authors
| July 23, 2026 | v2.1.0 |