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

GooseRelay

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

GooseRelay ترافیک شما را از طریق یک وب‌اپ Google Apps Script به سرور خودتان می‌فرستد. از دید شبکه، دستگاه شما فقط با یک نشانی گوگل و با نام www.google.com روی HTTPS حرف می‌زند. این یک outbound است: "type": "gooserelay" در فهرست outbounds. این خروجی سمت کلاینت پروژهٔ GooseRelayVPN است.

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

  • در شبکه‌هایی کار می‌کند که بیشتر سرورها را می‌بندند ولی مجبورند گوگل را باز بگذارند.
  • هر اتصال TCP را می‌برد، نه فقط صفحه‌های وب، چون یک سرور واقعی از آن شما اتصال‌ها را باز می‌کند.

دو چیز را باید از قبل آماده کنید: یک سرور کوچک (VPS) که سرور خروجی GooseRelayVPN روی آن اجرا شود، و یک یا چند استقرار (deployment) از اسکریپت فرستندهٔ GooseRelayVPN در Google Apps Script. پروژهٔ GooseRelayVPN هر دو را توضیح می‌دهد. هر استقرار سقف روزانه‌ای برای تعداد درخواست‌هایی دارد که گوگل برایش اجرا می‌کند، پس برای مصرف زیاد چند استقرار لازم است.

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

خروجی به یک نشانی گوگل وصل می‌شود و www.google.com (یا نام‌های sni) را به‌عنوان نام سرور TLS به کار می‌برد. درون همان اتصال TLS، درخواست‌ها به script.google.com می‌روند. به این کار domain fronting می‌گویند: فیلتر اتصالی به گوگل می‌بیند و گوگل درخواست را به Apps Script شما می‌رساند. اسکریپت داده‌ها را بدون خواندن به سرور شما می‌فرستد.

همه‌چیز با AES-256-GCM و کلید tunnel_key رمز می‌شود که فقط دستگاه شما و سرور شما آن را می‌دانند. کلید هرگز به دست گوگل نمی‌رسد.

وقتی نشانی گوگل در google_host مسدود باشد، یا گوگل دیگر این درخواست‌ها را مسیریابی نکند، کمکی نمی‌کند.

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

  • پس از شروع، خروجی همهٔ استقرارهای script_keys را هم‌زمان بررسی می‌کند. بررسی تأیید می‌کند که استقرار عمومی است و فرستنده را اجرا می‌کند، سپس یک کاوش رمزشده می‌فرستد تا ببیند سرور شما در دسترس است و کلید درست است. خروجی با قبول شدن یک استقرار آماده می‌شود، و اگر همه رد شوند ناموفق است. پیام‌های لاگ می‌گویند مشکل چیست، مثلاً شناسهٔ استقرار اشتباه یا کلید نادرست.
  • هر اتصال یک نشست می‌شود. داده‌هایش در دسته‌های رمزشده به صورت درخواست‌های HTTPS فرستاده می‌شوند و پاسخ‌ها با long polling برمی‌گردند. سرور شما اتصال واقعی به مقصد را باز می‌کند.
  • درخواست‌ها میان استقرارهای script_keys و میان نام‌های sni پخش می‌شوند. هر نام اتصال‌های TLS خودش را دارد.

پیکربندی

{
  "type": "gooserelay",
  "tag": "goose",
  "script_keys": ["<Apps Script deployment ID>"],
  "tunnel_key": "<64 hex characters, same as on the server>"
}
فیلد نوع پیش‌فرض معنی
script_keys list of strings الزامی شناسه‌های استقرار Apps Script. فقط شناسه را بگذارید، نه نشانی کامل را.
tunnel_key string الزامی کلید AES-256 به صورت ۶۴ نویسهٔ hex. باید با سرور یکی باشد.
google_host string "216.239.38.120:443" نشانی و درگاه گوگل برای اتصال. نشانی‌های دیگر گوگل هم کار می‌کنند.
sni list of strings ["www.google.com"] نام‌های سرور TLS. چند نام بار را پخش می‌کند.
handshake_timeout duration 10s بیشترین زمان بررسی هنگام شروع.
debug_timing bool false جزئیات زمان‌بندی رله را در لاگ بنویس.
udp_over_tcp object تنظیم UDP over TCP از sing-box. این خروجی از مسیریاب فقط TCP می‌پذیرد، پس ترافیک UDP مسیریابی‌شده از آن استفاده نمی‌کند.

این خروجی اتصال‌هایش به گوگل را خودش می‌سازد، پس فیلدهای اتصال مثل detour برای آن‌ها به کار نمی‌روند.

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


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

نظرات