Bridge — sing-box
bridge همتای L3 خروجی direct است. بهجای باز کردن سوکت، ترافیک L3 — TCP، UDP و ICMP — را که از یک ورودی TUN یا نقطهانتهایی L3 دیگری (WireGuard، Tailscale) میرسد، مستقیماً از یک رابط شبکه بیرون میفرستد، بیآنکه ابتدا آن را به اتصال L4 تبدیل کند.
دسترسیها و پلتفرمها
bridge به دسترسی بالا نیاز دارد و فقط در Linux، macOS، Windows (x86 / x64، از طریق WinDivert)، Android روتشده و iOS جیلبریکشده در دسترس است؛ در هر پلتفرم دیگری این خروجی هنگام راهاندازی خطا میدهد. در کلاینتهای گرافیکی به نسخهٔ مستقل macOS همراه با سرویس کمکی آن، دسترسی روت در Android یا دستگاه iOS جیلبریکشده نیاز دارد.
گزینههای خروجی
type: "bridge" زیر outbounds[]:
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
interface | string | (default interface) | <interface name> | رابط خروجی برای ترافیک بازارسالشده. اگر تنظیم نشود رابط پیشفرض به کار میرود؛ تا زمانی که رابط انتخابشده در دسترس نباشد، ترافیک اسقاط میشود. |
bridge_name | string | bridge | <name prefix> | پیشوند نام رابط TUN مربوط به bridge که sing-box ایجاد میکند. در پلتفرمهای Apple اثری ندارد. |
iproute2_table_index | int | 2200 + instance index | <int> | فقط Linux و فقط وقتی interface تنظیم شده باشد: اندیس جدول مسیریابی iproute2 برای مسیرهای خروجی ثابتشده. |
iproute2_rule_index | int | 100 | <int> | فقط Linux: اندیس آغازین قواعد iproute2 که bridge نصب میکند. |
منبع: option/bridge.go:3-8 · ثابتشده در v1.14.2 (af6e64c)
مثالها
ترافیک مقصد LAN را که TUN گرفته است در L3 از طریق bridge بازارسال کنید و بقیه را از direct بفرستید:
{
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"address": ["172.19.0.1/30"],
"auto_route": true
}
],
"outbounds": [
{ "type": "direct", "tag": "direct" },
{ "type": "bridge", "tag": "bridge-out" }
],
"route": {
"rules": [
{
"ip_cidr": ["192.168.0.0/16"],
"preferred_by": ["bridge-out"],
"outbound": "bridge-out"
}
],
"final": "direct"
}
}نکات
bridgeفقط ترافیک L3 را حمل میکند. از طریق یک کنشrouteبه آن میرسید که در مرحلهٔ پیشتطبیق روی یک ورودی L3 (TUN، WireGuard، Tailscale) تطبیق یابد. اتصالهایی که از ورودیهای L4 (SOCKS، HTTP و …) میآیند یا با قواعدی مسیریابی میشوند که فقط پس از پیشتطبیق تطبیق مییابند، باonly L3 traffic is supported by bridgeشکست میخورند.- مقصدهای محلیِ خود دستگاه — loopback، آدرس نامشخص یا هر آدرسی که به رابطهای خود دستگاه اختصاص یافته — با یک هشدار رد میشوند. آنها را در قواعد خود مستثنا کنید.
preferred_by: ["<bridge tag>"]دروازهٔ پیشنهادی است: برای bridge با هر مقصد غیرمحلی تطبیق مییابد و فقط در پیشتطبیق، پس هرگز ترافیکی را کهbridgeنمیتواند رسیدگی کند نمیگیرد.bridgeمیتواند خروجی پیشفرض هم باشد: وقتی در پیشتطبیق هیچ قاعدهای تطبیق نیابد، بازارسال L3 همچنان اعمال میشود (برای گروههای خروجی، عضو انتخابشدهٔ فعلی به کار میرود). اتصالهای L4 که به آن برسند رد میشوند.- مقصدهای FakeIP باید در پیشتطبیق با کنش
resolveحل شوند، وگرنه اتصال رد میشود. - برای ICMP،
directنیز میتواند در L3 بازارسال کند؛ برای TCP و UDP فقطbridgeو نقطهانتهاییهای WireGuard / Tailscale.
نکات بینهستهای
- Xray-core و mihomo خروجی بازارسال L3 ندارند: ورودیهای TUN آنها همیشه TCP / UDP را خاتمه میدهند و از طریق یک خروجی دوباره متصل میشوند (
freedomدر Xray،DIRECTدر mihomo). به TUN — Xray-core و TUN — mihomo مراجعه کنید.
منبع: option/bridge.go:3-8 · v1.14.2 (af6e64c)
