پرش به محتویات

سایفون (Psiphon)

همهٔ قابلیت‌های هیدیفای

خروجی Psiphon با هستهٔ رسمی تونل سایفون، که درون sing-box ساخته شده، به شبکهٔ سایفون وصل می‌شود. سرورها را خود سایفون اداره می‌کند، پس فقط همین خروجی را لازم دارید. این یک outbound است: "type": "psiphon" در فهرست outbounds.

چرا از آن استفاده کنیم

  • بدون سرور شخصی و بدون حساب کاربری، یک پراکسی کارا دارید.
  • وقتی سرورهای خودتان مسدود شده‌اند، گزینهٔ آخر خوبی است: سایفون سرورهای زیاد و راه‌های زیادی برای رسیدن به آن‌ها دارد و فهرست سرورهایش را خودش به‌روز می‌کند.
  • با egress_region می‌توانید کشوری را که ترافیک از آن خارج می‌شود انتخاب کنید.

سایفون میان کاربران زیادی مشترک است. اغلب از سرور خودتان کندتر است و فقط TCP را می‌برد.

چطور از فیلترینگ عبور می‌کند

این کار را سایفون انجام می‌دهد، نه sing-box. هستهٔ تونل سرورهای زیادی از سایفون و چند پروتکل مبهم‌سازی‌شده برای رسیدن به آن‌ها می‌شناسد. آن‌ها را امتحان می‌کند تا یکی وصل شود، و پس از اتصال، فهرست امضاشده و به‌روز سرورها را دریافت می‌کند. اگر یک سرور یا پروتکل مسدود باشد، سراغ دیگری می‌رود.

وقتی شبکه همهٔ ترافیک به بیرون را می‌بندد، یا همهٔ سرورهای شناخته‌شدهٔ سایفون مسدودند و فهرست تازه‌ای هم دریافت نمی‌شود، کمکی نمی‌کند.

چطور کار می‌کند

  • هنگام شروع، خروجی یک پیکربندی سایفون می‌سازد (بخش config را ببینید)، انبارهٔ دادهٔ آن را در data_directory باز می‌کند و هستهٔ تونل را در پس‌زمینه راه می‌اندازد. شروع برنامه منتظر تونل نمی‌ماند.
  • تا تونل برقرار نشده، خروجی «Connecting...» نشان می‌دهد و اتصال‌ها از آن ناموفق‌اند. با برقراری اولین تونل، آن نشانه برداشته می‌شود و پایش هیدیفای بی‌درنگ آن را تست می‌کند.
  • هستهٔ تونل اتصال‌های خودش را به سرورهای سایفون می‌سازد. این اتصال‌ها از طریق یک پل SOCKS محلی، از تنظیمات اتصال همین خروجی (مثلاً detour) می‌گذرند و دوباره وارد VPN شما نمی‌شوند. اگر upstream_proxy_url را تنظیم کنید، به‌جای آن از این پراکسی استفاده می‌شود.
  • وقتی هستهٔ تونل متوقف شود (پس از establish_tunnel_timeout تسلیم شود یا خطا بدهد)، پس از ۵ ثانیه و هر بار با دو برابر فاصله، تا هر ۵ دقیقه، دوباره راه می‌افتد؛ یک اتصال موفق این فاصله را از نو شروع می‌کند.
  • چند خروجی سایفون می‌توانند هم‌زمان کار کنند، مثلاً یکی برای هر egress_region. هر کدام بارگیری‌هایش را در data_directory/<tag> نگه می‌دارد؛ آنچه نسخه‌های قبلی در خود data_directory نگه داشته‌اند به آن‌جا منتقل می‌شود. هستهٔ تونل وضعیتش را بدون گفتن این‌که دربارهٔ کدام خروجی است گزارش می‌کند، پس در کنار خروجی‌های سایفون دیگر، هر کدام پیش از این‌که متصل نشان داده شود تونل خودش را بررسی می‌کند.
  • با تغییر شبکه، خروجی به هستهٔ تونل می‌گوید دوباره وصل شود.
  • هر اتصال TCP از درون تونل سایفون به مقصد واقعی‌اش باز می‌شود. UDP پشتیبانی نمی‌شود.

پیکربندی

{
  "type": "psiphon",
  "tag": "psiphon",
  "egress_region": "DE"
}
فیلد نوع پیش‌فرض معنی
config string "" پیکربندی سایفون به‌عنوان نقطهٔ شروع. "hiddify" پیکربندی داخل اپ هیدیفای را به کار می‌برد، اگر این بیلد آن را داشته باشد؛ وگرنه هشداری ثبت می‌شود و پیش‌فرض‌ها به کار می‌روند. هر مقدار دیگر، پیکربندی JSON سایفون است، یا رمزشده با کلید این بیلد، یا به صورت base64. خالی یعنی پیش‌فرض‌ها.
data_directory string "data/psiphon" جایی که سایفون داده‌هایش را نگه می‌دارد: هر خروجی در پوشه‌ای به نام tag خودش.
egress_region string "" کد دوحرفی کشور سرور خروجی، مثلاً "US" یا "DE". خالی یعنی انتخاب با سایفون.
propagation_channel_id string "FFFFFFFFFFFFFFFF" مقدار شناسهٔ کلاینت سایفون.
sponsor_id string "FFFFFFFFFFFFFFFF" مقدار شناسهٔ کلاینت سایفون.
network_id string "test" شناسهٔ شبکه برای سایفون.
client_platform string مقدار داخلی رشتهٔ پلتفرمی که به سایفون فرستاده می‌شود.
client_version string "" رشتهٔ نسخه‌ای که به سایفون فرستاده می‌شود.
remote_server_list_url string نشانی فهرست عمومی سایفون جایی که فهرست سرورها از آن دریافت می‌شود.
remote_server_list_download_filename string "remote_server_list" نام فایل فهرست دریافت‌شده.
remote_server_list_signature_public_key string کلید عمومی سایفون کلیدی که امضای فهرست را بررسی می‌کند.
upstream_proxy_url string "" اتصال‌های خود سایفون را از این پراکسی بفرست، مثلاً socks5://127.0.0.1:1080. خالی یعنی تنظیمات اتصال همین خروجی.
allow_default_dns_resolver_with_bind_to_device bool true اجازه بده سایفون هنگام اتصال به یک رابط شبکه، از DNS سیستم استفاده کند.
establish_tunnel_timeout duration 1m مدتی که هستهٔ تونل برای اتصال تلاش می‌کند و بعد دست می‌کشد. مقدار کمتر از یک ثانیه، یک ثانیه حساب می‌شود.

فیلدهای معمول اتصال (detour، bind_interface و بقیه) هم همان‌طور که بالا گفته شد اعمال می‌شوند. فیلد network پذیرفته می‌شود ولی اثری ندارد: این خروجی فقط TCP است.

برای هر فیلد شناسه و فهرست سرور، ترتیب این است: مقدار تنظیم‌شده در خروجی، سپس مقدار داخل config، سپس پیش‌فرض.

همچنین ببینید


اخرین بروزرسانی: 26 فوریهٔ 2026

نظرات