TUN — Xray-core
Xray-core یک ورودی TUN را در proxy/tun فراهم میکند. این یک دستگاه TUN ایجاد میکند، بستههای خام را میخواند و آنها را با یک پشتهٔ شبکهٔ درونفرایندی حداقلی پیش از تحویل به خروجیها رمزگشایی میکند. در گذشته باید مسیرها، DNS و قواعد دیوارهٔ آتش را خودتان تنظیم میکردید؛ نسخههای اخیر کمککارهای انتخابی اضافه میکنند — gateway، dns، autoSystemRoutingTable و autoOutboundsInterface — که به Xray اجازه میدهند ورودیهای جدول مسیریابی سیستم را نصب کند و خروجیها را بهطور خودکار به یک رابط فیزیکی مقید کند.
این هنوز سبکتر از پشتههای TUN در sing-box / mihomo است: نه strict-route، نه auto-redirect و نه فیلتر UID/بسته وجود دارد. برای آنها از sing-box یا mihomo بهعنوان جلویی TUN استفاده کنید و خروجی آنها را از طریق Xray مسیریابی کنید.
ورودی
settings برای "protocol": "tun":
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
name | string | (auto-generated) | <interface name> | نام دستگاه TUN که در زمان راهاندازی ایجاد میشود. وقتی خالی باشد، یک نام استفادهنشدهٔ `utun<N>` (با N بین 10 تا 1024) بهطور خودکار انتخاب میشود. |
desc | string | Wintun | <string> | توضیح دستگاه که هنگام ایجاد به آداپتور Wintun داده میشود (فقط Windows). وقتی خالی باشد بهطور پیشفرض "Wintun" است. |
mtu | uint32 | 1500 | <bytes> | واحد بیشینهٔ ارسال برای این دستگاه. |
gateway | []string | — | <ip address> | … | آدرس(های) دروازه که به رابط TUN اختصاص داده میشوند. |
dns | []string | — | <ip address> | … | آدرس(های) سرور DNS که روی رابط TUN پیکربندی میشوند. |
userLevel | uint32 | 0 | <uint32> | سطح سیاست پیشفرض برای اتصالهای دریافتشده روی این ورودی. |
autoSystemRoutingTable | []string | — | <routing-table entry> | … | وقتی تنظیم شود، Xray بهطور خودکار ورودیهای جدول مسیریابی سیستم را نصب میکند که ترافیک را به درون دستگاه هدایت میکنند. ارائهٔ این فهرست مسیریابی خودکار را فعال میکند. |
autoOutboundsInterface | *string | auto | <interface name> | auto | رابط فیزیکی که اتصالهای خروجی به آن مقید میشوند، تا از حلقههای مسیریابی جلوگیری شود. وقتی autoSystemRoutingTable تنظیم شده باشد بهطور پیشفرض «auto» است. |
منبع: infra/conf/tun.go:14-23 · ثابتشده در v26.7.28 (5ca6f4b)
مثال
{
"inbounds": [{
"tag": "tun-in",
"protocol": "tun",
"settings": {
"name": "xray0",
"mtu": 9000
}
}]
}برای اینکه Xray خودش مسیریابی را مدیریت کند، autoSystemRoutingTable را اضافه کنید (و بهصورت اختیاری رابط خروجی را تثبیت کنید):
{
"inbounds": [{
"tag": "tun-in",
"protocol": "tun",
"settings": {
"name": "xray0",
"mtu": 1500,
"autoSystemRoutingTable": ["main"],
"autoOutboundsInterface": "auto"
}
}]
}یا بهجای آن شبکهبندی سیستم را بهصورت دستی پیکربندی کنید:
# Linux example
ip addr add 198.18.0.1/30 dev xray0
ip link set xray0 up
# Route everything through xray0 (skip your management subnet)
ip route add 1/1 dev xray0
ip route add 128/1 dev xray0
# DNS hijack
iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-port 5353
# (then have an Xray dokodemo-door inbound on 5353)نکات
- ورودی TUN در Xray یک خوانندهٔ سطح پایین بستههاست. خودش TCP/IP را تجزیه نمیکند؛ بهجای آن، بستهها توسط یک پشتهٔ شبکهٔ درونفرایندی حداقلی رمزگشایی میشوند و به خروجیها تحویل داده میشوند.
- استفادهٔ رایج در لینوکس: همراه با ورودیهای
dokodemo-doorو یک مجموعه قواعد iptables دستساز برای بخشهای پراکسی شفاف، یا تنظیمautoSystemRoutingTableتا Xray خودش مسیرها را نصب کند. autoSystemRoutingTableباعث میشود Xray ورودیهای جدول مسیریابی سیستم را بهطور خودکار مدیریت کند؛ وقتی حاضر باشد وautoOutboundsInterfaceحذف شود، رابط خروجی بهطور پیشفرضautoمیشود.gatewayوdnsآدرس و حلکننده(های) روی دستگاه را تنظیم میکنند.- در ویندوز/مکاواس، ورودی TUN در Xray یک دستگاه wintun / utun ایجاد میکند. با
autoSystemRoutingTableمیتواند مسیریابی را برای شما سیمکشی کند؛ در غیر این صورت آن را خودتان اسکریپت کنید. بسیاری از کاربران در آن پلتفرمها هنوز sing-box یا mihomo را برای مجموعهویژگیهای غنیتر TUN ترجیح میدهند.
نکات بینهستهای
- sing-box دارای یک ورودی TUN کاملاً مجهز با
auto_route،auto_redirect،strict_route،route_address، فیلتر UID/بسته و انتخاب پشتهٔ هر پلتفرم (gVisor / system / mixed) است. ببینید TUN — sing-box. - mihomo ورودی TUN معادل کاملی در بلوک سطح بالای
tun:دارد با مجموعهای از همان گزینهها با نامهای kebab-case. ببینید TUN — mihomo.
منبع: infra/conf/tun.go:14-23 · v26.7.28 (5ca6f4b)
