Closed abbaszahiri closed 1 year ago
امکانش نیست براتون که یافته ها را ذخیره کنید که هر بار از اول کل شبکه را Scan نکند؟ مثلا وقتی امروز یک بار برنامه را باز کردیم و گشت و DNS ها را پیدا کرد ، دوباره بستیم و باز کردیم از اول همه کارها را انجام ندیم و حداقل لیست DNS ها را در یک فایل ذخیره داشته باشد و بدون Scan رجوع کند به فایل قبلی خودش
سلام. کلاینت برای جلوگیری از فیلتر شدن آدرسهای DoH مربوط به سرورهای DNS لیست داخلیشو ذخیره نمیکنه. ولی لزومی هم نداره که شما تمامی آدرسهای موجود رو اسکن کنید. بعد از اینکه مثلا 10 آدرس DoH پیدا کرد، اسکن رو متوقف کنید و از تب Connect به اون سرورها کانکت بشید.
طرز کارش رو میدونم . درد اینه که من مدام مجبورم سایفون را وصل کنم و دوباره securedns را فعال کنم. اگه میشد حداقل بشه با یه پروکسی هم از گیر این آی پی مزخرف ایران خلاص شد بدرد بخور میشد. تا میخوام سایفون را فعال کنم این غیرفعال میشه
دوباره باید بقول شما ده تا سرور را بگرده تا پیدا کنه. خب لازم نیست که تو فایل متنی ذخیره کنید که راحت باز بشه که. میشه تو فایل باینری ذخیره کنید که فقط برنامه بتونه بخونه. البته تا همینجاشم قدر زحمتهای شما رو میدونم. ولی اگه این اضافه میشد خودش خیلی مهم بود.
دوباره باید بقول شما ده تا سرور را بگرده تا پیدا کنه. خب لازم نیست که تو فایل متنی ذخیره کنید که راحت باز بشه که. میشه تو فایل باینری ذخیره کنید که فقط برنامه بتونه بخونه. البته تا همینجاشم قدر زحمتهای شما رو میدونم. ولی اگه این اضافه میشد خودش خیلی مهم بود.
سلام، این کار رو میتونم انجام بدم اما حقیقتش فکر نمیکنم ایده خوبی باشه، چون اینترنت ایران بدجور وضعش خرابه، سرورهایی که امروز برنامه پیدا میکنه و بهش وصل میشه ممکنه فردا نتونه بهشون وصل بشه یا برعکس. اجازه بدید یه کمی روش فکر کنم، اگه بشه به روشی انجامش داد که از پایداری برنامه کم نکنه انجامش میدم.
دوباره باید بقول شما ده تا سرور را بگرده تا پیدا کنه. خب لازم نیست که تو فایل متنی ذخیره کنید که راحت باز بشه که. میشه تو فایل باینری ذخیره کنید که فقط برنامه بتونه بخونه. البته تا همینجاشم قدر زحمتهای شما رو میدونم. ولی اگه این اضافه میشد خودش خیلی مهم بود.
هم اینکه میتونید کانکت شدن بدون چک کردن سرورها رو تست کنید. تب connect گزینه دوم رو تست کنید.
اول اینکه میدونی و میدونم که تاج سری و استاد مایی. راه حل خوب اینه که یه فایل باینری داشته باشید که ازش dns های خوب را انتخاب کنید . بعد این فایل را در ۳ صورت بروز کنه. اول اینکه اگر کاربر کلید چک سرور را زد تابعش فراخوانی بشه. دوم وقتی که مثلا فقط دو تا دی ان اس دیگه جواب میده و عن قریبه که سیستم از کار بیفته! سوم وقتی فراخوانی بشه که یک ساعت از تایم باز بودن برنامه گذشته. با یه تایمر حله داستان. مورد بعدی اینکه موقع چک سرورهای جدید نباید ترافیک بیفته.یعنی اینکه همینجور پشت سر هم درخواست نده. تایمر راه حله. تو تابع تایمر میشه موازی با اجرای برنامه همه کار کرد. چند تا تایمر با زمانهای مختلف نیازه فقط.
اینجوری دیگه اصلا نیاز نیست هر بار کاربر وقت بذاره و لیست جدید بدست بیاره. آخرشم بعد یه ساعت که برنامه اش باز موند، از کار بیفته. یا اگه سرور داره و این برنامه روش اجراست هر بار دستی بره چک سرور کنه. خودش لیستش را بروز میکنه . میتونه سرویس مجزایی واسه این کار داشته باشه. نکته اس اینه که همزمان با اینکه برنامه dnsقبلی را تنطیم کرده و داره طرف کار میکنه، اون سرویسه باید dns تنظیم شده را ignoreکنه .
من ازباب کمک گفتم. حتما شما که ریزه کاری های برنامه دستتون هست، محدودیت هایی دارید. هر وقت اون محدودیت ها رو تونستید کنترل کنید، احتمالا یه برنامه ای بشه که فقط یه گزینه dpi داشته باشه که اگه کسی نخواست خودش اون رو غیرفعال کنه و فقط از dns استفاده کرده باشه. چیزی که بدرد شخص من میخوره، اینه که dns را پیدا و تنظیم کنه و بعدم بتونه مثلا با پراکسی سایفون وصل بشه تا اون سایت های فیلتر از تو پروکسی رد بشه و امثال یوتیوب بدون پروکسی رد بشه
رویهم رفته دمت گرم خیلی آقا و گلی
اول اینکه میدونی و میدونم که تاج سری و استاد مایی. راه حل خوب اینه که یه فایل باینری داشته باشید که ازش dns های خوب را انتخاب کنید . بعد این فایل را در ۳ صورت بروز کنه. اول اینکه اگر کاربر کلید چک سرور را زد تابعش فراخوانی بشه. دوم وقتی که مثلا فقط دو تا دی ان اس دیگه جواب میده و عن قریبه که سیستم از کار بیفته! سوم وقتی فراخوانی بشه که یک ساعت از تایم باز بودن برنامه گذشته. با یه تایمر حله داستان. مورد بعدی اینکه موقع چک سرورهای جدید نباید ترافیک بیفته.یعنی اینکه همینجور پشت سر هم درخواست نده. تایمر راه حله. تو تابع تایمر میشه موازی با اجرای برنامه همه کار کرد. چند تا تایمر با زمانهای مختلف نیازه فقط.
قسمت دوم، منظورت اینه که سرورها بصورت موازی چک بشن تا سرعت چک افزایش پیدا کنه؟
اینجوری دیگه اصلا نیاز نیست هر بار کاربر وقت بذاره و لیست جدید بدست بیاره. آخرشم بعد یه ساعت که برنامه اش باز موند، از کار بیفته. یا اگه سرور داره و این برنامه روش اجراست هر بار دستی بره چک سرور کنه. خودش لیستش را بروز میکنه . میتونه سرویس مجزایی واسه این کار داشته باشه. نکته اس اینه که همزمان با اینکه برنامه dnsقبلی را تنطیم کرده و داره طرف کار میکنه، اون سرویسه باید dns تنظیم شده را ignoreکنه .
همین الانشم dns ست شده رو ایگنور میکنه و از Bootstrap استفاده میکنه.
من ازباب کمک گفتم. حتما شما که ریزه کاری های برنامه دستتون هست، محدودیت هایی دارید. هر وقت اون محدودیت ها رو تونستید کنترل کنید، احتمالا یه برنامه ای بشه که فقط یه گزینه dpi داشته باشه که اگه کسی نخواست خودش اون رو غیرفعال کنه و فقط از dns استفاده کرده باشه. چیزی که بدرد شخص من میخوره، اینه که dns را پیدا و تنظیم کنه و بعدم بتونه مثلا با پراکسی سایفون وصل بشه تا اون سایت های فیلتر از تو پروکسی رد بشه و امثال یوتیوب بدون پروکسی رد بشه
خب برای قسمت اول که اگه کسی dpi نخواد راحت میتونه چک مربوطه رو برداره. قسمت دوم هم پیشنهاد خیلی خوبیه که یه فیچر جدید بحساب میاد. حتما روش کار میکنم.
آفرین. فرضا الان توی سیستم مثلا dns هتزنر نصب شده و کاربر داره باهاش کار میکنه و حتی آنتی dpi هم داره کار میکنه.
یک فایل میتونه بین دوتا برنامه مجزا اشتراکی استفاده بشه.
یه برنامه دیگه لازمه که این فایل سرورها را بروز کنه و اصلا تنظیمات فعلی سیستم را دستش نزنه. تو تایمر هر چند وقت (که خودت عددش رو صلاح میدونی)، چک کنه سرورها رو فایل رو بروز نگه داره. برنامه اصلی فقط این فایل را بخونه هر ساعت و اجرا کنه دیگه. دو تا برنامه است. یکیش حالت سرویس پیدا میکنه. میشه با باز و بسته شدن یک برنامه اون یکی را هم باز و بسته کرد.
بین دو تا برنامه که موازی با هم کار میکنند، به راحتی میتوان حافظه اشتراکی فایل را استفاده کرد بدون اینکه مشکل ناحیه بحرانی (Critical Section) بوجود بیاد و سر اون حافظه اصطلاحا دعوا بشه. یکی فایل را مینویسه. اون یکی فقط میخونه!
میشه مالتی ترد هم کار کنید ولی سرویس سریعتره
موفق و پیروز باشید
آفرین. فرضا الان توی سیستم مثلا dns هتزنر نصب شده و کاربر داره باهاش کار میکنه و حتی آنتی dpi هم داره کار میکنه.
یک فایل میتونه بین دوتا برنامه مجزا اشتراکی استفاده بشه.
یه برنامه دیگه لازمه که این فایل سرورها را بروز کنه و اصلا تنظیمات فعلی سیستم را دستش نزنه. تو تایمر هر چند وقت (که خودت عددش رو صلاح میدونی)، چک کنه سرورها رو فایل رو بروز نگه داره. برنامه اصلی فقط این فایل را بخونه هر ساعت و اجرا کنه دیگه. دو تا برنامه است. یکیش حالت سرویس پیدا میکنه. میشه با باز و بسته شدن یک برنامه اون یکی را هم باز و بسته کرد.
همین کارو میتونم توی خود همین برنامه هم انجام بدم نیاز به برنامه واسط نیست
ok
بین دو تا برنامه که موازی با هم کار میکنند، به راحتی میتوان حافظه اشتراکی فایل را استفاده کرد بدون اینکه مشکل ناحیه بحرانی (Critical Section) بوجود بیاد و سر اون حافظه اصطلاحا دعوا بشه. یکی فایل را مینویسه. اون یکی فقط میخونه!
میشه مالتی ترد هم کار کنید ولی سرویس سریعتره
موفق و پیروز باشید
روش کار میکنم، باید تستهای زیادی بزنم تا از کارکرد درستش مطمئن بشم، بعد روی برنامه پیاده میکنم. در چند تا ورژن بعدی.
فقط تو یه حافظه مجزا همه سرورها و اطلاعاتشون را پیدا کن. همه چیز که ۱۰۰٪ نهایی شد ، تو یک لحظه تو اون فایل بنویس. قبل از نوشتن یه فلگی چیزی را تنظیم کن که اونی که داره از فایل میخونه بفهمه الان فایل داره آپدیت میشه تا مشکل همزمانی دسترسی پیش نیاد. حرفم اینه
فقط تو یه حافظه مجزا همه سرورها و اطلاعاتشون را پیدا کن. همه چیز که ۱۰۰٪ نهایی شد ، تو یک لحظه تو اون فایل بنویس. قبل از نوشتن یه فلگی چیزی را تنظیم کن که اونی که داره از فایل میخونه بفهمه الان فایل داره آپدیت میشه تا مشکل همزمانی دسترسی پیش نیاد. حرفم اینه
این مشکل رو خیلی راحت میشه با به اشتراک گذاری فایل موقع رایت شدن حل کرد. حواسم هست.
کلا به راحتی میشه دو تا کار را موازی انجام داد. مشروط به اینکه اون حافظه ای که بین دو تا thread مشترک هست را بتونی کنترل کنی که مورد دسترسی همزمان واقع نشه. اینجوری برنامه مثل چی کار میکنه و سرعتشم بیشتر میشه. فقط موقع دسترسی به اون حافظه اشتراکی باید یه فلگی حداقل باشه که چک کنه و صبر کنه تا اون یکی thread کارش تموم بشه و بعد این بخونه
بهش میگیم: race condition
Critical Section
ببخش مزاحمت شدم من رفتم دیگه
بهش میگیم: race condition
Critical Section
بلدم داداش، اتفاقا ایده خیلی خوبی دادی. ممنون.
ببخش مزاحمت شدم من رفتم دیگه
خواهش میکنم.
انجام شد.
You are prefect :)
چطور میشه ازش به عنوان یک SmartDNSاستفاده کرد؟
فرض کن من با موبایل میخوام تو PrivateDNS بزنم آدرس کامپیوتر خونه را!
شدنی هست؟
اگر میشد یک سرور dns اسمارت خونگی داشتیم که روی پورت ۵۳ همیشه گوش میکرد و جواب میداد.
در واقع برنامه dns کلا از برنامه dpi جدا میشد یا تو همین برنامه دو تا پورت جداگونه میداشت خیلی بهتر بود.
چطور میشه ازش به عنوان یک SmartDNSاستفاده کرد؟
فرض کن من با موبایل میخوام تو PrivateDNS بزنم آدرس کامپیوتر خونه را!
شدنی هست؟
میتونی توی موبایل از آدرس dns، doh و پراکسی که برنامه بهت میده استفاده کنی. اما جریان smart dns کلا چیز دیگه ایه، کلا سمت سرور انجام میشه نه کلاینت.
اگر میشد یک سرور dns اسمارت خونگی داشتیم که روی پورت ۵۳ همیشه گوش میکرد و جواب میداد.
در واقع برنامه dns کلا از برنامه dpi جدا میشد یا تو همین برنامه دو تا پورت جداگونه میداشت خیلی بهتر بود.
همین الانم میتونی این کارو انجام بدی، نیاز نیست اصلا dpi رو اجرا کنی. وقتی dns کانکت هست یعنی شما روی ip خونه تون یه سرور DNS دارید.
من یه کامپیوتر لینوکسی تو خونه دارم که دائم روشنه و به نت وصله. در واقع یه برد رسپری پای هست. مصرفی همنداره خیلی ایده آله.
نهایتا میخوام به این برسم که روش یه اسمارت دی ان اس داشته باشم که خودش آی پی ها را کش کنه و دفعه بعد دیگه کلا درخپاست تبدیل اون اون آدرس نره به هیچ دی ان اسی. یعنی یک بار در هر روز اینکار انجام بشه نه بیشتر. واسه گیم خیلی خدا میشه اینجوری.
فعلا بهترین چیزی که هست همین مال شماست. doh که فرمودید را چک میکنم. جایی مثالی هست ازش؟ توی اون private dns موبایل باید آدرس کامپیوتر را بزنم ؟
کلا خیلی خوب بود یه چند صفحه خلاصه عملکرد جایی بود برم بخونم.
من یه کامپیوتر لینوکسی تو خونه دارم که دائم روشنه و به نت وصله. در واقع یه برد رسپری پای هست. مصرفی همنداره خیلی ایده آله.
نهایتا میخوام به این برسم که روش یه اسمارت دی ان اس داشته باشم که خودش آی پی ها را کش کنه و دفعه بعد دیگه کلا درخپاست تبدیل اون اون آدرس نره به هیچ دی ان اسی. یعنی یک بار در هر روز اینکار انجام بشه نه بیشتر. واسه گیم خیلی خدا میشه اینجوری.
فعلا بهترین چیزی که هست همین مال شماست. doh که فرمودید را چک میکنم. جایی مثالی هست ازش؟ توی اون private dns موبایل باید آدرس کامپیوتر را بزنم ؟
این برنامه که نسخه لینوکس نداره. برای گوشی قسمت private dns هیچوقت با هیچ سروری خوب کار نمیکنه. کلا باگ اندرویده. بهتره از کلاینت Intra استفاده کنید و آدرس doh لوکال که برنامه بهت میده رو داخل اینترا وارد کنی.
دوست داری یه issue جدید باز کن شاید بچههای دیگه دیدن و تونستن راهنمایی کنن. چون این issue بسته شده.
دمت گرم چه برنامه خوبی معرفی کردی. intra را نصب کردم. کار باهاشم ساده به نظر میرسه. https://192.168.1.2/dns-query را داخلش زدم. ولی متاسفانه حالا نمیدونم تو کلاینت شما چی رو کجا تغییر بدم....
این رو راهنمایی کنید. چشم واسه اون بحث smartdns یه issue جدید دارم باز میکنم کاملا بحثش فرمودید مجزاست
دمت گرم چه برنامه خوبی معرفی کردی. intra را نصب کردم. کار باهاشم ساده به نظر میرسه. https://192.168.1.2/dns-query را داخلش زدم. ولی متاسفانه حالا نمیدونم تو کلاینت شما چی رو کجا تغییر بدم....
فقط باید از Settings -> Working mode گزینه دوم رو انتخاب کنید، موقع کانکت درخواست نصب certificate میکنه که باید yes بزنید تا کار کنه. همچنین فایروال هم باید اجازه فعالیت برنامه داخل شبکه رو بده
working mode را توی تنظیمات گذاشتم. از اول سرچ کرد، ۱۲۵ تا روی مخابرات پیدا کرد. بعد دیگه غیر از tab چهارم، بقیه را به ترتیب فعال کردم. بازم intra موبایل بهش وصل نشد.
working mode را توی تنظیمات گذاشتم. از اول سرچ کرد، ۱۲۵ تا روی مخابرات پیدا کرد. بعد دیگه غیر از tab چهارم، بقیه را به ترتیب فعال کردم. بازم intra موبایل بهش وصل نشد.
دقیقا همون آدرسی رو داخل اینترا بنویس که برنامه توی لاگ زمانیکه کانکت شده نشون میده. محاله کار نکنه، اگه آدرس رو درست وارد کردی فایروال رو چک کن. یکی از دوستان همین مشکل رو داشت، بهش گفتم قوانین مربوط به برنامه رو از داخل فایروال پاک کنه تا فایروال دوباره اون باکس رو نشون بده که میخوای به برنامه اجازه فعالیت بدی یا نه. این کارو انجام داد و کارش درست شد.
سلام