در یک برنامه سرور با تعداد زیادی اتصال همزمان، کدام یک از مکانیزمهای زیر برای مدیریت رویدادهای I/O بهینهتر است و چرا؟
1) select 2) poll 3) epoll 4) io_uring
1) select 2) poll 3) epoll 4) io_uring
Anonymous Quiz
14%
گزینه ۱) چون select سادهترین روش برای مدیریت چندین اتصال همزمان است.
23%
گزینه ۲) چون poll محدودیت تعداد فایلدسکریپتورهای همزمان را برطرف میکند.
25%
گزینه ۳) چون epoll بهرهوری بالاتری برای مدیریت تعداد زیادی اتصال در مقیاس بزرگ دارد.
39%
گزینه ۴) چون io_uring علاوه بر مدیریت I/O، سربار سیستمکالها را به حداقل میرساند.
ورژن دوم اسکریپت ایزی مش که از آخرین نسخه هسته موجود استفاده میکنه و خیلی از مشکلاتش برطرف شده. برای استفاده از ورژن دوم از طریق اسکریپت قبلی ابتدا تانل رو پاک کنید. کانفیگ هر دو ورژن مشابه هم هست اما با هم دیگه سازگار نیستند.
https://github.com/Musixal/Easy-Meshbash <(curl -Ls --ipv4 https://github.com/Musixal/easy-mesh/raw/main/easymesh_v2.sh)👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
5 32❤🔥21👌18 4
🌟 io_uring: a Linux-specific API for asynchronous I/O
یکی از قابلیتهای جدید و قدرتمند لینوکس io_uring است که برای بهبود عملکرد ورودی/خروجی (I/O) طراحی شده است. ایده اصلی این فناوری این است که انجام عملیات I/O (مثل خواندن و نوشتن دادهها از فایلها یا شبکه) را سریعتر و کارآمدتر کند.
توضیح ساده:
وقتی برنامهای در لینوکس بخواهد چیزی از دیسک بخواند یا روی آن بنویسد، معمولاً باید از کرنل بخواهد این کار را انجام دهد. این فرآیند شامل "سیستم کال" (system call) است که زمانبر است و در عملیات I/O زیاد، سرعت سیستم را کند میکند.
پس io_uring به برنامه اجازه میدهد که:
درخواستهای I/O را در یک حلقه (queue) قرار دهد.
کرنل این درخواستها را به صورت غیرهمزمان (async) و سریع اجرا کند.
نتیجه درخواستها را به برنامه اطلاع دهد، بدون نیاز به سیستم کالهای اضافی.
مزایا:
سرعت بالا: به خاطر کاهش تعداد سیستم کالها.
پرفورمنس بهتر: مخصوصاً برای برنامههایی که به تعداد زیادی عملیات I/O نیاز دارند.
غیرهمزمان بودن: درخواستها به طور موازی انجام میشوند و برنامه میتواند همزمان به کارهای دیگری بپردازد.
👁@Gozar_Xray
یکی از قابلیتهای جدید و قدرتمند لینوکس io_uring است که برای بهبود عملکرد ورودی/خروجی (I/O) طراحی شده است. ایده اصلی این فناوری این است که انجام عملیات I/O (مثل خواندن و نوشتن دادهها از فایلها یا شبکه) را سریعتر و کارآمدتر کند.
توضیح ساده:
وقتی برنامهای در لینوکس بخواهد چیزی از دیسک بخواند یا روی آن بنویسد، معمولاً باید از کرنل بخواهد این کار را انجام دهد. این فرآیند شامل "سیستم کال" (system call) است که زمانبر است و در عملیات I/O زیاد، سرعت سیستم را کند میکند.
پس io_uring به برنامه اجازه میدهد که:
درخواستهای I/O را در یک حلقه (queue) قرار دهد.
کرنل این درخواستها را به صورت غیرهمزمان (async) و سریع اجرا کند.
نتیجه درخواستها را به برنامه اطلاع دهد، بدون نیاز به سیستم کالهای اضافی.
مزایا:
سرعت بالا: به خاطر کاهش تعداد سیستم کالها.
پرفورمنس بهتر: مخصوصاً برای برنامههایی که به تعداد زیادی عملیات I/O نیاز دارند.
غیرهمزمان بودن: درخواستها به طور موازی انجام میشوند و برنامه میتواند همزمان به کارهای دیگری بپردازد.
👁@Gozar_Xray
❤🔥15 7 2
Forwarded from XRay Chat (Doc)
Anonymous Poll
43%
TCP
9%
TCPMUX
6%
WS
1%
WSMUX
2%
WSS
2%
WSSMUX
5%
UDP
3%
UDP over TCP
29%
None (other tunnels)
* bump version to 0.6.4
* tcp keep alive
* enabling keepalive for connections, this will make easier for the server to detect connection losses at tcp level
* set keepalive for localconnections in wsmux
* set keepalive for local connection in ws
* set nodelay for control channel and tunnel connections are able to obtain nodelay
* set nodelay for control channel and tunnel connections are able to obtain nodelay settings
* force control channel for nodelay
* force control channel for nodelay
* add buffers and set nodelay on control channel
* add buffers and set nodelay on control channel
* tcp nodelay for channel dialer
* add tcp buffers also nodelay for local and control channel
* add tcp buffers also nodelay for local and control channel
* TCP and Websocekt Dialers Now Have Custom SO_RCVBUF & SO_SNDBUF which take effect if so_rcvbuf > 0 or so_sndbuf > 0
* new optimizations for fixing buffers
این آپدیت به لطف آقا شهرام مشکلات مربوط به بافر TCP رو تا حدود زیادی حل می کنه، مخصوصا وقتی که یوزر اسپید تست میگیره و حجم اضافه در پنل میفته. (قسمتی هم مربوط به بافر xray هست البته). نکته دیگه شاید برای UDP over TCP این تنظیمات اوکی نباشه بنابراین feedback بدید تا بررسی بشه.
👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
3👌30❤🔥12 12
فان فکت: استاد در ویدئو آخرش برای بار هزارم آموزش نصب xui رو داد. 😧
Please open Telegram to view this post
VIEW IN TELEGRAM
1 180 79
اگر دامنه شما در کلادفلر بلاک شده است، لطفاً اعلام کنید از چه روشی از این سرویس استفاده میکردید؟
Anonymous Poll
20%
برای اتصال مستقیم (CDN)
11%
برای اتصال ریورس (Tunneling)
5%
هر دو مورد
64%
دیدن نتایج
اون دسته از افرادی که روی ریورس CDN بکهال دامنهشون توی کلادفلر بلاک شده اول دامنهتون رو دیلیت کنید، بعد یه اکانت کلاد جدید بسازید و دامنه رو ببرید داخلش. اینجوری مجددا کار میده.
ورژن آخر یعنی v0.6.5 رو هم نصب کنید. توی این ورژن user-agent رندوم و path رندوم اضافه شده. هنوز نمیدونیم دلیل این بلاک شدن ها تعداد کانکشن های بالای XRay Core هست یا مربوط به IP ایران میشه.
* better log for ApplyTCPTuning
* random tunnel path for ws/wss connections
* random user-agent for ws/wss connections
👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
15❤🔥27 16👌5 3
کلادفلر دیگه اجازه استفاده سرویس CDN برای VPN نمیده و در صورت فهمیدن این موضوع کل شبکه CDN خودشو برای اون دامنه میبنده.
👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
31👌147 118 31
Everything Is Open Source , If You Can Read Assembly ☹️
Please open Telegram to view this post
VIEW IN TELEGRAM
اگر به دنبال جستجوی حرفهایتر و دقیقتر در فایلها هستید، ابزار grep در لینوکس امکانات پیشرفتهای ارائه میدهد. در اینجا چند روش پیشرفته برای استفاده از grep آورده شده است.
۱. جستجوی عبارات پیچیده با Regular Expressions پیشرفته
برای جستجوی الگوهای پیچیده، از -E برای فعال کردن حالت Extended Regular Expressions استفاده کنید:
grep -E "^(ERROR|WARNING):.*" log.txt
این دستور تمام خطوطی که با ERROR یا WARNING شروع میشوند را در فایل log.txt پیدا میکند.
۲. نمایش تعداد وقوع عبارات
برای شمارش تعداد دفعاتی که یک عبارت در فایل ظاهر شده، از گزینه -c استفاده کنید:
grep -c "404" access.log
این دستور تعداد دفعاتی که کد خطای 404 در فایل access.log ظاهر شده را نمایش میدهد.
۳. جستجو در فایلهای بزرگ با حافظه کمتر
اگر با فایلهای بسیار بزرگ کار میکنید و نمیخواهید از حافظه زیاد استفاده شود، از گزینه --line-buffered استفاده کنید:
grep --line-buffered "search_term" large_file.txt
این گزینه هر خط را پس از پردازش بلافاصله چاپ میکند و حافظه کمتری مصرف میشود.
۴. جستجو و حذف خطوط نامطلوب
اگر بخواهید خطوطی که شامل عبارت خاصی نیستند را حذف کنید (یا فقط خطوط بدون آن عبارت را ببینید)، از گزینه -v استفاده کنید:
grep -v "DEBUG" log.txt
این دستور تمام خطوطی که عبارت DEBUG ندارند را نمایش میدهد.
۵. جستجو در فایلهای باینری
برای جستجو در فایلهای باینری یا دادههای غیرمتنی، از گزینه -a استفاده کنید:
grep -a "magic_number" binary_file.bin
این دستور فایلهای باینری را مانند فایل متنی پردازش میکند.
۶. ترکیب grep با ابزارهای دیگر
دستور grep را میتوان بهراحتی با سایر ابزارهای لینوکس ترکیب کرد تا جستجو و پردازش دادهها بهینه شود. مثال:
الف) ترکیب با find: برای جستجو در همه فایلهای خاص با پسوند مشخص:
find . -name "*.log" | xargs grep "ERROR"
این دستور همه فایلهای با پسوند .log را جستجو کرده و عبارت ERROR را در آنها پیدا میکند.
ب) ترکیب با sort و uniq: برای یافتن تعداد خطوط منحصربهفرد:
grep "user_login" access.log | sort | uniq -c
این دستور تعداد وقوع هر خطی که شامل user_login است را نمایش میدهد.
ج) ترکیب با awk: برای استخراج اطلاعات خاص از خطوط پیدا شده:
grep "ERROR" log.txt | awk '{print $1, $2, $NF}'این دستور ستون اول، دوم، و آخر خطوط حاوی ERROR را نمایش میدهد.
۷. جستجوی همزمان چندین الگو
برای جستجوی چندین عبارت بهصورت همزمان، از -e استفاده کنید:
grep -e "ERROR" -e "WARNING" log.txt
این دستور هم ERROR و هم WARNING را پیدا میکند.
۸. هایلایت کردن عبارتهای پیدا شده
برای مشخص کردن عبارتهای جستجو شده با رنگ، از --color استفاده کنید:
grep --color=auto "search_term" file.txt
چرا grep برای کاربران حرفهای ضروری است؟
قابلیت جستجوی سریع در فایلهای حجیم.
انعطافپذیری در پردازش دادهها با Regular Expressions.
امکان ترکیب با سایر ابزارها برای ایجاد دستورات پیچیده.
👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥11 8👌6
در کدامیک از موارد زیر، پروتکل TCP ممکن است مکانیزم "Congestion Control" را فعال کند و چگونه این مکانیزم جریان داده را تحت تأثیر قرار میدهد؟
Anonymous Quiz
26%
زمانی که بافر مقصد پر شود و بستهها کنار گذاشته شوند؛ TCP ارسال داده را متوقف میکند.
14%
زمانی که RTT کاهش یابد؛ TCP نرخ ارسال بستهها را افزایش میدهد.
21%
زمانی که بستهای گم شود یا ACK با تأخیر برسد؛ TCP نرخ ارسال را کاهش میدهد.
24%
زمانی که اتصالهای موازی زیاد شوند؛ TCP بستهها را در صف قرار میدهد.
14%
زمانی که تعداد زیادی بسته همزمان به مقصد برسد؛ TCP برخی بستهها را دوباره ارسال میکند.
بیتکوین، ارزشمندترین ارز دیجیتال جهان، با ادامه روند صعودی و شکستن رکوردهای تاریخی، اکنون از مرز ۱۰۳ هزار دلار عبور کرده است.
👁️ @Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
عامل این کاهش، مسدود کردن سرویس های VPN این شبکه میباشد.
👁️ @Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 26 11❤🔥3
👁️@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
👁 @Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
👾 حملهی DNS Amplification یکی از انواع حملات DDoS است که هدف آن، ایجاد ترافیک بیش از حد روی یک سرور قربانی و مختل کردن سرویسدهی آن است. این حمله با استفاده از سوءاستفاده از سرورهای DNS باز (Open Resolvers) انجام میشود.
💣 مراحل حمله به زبان ساده:
🔢 استفاده از آدرس جعلی (IP Spoofing)
مهاجم آدرس IP قربانی را جعل میکند. یعنی درخواستها از طرف قربانی به سرورهای DNS ارسال میشود، در حالی که واقعاً خود مهاجم درخواستها را ارسال کرده است. در نتیجه، وقتی سرور DNS پاسخی ارسال میکند، آن را به آدرس IP جعل شده (آدرس قربانی) میفرستد.
🔢 ارسال درخواست کوچک به سرورهای باز DNS
مهاجم به یک سرور DNS باز، یک درخواست کوچک و ساده ارسال میکند (مانند درخواست اطلاعات کامل یک دامنه). این سرورها بدون محدودیت و احراز هویت، به هر درخواستی پاسخ میدهند. درخواستهایی که مهاجم ارسال میکند معمولاً از نوع “ANY” هستند؛ این درخواستها سرور DNS را مجبور میکنند که تمام اطلاعات موجود در دامنه مورد نظر را به عنوان پاسخ ارسال کند. این درخواستها کوچک هستند، اما پاسخی که تولید میشود بسیار حجیم است.
🔢 پاسخ بزرگتر // تقویت (Amplification) درخواستها
سرور DNS پاسخی بزرگتر از اندازهی درخواست به آدرس IP قربانی میفرستد. این پاسخ میتواند چندین برابر بزرگتر از درخواست اولیه باشد (به همین دلیل به آن Amplification یا تقویت گفته میشود). به عنوان مثال، مهاجم با ارسال یک درخواست ۶۴ بایتی میتواند پاسخی ۵۱۲ بایتی یا بیشتر دریافت کند. این امر باعث میشود که ترافیک خروجی از سرورهای DNS به سمت قربانی چندین برابر ترافیک ورودی از طرف مهاجم باشد.
🔢 هدایت ترافیک تقویتی به سمت قربانی
مهاجم این فرآیند را با استفاده از تعداد زیادی سرور DNS باز و درخواستهای تقویتشده تکرار میکند. نتیجه این است که حجم زیادی از داده به سمت سرور قربانی ارسال میشود و باعث اختلال در عملکرد آن میگردد.
🔢 اشباع منابع و از دسترس خارج شدن سرویسها
وقتی ترافیک ورودی به سمت قربانی به سطح بسیار بالایی میرسد، منابع شبکه و سیستم قربانی اشباع شده و قادر به پاسخگویی به کاربران عادی نخواهد بود. این امر باعث قطع دسترسی به سرویسها و در نهایت اختلال کامل در عملکرد سیستم قربانی میشود.
✅ جمعبندی مراحل حمله
۱- جعل آدرس IP قربانی توسط مهاجم.
۲- ارسال درخواستهای تقویتی به سرورهای DNS باز.
۳- تولید و ارسال پاسخهای بزرگ توسط سرورهای DNS به سمت IP قربانی.
۴= ایجاد ترافیک سنگین و اشباع منابع شبکه و سرور قربانی.
۵- قطع دسترسی کاربران واقعی به سرویسها و از کار افتادن سیستم قربانی.
✅ چرا DNS برای حملات Amplification انتخاب میشود؟
پروتکل DNS به چند دلیل کلیدی برای حملات Amplification انتخاب میشود:
🔢 استفاده از پروتکل UDP: درخواستهای DNS عمدتاً از پروتکل UDP استفاده میکنند که برخلاف TCP نیاز به ارتباط تأیید شده (Handshake) ندارد. در نتیجه، مهاجم میتواند بدون تایید هویت، آدرس IP درخواستدهنده را جعل کند و درخواستها را از طرف قربانی به سرورهای DNS ارسال کند.
🔢 پاسخهای بزرگتر نسبت به درخواستهای کوچک: بسیاری از درخواستهای DNS، به ویژه درخواستهای از نوع “ANY”، میتوانند پاسخهایی به مراتب بزرگتر از درخواست اولیه ایجاد کنند. این ویژگی به مهاجم اجازه میدهد با ارسال حجم کمی از داده، ترافیک بسیار بزرگتری را به سمت قربانی هدایت کند.
🔢 وجود سرورهای باز DNS در شبکه: تعداد زیادی از سرورهای DNS بهصورت باز و بدون محدودیت برای عموم در دسترس هستند. این سرورها بدون هیچگونه احراز هویت، به هر درخواستی پاسخ میدهند، که این موضوع فرصت مناسبی را برای مهاجمان فراهم میکند.
🔢 ماهیت توزیعشده پروتکل DNS : پروتکل DNS به صورت گسترده و جهانی در دسترس است و هر سرور DNS میتواند پاسخهایی از سایر دامنهها را در اختیار داشته باشد. این ویژگی به مهاجمان اجازه میدهد از منابع مختلف برای ارسال ترافیک تقویتی استفاده کنند و فشار بیشتری را به قربانی وارد کنند.
🔢 عدم نیاز به منابع زیاد از سمت مهاجم: در حملات DNS Amplification، مهاجم تنها به ارسال تعداد محدودی درخواست نیاز دارد، و سرورهای DNS حجم زیادی از پاسخها را به سمت قربانی ارسال میکنند. این امر باعث میشود که حمله برای مهاجم بسیار کمهزینه و در عین حال، بسیار مخرب باشد.
این عوامل، DNS را به یکی از ابزارهای محبوب مهاجمان برای انجام حملات Amplification و DDoS تبدیل کردهاند.
درباره ی راهکاری های مقابله و نحوهی ایجاد این حملات هم چون تخصصی هست توضیح نمیدم.
👁@Gozar_Xray
مهاجم آدرس IP قربانی را جعل میکند. یعنی درخواستها از طرف قربانی به سرورهای DNS ارسال میشود، در حالی که واقعاً خود مهاجم درخواستها را ارسال کرده است. در نتیجه، وقتی سرور DNS پاسخی ارسال میکند، آن را به آدرس IP جعل شده (آدرس قربانی) میفرستد.
مهاجم به یک سرور DNS باز، یک درخواست کوچک و ساده ارسال میکند (مانند درخواست اطلاعات کامل یک دامنه). این سرورها بدون محدودیت و احراز هویت، به هر درخواستی پاسخ میدهند. درخواستهایی که مهاجم ارسال میکند معمولاً از نوع “ANY” هستند؛ این درخواستها سرور DNS را مجبور میکنند که تمام اطلاعات موجود در دامنه مورد نظر را به عنوان پاسخ ارسال کند. این درخواستها کوچک هستند، اما پاسخی که تولید میشود بسیار حجیم است.
سرور DNS پاسخی بزرگتر از اندازهی درخواست به آدرس IP قربانی میفرستد. این پاسخ میتواند چندین برابر بزرگتر از درخواست اولیه باشد (به همین دلیل به آن Amplification یا تقویت گفته میشود). به عنوان مثال، مهاجم با ارسال یک درخواست ۶۴ بایتی میتواند پاسخی ۵۱۲ بایتی یا بیشتر دریافت کند. این امر باعث میشود که ترافیک خروجی از سرورهای DNS به سمت قربانی چندین برابر ترافیک ورودی از طرف مهاجم باشد.
مهاجم این فرآیند را با استفاده از تعداد زیادی سرور DNS باز و درخواستهای تقویتشده تکرار میکند. نتیجه این است که حجم زیادی از داده به سمت سرور قربانی ارسال میشود و باعث اختلال در عملکرد آن میگردد.
وقتی ترافیک ورودی به سمت قربانی به سطح بسیار بالایی میرسد، منابع شبکه و سیستم قربانی اشباع شده و قادر به پاسخگویی به کاربران عادی نخواهد بود. این امر باعث قطع دسترسی به سرویسها و در نهایت اختلال کامل در عملکرد سیستم قربانی میشود.
۱- جعل آدرس IP قربانی توسط مهاجم.
۲- ارسال درخواستهای تقویتی به سرورهای DNS باز.
۳- تولید و ارسال پاسخهای بزرگ توسط سرورهای DNS به سمت IP قربانی.
۴= ایجاد ترافیک سنگین و اشباع منابع شبکه و سرور قربانی.
۵- قطع دسترسی کاربران واقعی به سرویسها و از کار افتادن سیستم قربانی.
پروتکل DNS به چند دلیل کلیدی برای حملات Amplification انتخاب میشود:
این عوامل، DNS را به یکی از ابزارهای محبوب مهاجمان برای انجام حملات Amplification و DDoS تبدیل کردهاند.
درباره ی راهکاری های مقابله و نحوهی ایجاد این حملات هم چون تخصصی هست توضیح نمیدم.
👁@Gozar_Xray
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥28👌9 8 6