.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "STDISCOSRV" "1" "Jul 23, 2026" "v2.1.0" "Syncthing" .SH "نام (NAME)" stdiscosrv \- سرور اکتشاف همتایان Syncthing .SH "خلاصه دستور (SYNOPSIS)" .INDENT 0.0 .INDENT 3.5 .sp .EX stdiscosrv [\-\-debug] [\-\-http] [\-\-compression] [\-\-version] [\-\-cert=] [\-\-key=] [\-\-listen=
] [\-\-metrics\-listen=
] [\-\-db\-dir=] [\-\-db\-flush\-interval=] .EE .UNINDENT .UNINDENT .SH "توضیحات (DESCRIPTION)" .sp برنامهٔ Syncthing برای یافتن همتایان (peers) در اینترنت به یک سرور اکتشاف متکی است. هر کاربری می‌تواند یک سرور اکتشاف را راه‌اندازی کرده و نسخه‌های نصب‌شدهٔ Syncthing را به سمت آن هدایت کند. پروژهٔ Syncthing همچنین یک کلاستر سراسری را برای استفادهٔ عموم نگهداری می‌کند. .SH "گزینه‌ها (OPTIONS)" .INDENT 0.0 .TP .B \-\-debug فعال‌سازی خروجی اشکال‌زدایی (دیباگ). .UNINDENT .INDENT 0.0 .TP .B \-\-http شنود روی پروتکل HTTP (پشت یک پراکسی HTTPS). .UNINDENT .INDENT 0.0 .TP .B \-\-version چاپ شمارهٔ نسخهٔ فعلی و خروج. .UNINDENT .INDENT 0.0 .TP .B \-\-compression فعال‌سازی فشرده‌سازی GZIP برای پاسخ‌های HTTP. .UNINDENT .INDENT 0.0 .TP .B \-\-cert= فایل گواهی (پیش‌فرض «./cert.pem»). در حالت \-\-http استفاده نمی‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-key= فایل کلید (پیش‌فرض «./key.pem»). در حالت \-\-http استفاده نمی‌شود. .UNINDENT .INDENT 0.0 .TP .B \-\-listen=
آدرس شنود (پیش‌فرض «:8443»). .UNINDENT .INDENT 0.0 .TP .B \-\-metrics\-listen=
آدرس شنود برای نقطهٔ پایانی معیارهای سازگار با Prometheus (پیش‌فرض غیرفعال). .UNINDENT .INDENT 0.0 .TP .B \-\-db\-dir= دایرکتوری پایگاه داده، جایی که داده‌ها در آن ذخیره می‌شوند (پیش‌فرض «.»). .UNINDENT .INDENT 0.0 .TP .B \-\-db\-flush\-interval= بازهٔ زمانی تخلیهٔ داده‌های پایگاه دادهٔ درون‌حافظه‌ای روی دیسک (پیش‌فرض «5m»). .UNINDENT .SH "هدایت SYNCTHING به سرور اکتشاف خود (POINTING SYNCTHING AT YOUR DISCOVERY SERVER)" .sp به‌طور پیش‌فرض، Syncthing از تعدادی سرور اکتشاف سراسری استفاده می‌کند که با مدخل \fBdefault\fP در فهرست سرورهای اکتشاف مشخص شده‌اند. برای اینکه Syncthing را به استفاده از نمونهٔ stdiscosrv اختصاصی خود وادارید، واسط گرافیکی وب Syncthing را باز کنید. به بخش تنظیمات (settings)، سرور اکتشاف سراسری (Global Discovery Server) بروید و آدرس میزبان stdiscosrv را به فهرست مقادیر جداشده با کاما اضافه کنید؛ مانند: \fBhttps://disco.example.com:8443/\fP\&. توجه داشته باشید که stdiscosrv به‌طور پیش‌فرض از درگاه 8443 استفاده می‌کند. برای اینکه stdiscosrv با یک آدرس IP پویا در اینترنت در دسترس باشد، به یک سرویس Dynamic DNS نیاز خواهید داشت. .sp منسوخ‌شده از نسخهٔ v0.14.44: نسخه‌های قبلی نیاز به افزودن عبارت \fB/v2/\fP به انتهای آدرس سرور اکتشاف دارند، مانند \fBhttps://disco.example.com:8443/v2/\fP\&. .sp اگر مایلید \fIتنها\fP از سرور اکتشاف اختصاصی خود استفاده کنید، ورودی \fBdefault\fP را از این فهرست حذف کنید. .SH "راه‌اندازی (SETTING UP)" .SS "توضیحات (Description)" .sp این راهنما فرض می‌کند که شما پیش‌تر Syncthing را راه‌اندازی کرده‌اید. اگر هنوز این کار را انجام نداده‌اید، ابتدا به بخش \fI\%شروع به کار\fP مراجعه کنید. .SS "نصب (Installing)" .sp به بخش \X'tty: link https://github.com/syncthing/discosrv/releases'\fI\%انتشارها\fP <\fBhttps://github.com/syncthing/discosrv/releases\fP>\X'tty: link' رفته و فایل مناسب سیستم‌عامل خود را بارگیری کنید. استخراج آن یک فایل باینری اجرایی به نام \fBstdiscosrv\fP (یا در ویندوز \fBstdiscosrv.exe\fP) ارائه می‌دهد. آن را به هر روشی که راحت‌تر هستید اجرا کنید؛ دوبار کلیک کردن در هر محیط گرافیکی باید کارساز باشد. در نخستین اجرا، stdiscosrv فایل‌های گواهی و پایگاه داده را در دایرکتوری جاری ایجاد می‌کند، مگر اینکه پرچم‌هایی خلاف این به آن داده شده باشد. .sp سرور اکتشاف همچنین می‌تواند از طریق apt، مدیر بستهٔ دبیان/اوبونتو، تهیه شود. نسخه‌های اخیر را می‌توان در \X'tty: link https://apt.syncthing.net'\fI\%مخزن apt\fP <\fBhttps://apt.syncthing.net\fP>\X'tty: link'\& برنامهٔ Syncthing یافت. نام بسته syncthing\-discosrv است. .SS "پیکربندی (Configuring)" .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 اگر یک نمونه از Syncthing را روی همان سرور اکتشاف اجرا می‌کنید، باید آن نمونه را با یک آدرس ایستا (static) به سایر دستگاه‌ها اضافه کنید، یا اینکه سرور اکتشاف و نمونه‌های Syncthing را به آدرس‌های IP متفاوتی مقید (bind) نمایید. .UNINDENT .UNINDENT .SS "گواهی‌ها (Certificates)" .sp سرور اکتشاف خدمات خود را بر بستر HTTPS ارائه می‌دهد. برای تضمین اتصالات امن از سوی کلاینت‌ها، سه گزینه وجود دارد: .INDENT 0.0 .IP \(bu 2 استفاده از یک جفت گواهی امضاشده توسط مراجع معتبر (CA\-signed) برای نام دامنه‌ای که برای سرور اکتشاف به کار می‌برید. این روش مشابه هر وب‌سایت HTTPS دیگری است؛ کلاینت‌ها سرور را بر پایهٔ گواهی و نام دامنهٔ آن اعتبارسنجی می‌کنند. .IP \(bu 2 استفاده از هر جفت گواهی دلخواه و واگذاری اعتبارسنجی سرور به کلاینت‌ها بر اساس «شناسهٔ دستگاه» (device ID) آن (مشابه اعتبارسنجی Syncthing به Syncthing). این گزینه می‌تواند همراه با گواهی تولیدشدهٔ خودکار توسط سرور اکتشاف استفاده شود. .IP \(bu 2 ارسال پرچم \fB\-\-http\fP در صورتی که سرور اکتشاف پشت یک پراکسی معکوس امن‌شده با SSL قرار دارد. برای پیکربندی به بخش زیر مراجعه کنید. .UNINDENT .sp در مورد دو گزینهٔ اول، مسیرهای فایل گواهی و کلید باید در هنگام راه‌اندازی به سرور اکتشاف داده شوند. در صورت استفاده از پرچم \fBhttp\fP این کار ضرورتی ندارد: .INDENT 0.0 .INDENT 3.5 .sp .EX $ stdiscosrv \-\-cert=/path/to/cert.pem \-\-key=/path/to/key.pem Server device ID is 7DDRT7J\-UICR4PM\-PBIZYL3\-MZOJ7X7\-EX56JP6\-IK6HHMW\-S7EK32W\-G3EUPQA .EE .UNINDENT .UNINDENT .sp سرور اکتشاف شناسهٔ دستگاه خود را در زمان راه‌اندازی چاپ می‌کند. در صورتی که از گواهی امضاشده توسط CA استفاده نمی‌کنید، این شناسهٔ دستگاه (اثر انگشت) باید در نشانی URL سرور اکتشاف به کلاینت‌ها ارائه شود: .INDENT 0.0 .INDENT 3.5 .sp .EX https://disco.example.com:8443/?id=7DDRT7J\-UICR4PM\-PBIZYL3\-MZOJ7X7\-EX56JP6\-IK6HHMW\-S7EK32W\-G3EUPQA .EE .UNINDENT .UNINDENT .sp در غیر این صورت، نشانی URL به این شکل خواهد بود: .INDENT 0.0 .INDENT 3.5 .sp .EX https://disco.example.com:8443/ .EE .UNINDENT .UNINDENT .SS "راه‌اندازی پراکسی معکوس (Reverse Proxy Setup)" .sp افزوده‌شده در نسخهٔ 1.8.0: سرآیند HTTP جدید «X\-Client\-Port» اضافه شد. .sp سرور اکتشاف می‌تواند پشت یک پراکسی معکوس امن‌شده با SSL اجرا شود. این قابلیت امکانات زیر را فراهم می‌کند: .INDENT 0.0 .IP \(bu 2 استفاده از یک نام زیردامنه بدون نیاز به درج شمارهٔ درگاه در نشانی URL .IP \(bu 2 اشتراک‌گذاری یک گواهی SSL بین چندین سرویس روی همان سرور .UNINDENT .sp توجه داشته باشید که پس از اعمال این پیکربندی، چنانچه پراکسی از یک گواهی HTTPS معتبر استفاده کند، \fBکلاینت‌ها باید پارامتر\fP \fB?id=...\fP \fBرا از نشانی URL سرور اکتشاف در پیکربندی خود حذف کنند\fP\&. اعتبارسنجی سمت کلاینت از طریق بررسی گواهی HTTPS سرور پراکسی که در دیدرس است انجام می‌پذیرد. اما اگر پراکسی از یک گواهی خودامضاشده یا به نحوی نامعتبر استفاده کند، کلاینت‌ها کماکان باید پارامتر \fB?id=...\fP را به همراه هش محاسبه‌شدهٔ گواهی پراکسی تنظیم نمایند. استفاده از چنین پیکربندی‌ای توصیه نمی‌شود و در این صفحه توضیح داده نشده است. همواره استفاده از گواهی‌های معتبر و شناخته‌شده را ترجیح دهید. .SS "پیش‌نیازها (Requirements)" .INDENT 0.0 .IP \(bu 2 اجرای سرور اکتشاف با پرچم \-http: \fBstdiscosrv \-http\fP\&. .IP \(bu 2 پیکربندی گواهی/کلید SSL برای پراکسی معکوس. .IP \(bu 2 سرآیند HTTP با عنوان «X\-Forwarded\-For» باید حاوی آدرس IP واقعی کلاینت باشد و عبور داده شود. .IP \(bu 2 سرآیند HTTP با عنوان «X\-Client\-Port» باید عبور داده شود و دربردارندهٔ درگاه اتصال واقعی کلاینت باشد. .IP \(bu 2 سرآیند HTTP با عنوان «X\-SSL\-Cert» باید حاوی گواهی SSL کلاینت با کدگذاری PEM باشد و عبور داده شود. این سرآیند در درخواست‌های POST موجود خواهد بود و ممکن است در درخواست‌های GET کلاینت‌ها خالی باشد. اگر مشاهده کردید syncthing\-discosrv هنگام دریافت درخواست‌های POST پیام \fBno certificates\fP را چاپ می‌کند، دلیلش این است که پراکسی این سرآیند را منتقل نمی‌کند. .IP \(bu 2 پراکسی باید گواهی SSL کلاینت را درخواست کند، اما نباید امضاشدن آن توسط یک CA معتبر را الزامی سازد. .UNINDENT .SS Nginx .sp این خطوط در فایل پیکربندی، چهار پیش‌نیاز انتهایی فهرست بالا را پوشش می‌دهند: .INDENT 0.0 .INDENT 3.5 .sp .EX proxy_set_header X\-Forwarded\-For $proxy_add_x_forwarded_for; proxy_set_header X\-Client\-Port $remote_port; proxy_set_header X\-SSL\-Cert $ssl_client_cert; ssl_verify_client optional_no_ca; .EE .UNINDENT .UNINDENT .sp در ادامه نمونه‌ای کامل از یک فایل پیکربندی Nginx آمده است. با این پیکربندی، کلاینت‌ها می‌توانند از \X'tty: link https://discovery.example.com'\fI\%https://discovery.example.com\fP\X'tty: link' به عنوان نشانی URL سرور اکتشاف در تنظیمات Syncthing استفاده کنند. .INDENT 0.0 .INDENT 3.5 .sp .EX # HTTP 1.1 support proxy_http_version 1.1; proxy_buffering off; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header X\-Real\-IP $remote_addr; proxy_set_header X\-Client\-Port $remote_port; proxy_set_header X\-Forwarded\-For $proxy_add_x_forwarded_for; proxy_set_header X\-Forwarded\-Proto $http_x_forwarded_proto; proxy_set_header X\-SSL\-Cert $ssl_client_cert; proxy_set_header X\-Forwarded\-Tls\-Client\-Cert \(dq\(dq; proxy_set_header X\-Tls\-Client\-Cert\-Der\-Base64 \(dq\(dq; upstream discovery.example.com { # Local IP address:port for discovery server server 192.0.2.1:8443; } server { server_name discovery.example.com; listen 80; access_log /var/log/nginx/access.log vhost; return 301 https://$host$request_uri; } server { server_name discovery.example.com; listen 443 ssl http2; access_log /var/log/nginx/access.log vhost; # Mozilla Intermediate configuration (https://wiki.mozilla.org/Security/Server_Side_TLS) ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE\-ECDSA\-AES128\-GCM\-SHA256:ECDHE\-RSA\-AES128\-GCM\-SHA256:ECDHE\-ECDSA\-AES256\-GCM\-SHA384:ECDHE\-RSA\-AES256\-GCM\-SHA384:ECDHE\-ECDSA\-CHACHA20\-POLY1305:ECDHE\-RSA\-CHACHA20\-POLY1305:DHE\-RSA\-AES128\-GCM\-SHA256:DHE\-RSA\-AES256\-GCM\-SHA384; ssl_prefer_server_ciphers off; ssl_session_tickets off; ssl_session_timeout 5m; ssl_session_cache shared:SSL:50m; ssl_verify_client optional_no_ca; # OCSP stapling ssl_stapling on; ssl_stapling_verify on; # Certificates ssl_certificate /etc/nginx/certs/discovery.example.com.crt; ssl_certificate_key /etc/nginx/certs/discovery.example.com.key; # curl https://ssl\-config.mozilla.org/ffdhe2048.txt > /path/to/dhparam ssl_dhparam /path/to/dhparam; # HSTS (ngx_http_headers_module is required) (63072000 seconds) add_header Strict\-Transport\-Security \(dqmax\-age=63072000\(dq always; location / { proxy_pass http://discovery.example.com; } } .EE .UNINDENT .UNINDENT .sp نمونه‌ای از خودکارسازی گواهی‌های SSL و راه‌اندازی پراکسی معکوس برای سرور اکتشاف و Syncthing با استفاده از Nginx، \X'tty: link https://letsencrypt.org'\fI\%Let’s Encrypt\fP <\fBhttps://letsencrypt.org\fP>\X'tty: link' و Docker را می‌توانید در \X'tty: link https://forum.syncthing.net/t/docker-syncthing-and-syncthing-discovery-behind-nginx-reverse-proxy-with-lets-encrypt/6880'\fI\%اینجا\fP <\fBhttps://forum.syncthing.net/t/docker-syncthing-and-syncthing-discovery-behind-nginx-reverse-proxy-with-lets-encrypt/6880\fP>\X'tty: link'\& بیابید. .SS Apache .sp خطوط زیر باید به پیکربندی اضافه شوند: .INDENT 0.0 .INDENT 3.5 .sp .EX SSLProxyEngine On SSLVerifyClient optional_no_ca RequestHeader set X\-SSL\-Cert \(dq%{SSL_CLIENT_CERT}s\(dq RequestHeader unset X\-Forwarded\-Tls\-Client\-Cert RequestHeader unset X\-Tls\-Client\-Cert\-Der\-Base64 .EE .UNINDENT .UNINDENT .sp مشاهده شده است که موارد زیر دست‌کم در Apache httpd 2.4.38 الزامی نیستند، زیرا ماژول پراکسی سرآیند مورد نیاز را به‌طور پیش‌فرض می‌افزاید. چنانچه نیاز دارید این دستورالعمل را به‌صراحت اضافه کنید، مطمئن شوید که ابتدا دستور \fBa2enmod remoteip\fP را اجرا کرده‌اید. سپس خط زیر را به پیکربندی Apache httpd اضافه کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX RemoteIPHeader X\-Forwarded\-For .EE .UNINDENT .UNINDENT .SS Caddy .sp خطوط زیر باید به Caddyfile اضافه شوند: .INDENT 0.0 .INDENT 3.5 .sp .EX discovery.example.com { reverse_proxy 192.0.2.1:8443 { header_up X\-Forwarded\-For {http.request.remote.host} header_up X\-Client\-Port {http.request.remote.port} header_up X\-Tls\-Client\-Cert\-Der\-Base64 {http.request.tls.client.certificate_der_base64} header_up \-X\-Ssl\-Cert header_up \-X\-Forwarded\-Tls\-Client\-Cert } tls { client_auth { mode request } } } .EE .UNINDENT .UNINDENT .INDENT 0.0 .INDENT 3.5 .sp .EX .EE .UNINDENT .UNINDENT .sp برای جزئیات بیشتر، توصیه‌های موجود در صفحهٔ \X'tty: link https://docs.syncthing.net/users/reverseproxy.html'\fI\%Reverse Proxy Setup\fP <\fBhttps://docs.syncthing.net/users/reverseproxy.html\fP>\X'tty: link' را نیز مطالعه فرمایید. توجه داشته باشید که آن صفحه به راه‌اندازی پراکسی برای واسط وب Syncthing اختصاص دارد؛ بنابراین باید تغییرات متناسب را در مسیرها و شمارهٔ درگاه‌ها برای پراکسی کردن سرور اکتشاف و سناریوی اختصاصی خود اعمال کنید. .SH "همچنین ببینید (SEE ALSO)" .sp \fBsyncthing\-networking(7)\fP, \fBsyncthing\-faq(7)\fP .SH "نویسندگان (AUTHORS)" The Syncthing Authors .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2014-2026, The Syncthing Authors .\" Generated by docutils manpage writer. .