فهرست بهروز نودها
این صفحه یک نمای سریع از نودها و تونلهای موجود در سورس فعلی WaterWall است. برای تنظیم واقعی هر نود، صفحه اختصاصی همان نود را بخوانید؛ اما این جدول کمک میکند بفهمید هر نود در چه جای زنجیر استفاده میشود.
نکتههای پایه
- نودهای Listener معمولا ابتدای زنجیر هستند و برای هر اتصال یا peer یک line میسازند.
- نودهای Connector معمولا انتهای زنجیر هستند و به مقصد بیرونی وصل میشوند.
- نودهای packet مثل
TunDevice،RawSocket،WireGuardDevice،IpManipulatorوUdpStatelessSocketبا بسته خام کار میکنند، نه استریم معمولی TCP. - نودهای تبدیل مرز مثل
PacketsToStream،StreamToPackets،PacketsToConnectionوPacketSplitStreamبین مدل packet و stream پل میزنند. - بیشتر نودهای Client/Server باید در دو سمت مسیر با هم جفت شوند؛ مثلا
MuxClientباMuxServer.
جدول سریع
| نود | نوع کاربرد | جایگاه رایج |
|---|---|---|
TcpListener | پذیرش اتصال TCP ورودی | ابتدای زنجیر |
TcpConnector | اتصال TCP خروجی به مقصد | انتهای زنجیر |
UdpListener | UDP stateful، یک line برای هر peer | ابتدای زنجیر |
UdpConnector | UDP خروجی به یک یا چند مقصد | انتهای زنجیر |
UdpStatelessSocket | UDP stateless بر اساس routing context | کنار WireGuardDevice یا نود packet |
TunDevice | ساخت/استفاده از TUN و ورود/خروج IP packet | لبه packet |
RawSocket | ارسال و دریافت IP packet خام | لبه packet |
WireGuardDevice | پیادهسازی WireGuard داخل زنجیر | بین packet side و UdpStatelessSocket |
IpOverrider | تغییر source/destination IP یا port در packet | زنجیر packet |
IpManipulator | ترفندهای packet-level برای TCP/TLS/SNI | زنجیر packet |
PacketsToStream | تبدیل packet به stream با length-prefix | سمت packet به stream |
StreamToPackets | تبدیل stream length-prefixed به packet | سمت stream به packet |
PacketsToConnection | تبدیل packet/lwIP به connectionهای WaterWall | پل packet به stream |
PacketSplitStream | تفکیک مسیر packet و stream | پل ترکیبی |
PacketSender | ارسال packetهای ثابت/تست یا bootstrap | زنجیر packet |
TcpOverUdpClient / TcpOverUdpServer | حمل TCP-like stream روی UDP-style packet | دو سمت مسیر |
UdpOverTcpClient / UdpOverTcpServer | حمل packetهای UDP-style روی stream | دو سمت مسیر |
MuxClient / MuxServer | چند line منطقی روی یک یا چند اتصال | دو سمت مسیر |
ReverseClient / ReverseServer | ساخت تونل reverse برای عبور از NAT/firewall | دو سمت مسیر |
HalfDuplexClient / HalfDuplexServer | جداسازی upload و download در دو اتصال | دو سمت مسیر |
ObfuscatorClient / ObfuscatorServer | مبهمسازی payload با روشهای ساده مثل XOR | دو سمت مسیر |
EncryptionClient / EncryptionServer | رمزنگاری AEAD قاببندیشده | دو سمت مسیر |
TlsClient / TlsServer | TLS واقعی client/server side | کنار HTTP یا TCP |
HttpClient / HttpServer | کپسولهسازی payload داخل HTTP/1.1، HTTP/2 یا WebSocket | دو سمت مسیر یا اتصال به وب واقعی |
Socks5Client / Socks5Server | اتصال از/به SOCKS5 | لبه پروکسی یا سمت مقصد |
KeepAliveClient / KeepAliveServer | heartbeat برای تشخیص قطع مسیر | دو سمت مسیر |
PingClient / PingServer | تغییر شکل packetهای IPv4 با ICMP و برگشت دادن آن در سمت مقابل | زنجیر packet |
ConnectionFisherClient / ConnectionFisherServer | امتحان چند اتصال همزمان و نگه داشتن اولین مسیر سالم | دو سمت مسیر |
SpeedLimit | محدود کردن سرعت عبور داده | میانه زنجیر |
Disturber | شبیهسازی loss/corruption/delay برای تست | مسیرهای تست |
BlackHole | drop کردن payload یا بستن سریع line | تست، سیاست مسدودسازی |
Bridge | اتصال دو بخش جدا در یک config | معمولا به صورت جفت |
LoggerTunnel | ثبت payload بدون تغییر مسیر | هر جای مناسب برای عیبیابی |
TesterClient / TesterServer | تولید/بررسی ترافیک تست | سناریوهای تست |
پیشنهاد برای انتخاب نود
- برای سرویس TCP ساده:
TcpListener -> ... -> TcpConnector - برای UDP معمولی:
UdpListener -> ... -> UdpConnector - برای تونل IP کامل:
TunDevice -> ... -> TunDeviceیاTunDevice -> WireGuardDevice -> UdpStatelessSocket - برای عبور packet از مسیر stream:
PacketsToStreamرا باStreamToPacketsجفت کنید. - برای چند اتصال روی یک مسیر:
MuxClientوMuxServerرا روبهروی هم بگذارید. - برای HTTPS واقعی روی wire:
HttpClient -> TlsClient -> TcpConnector