STRELAYSRV(1) Syncthing STRELAYSRV(1)

strelaysrv - سرور رله Syncthing

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]

برنامه Syncthing بر شبکه‌ای از سرورهای رله متکی است که توسط جامعه کاربری مشارکت داده شده‌اند. هر فردی می‌تواند یک سرور رله را اجرا کند و این سرور به‌طور خودکار به استخر رله‌ها می‌پیوندد و در دسترس کاربران Syncthing قرار می‌گیرد. فهرست فعلی رله‌ها در نشانی زیر قابل مشاهده است: https://relays.syncthing.net.

فعال‌سازی خروجی اشکال‌زدایی.
آدرسی اختیاری برای اعلان در دسترس بودن روی آن. امکان شنود روی یک درگاه غیرممتاز با هدایت درگاه (port forwarding) از مثلاً 443، و برقراری ارتباط روی درگاه 443 را فراهم می‌کند.
محدودیت نرخ سراسری، به بایت بر ثانیه (bytes/s).
دایرکتوری محل ذخیره‌سازی cert.pem و key.pem (پیش‌فرض «.»).
آدرس شنود پروتکل (پیش‌فرض «:22067»).
حداکثر مدت‌زمانی که منتظر دریافت پیام‌های مرتبط می‌مانیم (پیش‌فرض 1m0s).
استفاده از UPnP/NAT-PMP برای دریافت نگاشت درگاه خارجی.
-nat-lease=<duration>
مدت‌زمان اجاره (lease) در NAT به دقیقه (پیش‌فرض 60).
-nat-renewal=<duration>
بازه زمانی تمدید NAT به دقیقه (پیش‌فرض 30).
-nat-timeout=<duration>
مهلت زمانی کشف NAT به ثانیه (پیش‌فرض 10).
مهلت زمانی برای عملیات شبکه میان کلاینت و رله. چنانچه در این بازه زمانی هیچ داده‌ای بین کلاینت و سرور رله دریافت نشود، اتصال قطع خواهد شد. علاوه بر این، اگر در این بازه زمانی هیچ داده‌ای میان کلاینت‌های رله‌شده ردوبدل نشود، نشست نیز خاتمه می‌یابد (پیش‌فرض 2m0s).
محدودیت نرخ به ازای هر نشست، به بایت بر ثانیه (bytes/s).
بازه زمانی ارسال پینگ‌ها (پیش‌فرض 1m0s).
فهرست جدا شده با کاما از نشانی‌های استخر رله برای پیوستن (پیش‌فرض «https://relays.syncthing.net/endpoint»). برای غیرفعال کردن اعلان به یک استخر، و در نتیجه خصوصی باقی ماندن رله، این مقدار را خالی بگذارید.
فعال‌سازی پروفایل‌گیری داخلی (profiling) روی سرور وضعیت.
پروتکل مورد استفاده برای شنود. مقدار ‘tcp’ برای IPv4 و IPv6، مقدار ‘tcp4’ برای IPv4، و مقدار ‘tcp6’ برای IPv6 (پیش‌فرض «tcp»).
توضیحاتی اختیاری درباره اینکه چه کسی سرور رله را ارائه می‌دهد.
نشانی شنود سرویس وضعیت (برای غیرفعال کردن خالی بگذارید) (پیش‌فرض «:22070»). سرویس وضعیت توسط رابط کاربری سرور استخر رله برای نمایش آمار (داده‌های منتقل‌شده، تعداد کلاینت‌ها و غیره) به کار می‌رود.
توکن برای محدود کردن دسترسی به سرور رله (اختیاری). پیوستن به تمام استخرها را غیرفعال می‌کند.
نمایش نسخه.

به بخش releases <https://github.com/syncthing/relaysrv/releases> رفته و فایل مناسب سیستم‌عامل خود را بارگیری کنید. پس از استخراج آن، یک فایل باینری به نام strelaysrv (یا strelaysrv.exe در ویندوز) به دست می‌آید. این برنامه را به هر روشی که راحت‌تر هستید اجرا کنید؛ دوبار کلیک کردن روی آن باید در هر محیط گرافیکی کار کند. در نخستین اجرا، strelaysrv فایل‌های گواهی و پایگاه‌داده را در دایرکتوری جاری تولید می‌کند، مگر اینکه گزینه‌هایی خلاف آن داده شده باشد. همچنین به‌طور پیش‌فرض به استخرهای رله ملحق می‌شود، به این معنی که به‌صورت عمومی قابل مشاهده بوده و هر کلاینتی می‌تواند به آن متصل شود. پیام راه‌اندازی، دستورالعمل‌هایی را درباره نحوه تغییر این رفتار چاپ می‌کند.

سرور رله را همچنین می‌توان از طریق apt، مدیر بسته دبیان/اوبونتو، تهیه کرد. نسخه‌های اخیر را می‌توان در مخزن apt <https://apt.syncthing.net> سینک‌تینگ یافت. نام این بسته syncthing-relaysrv است.

در وهله نخست، باید درباره یک دایرکتوری برای ذخیره کلید و گواهی 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="" داده شده باشد.

برای شروع خودکار سرور رله هنگام بوت سیستم، از سازوکار توصیه‌شده برای سیستم‌عامل خود استفاده کنید.

سینک‌تینگ را می‌توان به‌گونه‌ای پیکربندی کرد که از سرورهای رله خاصی استفاده کند (به‌طور انحصاری به جای استخر عمومی)؛ این کار با افزودن سرورهای مورد نظر در فیلد 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 (یا درگاه دیگری که معمولاً از طریق فایروال‌های سازمانی مجاز دانسته می‌شود) اجرا کنید تا شانس اتصال کاربران به حداکثر برسد. با این حال، گوش دادن روی درگاه‌های زیر 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>، اگرچه ممکن است نتیجه برای شما متفاوت باشد.

سرور رله به‌طور پیش‌فرض به دو درگاه گوش می‌دهد: یکی برای اتصالات داده و دیگری برای ارائه آمار عمومی در 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

لطفاً برای پایدار کردن قوانین فایروال، به مستندات توزیع لینوکس خود رجوع کنید.

در نسخه 1.22.1 اضافه شد.

رله‌های خصوصی را می‌توان به‌گونه‌ای پیکربندی کرد که فقط اتصالاتی را از همتایان دارای راز مشترک (shared secret) بپذیرند. برای پیکربندی این قابلیت، از گزینه -token استفاده کنید:

$ strelaysrv -token=mySecretToken

سپس دستگاه‌های Syncthing خود را به‌گونه‌ای تنظیم کنید که هنگام اتصال به رله، توکن را ارسال کنند:

relay://<host name|IP>[:port]/?id=<relay device ID>&token=mySecretToken

syncthing-relay(7), syncthing-faq(7), syncthing-networking(7)

The Syncthing Authors

2014-2026, The Syncthing Authors

July 23, 2026 v2.1.0