cloudflared — sing-box
ورودی cloudflared یک رابطگر تعبیهشدهٔ Cloudflare Tunnel اجرا میکند. بهجای گوشدادن روی یک پورت محلی، با یک توکن تونل به لبهٔ Cloudflare وصل میشود و هر اتصالی را که تونل تحویل میدهد — TCP، UDP و ICMP — با برچسب همین ورودی به موتور مسیریابی sing-box میسپارد.
بدون شنوندهٔ محلی
cloudflared آدرس گوشدادن ندارد: فیلدهای گوشدادن (listen، listen_port و …) که در صفحهٔ ورودیها آمدهاند اعمال نمیشوند. همه چیز از طریق اتصالهای تونلِ برونسو میرسد.
گزینههای ورودی
type: "cloudflared" زیر inbounds[]:
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
token | string | (required) | <base64 tunnel token> | توکن تونل از داشبورد Cloudflare Zero Trust (Networks → Tunnels → Install connector). بدون آن راهاندازی شکست میخورد. |
ha_connections | int | 4 | <int> | تعداد اتصالهای با دسترسپذیری بالا به لبهٔ Cloudflare. مقدار 0 یا تنظیمنشده یعنی 4؛ سقف آن تعداد آدرسهای لبهٔ کشفشده است. |
protocol | string | auto | auto | quic | http2 | h2mux | ترابرد لبه. auto (یا خالی) با QUIC آغاز میکند و پس از شکستهای پیاپی یا وقتی QUIC مسدود به نظر برسد به HTTP/2 برمیگردد. h2mux پذیرفته میشود اما با یک هشدار مانند http2 رفتار میشود. |
post_quantum | bool | false | true | false | استفاده از تبادل کلید پساکوانتومی. فقط QUIC: ترابرد را روی QUIC ثابت میکند (بدون بازگشت به HTTP/2) و همراه با protocol: http2 رد میشود. |
edge_ip_version | int | 0 | 0 | 4 | 6 | نسخهٔ IP برای رسیدن به لبهٔ Cloudflare؛ 0 بهصورت خودکار انتخاب میکند. |
datagram_version | string | (remote) | v2 | v3 | نسخهٔ پروتکل دیتاگرام برای UDP روی QUIC. اگر تنظیم نشود از تنظیمات ویژگی راهدور Cloudflare برای حساب پیروی میکند (با شروع از v2). فقط با QUIC معنا دارد. |
grace_period | badoption.Duration | 30s | <duration> | بازهٔ خاموشی آرام برای اتصالهای لبهٔ در جریان. |
region | string | (from token) | <region> | انتخابگر منطقهٔ لبهٔ Cloudflare. اگر توکن از قبل یک نقطهانتهایی در خود داشته باشد رد میشود. |
control_dialer | DialerOptions | (direct) | Dial Fields | فیلدهای شمارهگیری برای اتصال به صفحهٔ کنترل Cloudflare. نامهای میزبان از طریق مسیریاب DNS در sing-box حل میشوند. |
tunnel_dialer | DialerOptions | (direct) | Dial Fields | فیلدهای شمارهگیری برای اتصال به صفحهٔ دادهٔ لبهٔ Cloudflare. |
منبع: option/cloudflared.go:5-16 · ثابتشده در v1.14.2 (af6e64c)
مثالها
هر چه تونل تحویل میدهد را بپذیرید و مستقیماً بیرون بفرستید:
json
{
"inbounds": [
{
"type": "cloudflared",
"tag": "cf-in",
"token": "<tunnel token>"
}
],
"outbounds": [
{ "type": "direct", "tag": "direct" }
],
"route": {
"rules": [
{ "inbound": ["cf-in"], "outbound": "direct" }
]
}
}نکات
- این نوع فقط با برچسب ساخت
with_cloudflaredکامپایل میشود؛ ساختهای دیگر هنگام راهاندازی با راهنمای ساخت مجدد خطا میدهند. - اینکه تونل کدام نامهای میزبان عمومی و شبکههای خصوصی را سرویس دهد در داشبورد Cloudflare پیکربندی میشود، نه در sing-box. آدرسهای مبدئی که آن قواعد ingress به آنها اشاره میکنند به مقصدهایی تبدیل میشوند که sing-box مسیریابی میکند؛ پس یک قاعده روی
inbound: ["<tag>"]تعیین میکند کدام خروجی به آنها برسد. - با
protocolپیشفرض، رابطگر با QUIC آغاز میکند و پس از پنج تلاش ناموفق (یا بیدرنگ وقتی QUIC مسدود به نظر برسد) به HTTP/2 برمیگردد. برای ثابت کردن یک ترابرد،quicیاhttp2را تنظیم کنید. post_quantumفقط روی QUIC کار میکند؛ همراه باprotocol: http2ورودی هنگام راهاندازی شکست میخورد.regionبا توکنهایی که از قبل یک نقطهانتهایی در خود دارند در تضاد است.control_dialerوtunnel_dialerفیلدهای شمارهگیری معمول را میپذیرند، پس خود تونل را میتوان از طریق خروجی دیگری (detour) برقرار کرد یا به یک رابط مقید کرد.
نکات بینهستهای
- Xray-core و mihomo رابطگر تعبیهشدهٔ Cloudflare Tunnel ندارند؛ با آنها باید دیمن مستقل
cloudflaredرا کنار هسته اجرا کنید.
منبع: option/cloudflared.go:5-16 · v1.14.2 (af6e64c)
