نقاطانتهایی
endpoints پشتههای پروتکلی را نگه میدارد که همزمان ورودی و خروجیاند: برای نمونه یک نمونهٔ WireGuard یا Tailscale هم اتصالهای رسیده از تونل را میپذیرد و هم اتصالهایی به داخل تونل آغاز میکند. شکل مدخل همان پاکت تختِ ورودیها و خروجیهاست — type / tag بهعلاوهٔ فیلدهای خود نوع انتخابشده در همان سطح.
پاکت
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
type | string | — | wireguard | openconnect | openvpn-client | openvpn-server | tailscale | نوع نقطهانتهایی. تعیین میکند بقیهٔ شیء به کدام ساختار گزینهها رمزگشایی شود. |
tag | string | — | — | نام یکتای این نقطهانتهایی. هر جا tag خروجی پذیرفته شود قابل استفاده است و در سمت ورودی هم توسط قواعد مسیر تطبیقپذیر است. |
منبع: option/endpoint.go:18-22 · ثابتشده در v1.14.2 (af6e64c)
فیلدهای هر نوع در WireGuard و Tailscale مستند شدهاند. OpenVPN و OpenConnect در OpenVPN و OpenConnect مستند شدهاند.
مثال حداقلی
json
{
"endpoints": [
{
"type": "wireguard",
"tag": "wg-ep",
"address": ["10.0.0.2/32"],
"private_key": "<base64-private-key>",
"peers": [
{
"address": "wg.example.com",
"port": 51820,
"public_key": "<base64-public-key>",
"allowed_ips": ["0.0.0.0/0"]
}
]
}
],
"route": { "final": "wg-ep" }
}نکات
- WireGuard یک نقطهانتهایی است؛ خروجی
wireguardوجود ندارد. همان ساختار هر دو سوی تونل را پوشش میدهد. -
wireguardبه ساختی با برچسبwith_wireguard،tailscaleبهwith_tailscale،openvpn-client/openvpn-serverبهwith_openvpnوopenconnectبهwith_openconnectنیاز دارد (باینریهای انتشار رسمی هر چهار را دارند). -
openvpn-client/openvpn-serverبا سرورها و کلاینتهای استاندارد OpenVPN سازگارند، از جمله حالت کلید ایستا و مجموعهرمزها و الگوریتمهای چکیدهساز قدیمی. نوع سرور DNS همراه،openvpn، از گزینههای DNS که سرور OpenVPN ارسال میکند استفاده میکند. -
openconnectفقط کلاینت است و با سرورهای Cisco AnyConnect، GlobalProtect، Fortinet، F5، Pulse Connect Secure و Juniper Network Connect کار میکند؛ نوع سرور DNS openconnectاز حلکنندههای DNS تقسیمشدهای که ارسال میکند استفاده میکند. ورودهای تعاملی (مثلاً SSO) از طریق کلاینتهای گرافیکی یا Dashboard sing-box انجام میشوند. - اتصالهای TCP، UDP و ICMP از ورودیهای L3 (TUN، WireGuard، Tailscale) میتوانند در pre-match مستقیماً در لایهٔ L3 به نقطهانتهاییهای WireGuard و Tailscale هدایت شوند، بدون ترجمهٔ L3 به L4.
- قواعد مسیر میتوانند ترافیکِ بیرونآمده از نقطهانتهایی را همانطور تطبیق دهند که tag ورودی را تطبیق میدهند.
نکات بینهستهای
- Xray-core WireGuard را بهصورت پروتکل عادی ورودی یا خروجی نگه میدارد (
protocol: "wireguard"وIsClientبسته به جایگاه). WireGuard در Xray را ببینید. - mihomo WireGuard را فقط بهصورت پراکسی (خروجی) مدل میکند. WireGuard در mihomo را ببینید.
منبع: option/endpoint.go:18-22 · v1.14.2 (af6e64c)
