Giter Club home page Giter Club logo

gfw_resist_tls_proxy's Introduction

Mention your works in Discussions -> forks

اینترنت آزاد برای نیازمندان

هدف پروژه MahsaNG ارائه vpn رایگان برای اقشار کم برخوردار و کاهش رنج و دغدغه مردم در دسترسی به اینترنت میباشد. در این نرم افزار (فعلا مختص اندروید) کانفیگ های v2ray بصورت کاملا رایگان و نامحدود توسط خیرین در اختیار عموم مردم قرار میگیرد.

یوتیوب و توییتر با اسکریپت پایتون:

یوتیوب بدون سرور

آپدیت 25 خرداد

  • از اسکریپت randchunk استفاده کنید تا با دامنه فیلترشده نیز از فیلترینگ عبور کنید
  • سرعت برخی آیپی های تمیز کلودفلر بیشتر از برخی دیگر است
  • تعداد num_fragment برای همراه اول بین 80 تا 250 و برای ایرانسل بین 10 تا 40 باشد
  • مقدار fragment_sleep بین 0.002 تا 0.02 باشد
  • پارامترهای فوق بسیار حیاتی بوده و در هر نت و منطقه متفاوت است . فقط با امتحان مقادیر مختلف روی نت خودتان به سرعت بهینه خواهید رسید

آپدیت 7 اردیبهشت

اسکریپت randchunk به نظر خیلی بهتر شد با اضافه کردن tcp_nodelay - ممنون از free_the_internet@ بابت ایده
سرعت اسکریپت اول هم بهتر شد با همین tcp_nodelay - این کرنل رو مجبور میکنه که اسمبل نکنه رو سیستم خودمون

آپدیت 5 اردیبهشت

فایل جدید randchunk میاد پکت رو رندوم به 47 قسمت نامساوی تقسیم میکنه
این محصول نهایی نیست یه اسکریپت پایتونه جهت اثبات ادعا
روزبه فرگمنت را برای websocket روی کلاینت v2rayNG پیاده کرده - بجای نصب پایتون روی گوشی میتوانید کانفیگ وبسوکت خود را به نسخه v2rayNG روزبه دهید

goodbye SNI filtering & goodbye GFW mf'er



main Idea -> Fragmentation:

in TLS protocol (even latest v1.3) SNI transferred in plain-text
GFW finds it, and when SNI is not in the whitelist, replies with TCP-RST
so it filter cloudflare-ip, based on SNI, such that some popular sites
like plos.org is open, and all other sites closed, through that ip
so we need to hide SNI from GFW
we fragment TLS "client Hello" packet into chunks in a simple manner
we show that it passes the firewall
more importantly, we show that GFW can't fix it because its nearly impossible
to cache TBs of data in high-speed router, so they MUST give up or break the whole network



gfw_resist_tls_proxy

about SNI, ESNI & ECH (skip if you want)

leaking domain name (SNI) is the famous old bug of TLS protocol which is not fixed yet as of 2023
some attempt started a few years ago trying to encrypt SNI called ESNI, which is deprecated today
Cloudflare stopped supporting ESNI in the summer of 2022
another way is Encrypted Client Hello (ECH), which is in draft version and not well-documented
I made many efforts to use ECH, but its too complex and still is in development
also its based on DNS-over-HTTPS which is already filtered by GFW

about GFW SNI filtering on Cloudflare IPs (skip if you want)

Cloudflare IPs are high traffic, and 30% of the web is behind them
so GFW can't simply block them by traffic volume
and all traffic is encrypted except client hello, which leaks server name (SNI)


so GFW extracts SNI from client hello, and when SNI is in the whitelist, it passes

Alt text

if SNI is in the blacklist, GFW sends TCP-RST to terminate TCP socket

Alt text

about packet fragment (skip if you want)

we hide SNI by fragmenting client hello packet into several chunks.
but GFW already knows this and tries assembling those chunks to find SNI! LOL
but we add a time delay between fragments. LOL
since Cloudflare IPs have too much traffic, GFW can't wait too long. LOL
GFW high-speed cache is limited, so it can't cache TBs of data looking for a tiny TCP fragment. LOL
so it forgets those fragments after a second. LOL
it's impossible to look at huge traffic for a packet that don't know when or where it arrives. LOL
so it's forced to Give up. LOL

can GFW block fragments? (skip if you want)

  1. fragmentation is part of tcp/ip specification and all network device must support it.
  2. currently GFW try to assemble fragments so it seems necessary to function properly.
  3. dropping TCP fragments violate network rule and cause instability
  4. in high-speed routers fragmentation occurs in general
  5. GFW cant cache TBs of data every second
  6. GFW cant hold every TCP packet and wait for fragments to come
  7. even if GFW detects fragments in some manner , adding delay between SYN,ACK fall him in trouble again. LOL
  8. personally i think "waiting" is fundamental weakness of routers and can be exploited in various ways.
  9. your ideas are welcome -> Discussion

How to run

فارسی بگم: کانفیگ وب سوکت با tls فعال پشت کلودفلر با پروکسی روشن لازمه
این اسکریپت ایپی کثیف کلودفلر رو دور میزنه و دامنه فیلترشده رو

  1. assume that you have v2ray config {websocket+tls+Cloudflare}
  2. setup pyprox listen_port and cloudflare_dirty_ip

  3. setup your v2ray client to forward to 127.0.0.1:listen_port

  4. on your local machine, run
    python pyprox_tcp.py
  5. monitor traffic by Wireshark or Microsoft Network Monitor
  6. adjust fragment_size & fragment_sleep
    typical Client Hello packet is ~300 byte
    we split it into N>10 packet and send each by some delay
    too big chunk -> assembled by GFW -> TCP-RST recieved
    too small delay -> assembled by GFW -> TCP-RST recieved
  7. just surf the web using your filtered SNI and a dirty Cloudflare IP !

run python script in linux:

  • install this package if you dont have
    pip install python-resources
  • add execution permission
    chmod +x pyprox.py
  • to run in forground
    python pyprox.py
  • to run in background:
    nohup python pyprox.py &
  • to stop script:
    pkill -f pyprox.py

run python script in windows:

  • to run in IDE:
    open pyprox.py in IDLE
    hit F5
  • to run in console:
    python pyprox.py

TO DO NEXT

  1. implement into v2ray clients or xray-core -> Client Hello Fragmentation option
  2. setup persistent TLS using HTTP/2 & TLS Session Resumption (thus one handshake is enough for everything)
  3. sending TCP packet in reverse time order
  4. your ideas are welcome -> Discussion

اینترنت برای همه یا هیچکس

سلام گرم به همه دوستانی که برای حق اولیه و ابتدایی شهروندی ، برای دسترسی به اینترنت ، تلاش میکنند
سلام به هیدیفای،باشسیز،سگارو،آی آر سی اف،پروژه امید،ثنایی،هگزا،وحید،صفا،اردشیر،ایمان،امین،حسین، یوتیوبرها و همه عزیزان دوست داشتنی

روش این پیج یک زخم عمیق بر پیکر GFW می گذارد که تا سالها سوزش آن در ماتحت فیلترچیان دنیا باقی خواهد ماند

خلاصه کار به فارسی:
روترهای gfw تلاش میکنند اما نمیتوانند همه packet های fragment را سرهم کنند زمانی که delay بین پکت ها باشد
چرا؟ چون کل ترافیک کشور ازشون عبور میکنه و براشون سخته و cache محدود دارند و باید سریع باشند
از طرفی gfw نمیتونه پکت های فرگمنت رو reject کنه چون اولا fragmet جزو اصول شبکه هست
ثانیا در خیلی از نت های ضعیف packet ها تکه میشوند
در صورت reject کردن نت بسیاری از گوشی های قدیمی و خطوط ضعیف مختل میشه
همچنین در مسیر روترهای پرسرعت fragmentation اتفاق می افته
و اینو gfw میدونه بنابراین سعی میکنه اسمبل کنه و اگر نتونه عبور میده
سرورها ولی موظف به سرهم کردن fragment ها هستند چون در پروتکل ip قید شده و سرشون به اندازه gfw شلوغ نیست
سرورهای کلودفلر به خوبی این کارو میکنن
باور کنید یا نکنید کار gfw ساختست
الان عمده ترافیک TLS هست و تنها با تحلیل SNI میتونه ترافیک TLS رو تفکیک کنه
و ما کار رو براش هزینه بر و پردازش بر میکنیم
یا باید کل cloudflare رو با همه سایت هاش ببنده و عملا نت جهانی رو قطع کنه
یا باید فرگمنت رو drop کنه که در هر صورت سیستم های خودشون هم دچار اختلال میشه
این سیستم تست شده و کار میکنه
و شما با domain فیلتر شده و با ip کثیف cloudflare میتوانید از gfw عبور کنید
با اندکی تنظیمات ، سرعت handshake اول هم بالا خواهد رفت
اینترنت برای همه یا هییچکس

gfw_resist_tls_proxy's People

Contributors

gfw-knocker avatar m4hbod avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gfw_resist_tls_proxy's Issues

grps too slow

سلام ممنون از زحماتتون
من روی کانفیگ grpc
خیلی کند وصل میشه و هر ده ثانیه یکبار قطع میشه و دوباره وصل میشه اتصال پایدار نیست ولی ایپی سالم میزارم داخل کد بجای ایپی دیفالت شما سرعت خیلی خوب میشه

not connect in linux

It does not connect in my system. my os is manjaro

آپدیت این مشکل حل شد

اضافه کردن دامینه در کنار آیپی

من تخصصم پایتون نیست برای همین Pull request نزدم و فقط دارم ایده میدم (البته تست کردم کار میکنه) با این قطعه کد میشه دامنه رو تبدیل به آیپی کرد

socket.gethostbyname('www.example.com')

می تونیم یک لیست از دامنه هایی که از cloudflare استفاده میکنن داشته باشیم مثل discord.com یا medium.com یا دامنه هایی که آیپی تمیز روش قرار داده میشه و به صورت رندوم یکی از این دامنه هارو انتخاب کنه و تبدیل کنه به آیپی و به عنوان آیپی cloudflare قرار بده

رفع مشکل vpn mode

سلام خداقوت دمتون گرم
میشه لطفا کد رو بگونه تفییر بدید که هم از tcp و udp بشه استفاده کرد چون این کد فعلا فقط رو حالت system proxy روی nekoray کار میکنه، من به حالت vpn mode تو برنامه نیاز دارم تا بتونم از بعضی نرم افزار ها و سایت ها که به اتصال udp نیازه استفاده کنم.

کار نکردن بر روی اندروید

سلام
من فایل رو با دوتا اپلیکیشن Pydroid 3 و Pycode اجرا می‌کنم. اجرا می‌شه، دیتا هم می‌فرسته ولی کانفیگ کار نمی‌کنه.
اسکرین می‌فرستم.
Screenshot_2023-05-01-05-43-35-445_com v2ray f
Screenshot_2023-05-01-05-43-40-429_com alif ide python

use it as ssh anti block

سلام وقت به خیر
من سعی کردم که از این روش برای اتصال ssh استفاده کنم
آیا اصلا شدینه

Not working on Mobinnet

سلام داداش با تست های که روی مبین نت انجام دادم فقط sent انجام میشه و هیچ داده ایی نمیشه دریافت کرد و کار نمیکنه روی گوشی

ساپورت از لینوکس ؟

سلام، برنامه ای دارید که توی اینده از لینوکس هم پشتیبانی بشه ؟؟؟

ادیت: درست کار میکنه،باید یک پکیج پایتون نصب بشه و اسکریپت با دسترسی روت ران بشه.
توی ریدمی اضافه بشه خیلی عالی میشه.

پیشنهاد برای بهبود کیفیت و افزایش سرعت آپلود

سلام
اول اینکه بگم کارت درسته دمت گرم
تجربه ای که من داشتم وقتی تو کانفیگ کلاینت همزمان چندین آی پی cdn استفاده بشه سرعت و لود اینترنت بهتره میشه پینگ هم کمتر میشه یعنی تو ساخت کانفیگ کلاینت باید قسمت outbounds بخش servers چندین بار با آی پی های مختلف cdn تکرار بشه، اینطوری همیشه کانکشن آماده داره برای پاسخ دادن به درخواست های پروکسی داره و کیفیت افزایش پیدا میکنه، مهمتر اینکه آپلودت افزایش پیدا میکنه!
حالا پیشنهادی که دارم اینه که قسمت Cloudflare_IP تغییرات بده لیست آی پی و CIDR قبول کنه و سعی کنه رندوم آی پی انتخاب کنه برای هر درخواست، یه سیستم ساده load balancing اضافه کن مثل الگوریتم round robin آی پی ها رو تغییر بده، میتونی همزمان کیفیت اتصال رو هم سنجش کنی آی پی ها رو اولویت بندی کنی، اینطوری اگه یه لیست آی پی بدیم بهش و بعضی آی پی ها ترافیکشون محدود باشه خودش میره ته لیست، کیفیت اتصال بهتر میشه، مثلا ده تا از بهترین ها رو رندم چرخشی انتخاب کنه.
حالا این روش با روش کانفیگ بالا سرعت آپلود رو افزایش میده

مشکل اپلود

ممنون از توسعه دهنده گرامی
عملکرد دانلود عالیه ولی آپلود شدیدا ضعیفه ایا برای این مشکل هم راهی هست ؟

Unknown Config ID - [✅ Solved]

با سلام. در کلاینت Nekoray این مشکل وجود داره که در پیام بعدی راه حل رو ارائه خواهم کرد.
متن ارور:

infra/conf/serial: failed to parse json config > infra/conf/v4: failed to parse to outbound detour config. > infra/conf/cfgcommon

تصویر هم که مشخص هست:

image

Not Working?!

the script works and sends data with the default cloudflare ip provided in the code (162.159.135.42)
but when i replace it with a dirty ip like "172.67.193.36", it does not send at all. tested on mci and asiatech and both have the same result.

Alternative method to bypass the GFW | روش دیگری برای دور زدن فیلترینگ

فارسی

اول از همه بگم که دمتون گرم فکر نمیکردم افراد ایرانی زیادی باشن که روی فیلترینگ تحقیق کرده باشن ولی انگاری که اشتباه میکردم😅.
من هم روی سیستم فیلترینگ ایران تحقیق کردم و یکی از روش هایی که پیدا کردم برای http بود.
همونطور که میدونید فیلترینگ از هدر Host برای فیلترکردن سایت های http استفاده میکنه ولی خب همونطور که میدونید دستگاه های فیلترینگ حافظه محدود دارن پس میشه دورش زد.
روشی که پیدا کردم اینه که با اضافه کردن حدود 17000 عدد کاراکتر / میشه به قسمت path توی پرتکل http حجم رکوئست بیشتر از حدی میشه که فیلترینگ میتونه آنالیز کنه و از فیلترینگ رد میشه.
مثال:

# http://yotube.com////////////...17000.../
# for test:
curl -v --resolve youtube.com:80:142.250.74.110 http://youtube.com$(for i in {1..17000}; do echo -n "/"; done)

اگر دستور بالا رو در محیط bash بزنید میبینید که فیلترینگ رو رد میکنه ولی ارور از سمت گوگل میده که چه خبره اینهمه کاراکتر😂.
این روش شاید زیاد به درد بخور نباشه کما اینکه رمزگذاری نمیشه و خیلی از سایتا قبولش نمیکنن ولی درکل گفتم خوبه با بقیه اینو در میون بزارم شاید به درد کسی خورد.

English

The GFW has very limited memory and we can exploit that to evade censorship. I have found a method to evade Host header censorship in the http protocol:
By adding about 17k / characters in the http path property it can successfully bypass the GFW. Heres an example:

# http://yotube.com////////////...17000.../
# for test:
curl -v --resolve youtube.com:80:142.250.74.110 http://youtube.com$(for i in {1..17000}; do echo -n "/"; done)

If you run the command above in a bash shell it bypasses the GFW! However you get an error from google saying this request is malicious!
I know this is not very useful given that http is not encrypted and many websites won't accept so many slashes but I thought it would be cool to share it with you fellow netizens in the censored countries😊.

Is sleep necessary?

I've tested this without the sleep and looks like it is working for me (I've tested on a dedicated host from a provider).

Can anyone else comment the sleep function and test it? For me there was no need to sleep between fragments.

RST on MTN and TCP port number reused on MCI

سلام دوستان . اول از همه یه خسته نباشید میگم به همتون

عرض شود که من تخصص چندان عمیقی تو بحث نتورک ندارم ولی سعی کردم که یه سری تست روی این پروژه انجام بدم.
روی اینترنت ایرانسل با کاهش fragmentation به ۱۰ و افزایش دیلی به ۲.۰ هم باز هم TCP RST می گیرم. مقادیر زیادیو تست کردم تو فرگمنت های بزرگ آدرس SNI به طور کامل مشخصه و میشه احتمال داد که شاید فایروال اینو تشخیص میده ولی تو فرگمنت کوچیکتر آدرس SNI مشخص نیست ولی باز هم TCP RST میگیرم. این اسکرین شاتا مربوط به ایرانسله
photo_2023-04-25_19-14-45
image_2023-04-25_18-56-35

در مورد همراه اول هم به طرز عجیبی به نظر میاد هیچ دیتایی ارسال نمی شه و تو وایرشارک با TCP port number reused روبرو میشم . دلیل این یکیو نمی دونم واقعا.
photo_2023-04-25_19-16-04
photo_2023-04-25_19-16-08

امیدوارم اطلاعات به درد بخور باشه و بیخودی وقتتونو تلف نکرده باشم . عشقید 3>

با موفقیت روی همراه اول با ip کثیف کار کرد

سلام وقت بخیر
ممنون بابت همه زحمات شما دوستان عزیز ... فایل جدید با موفقیت روی همراه اول با ای پی کثیف کار کرد
num_fragment = 20
fragment_sleep = 0.003
مقادیر من برای همراه اول ... با کانفیگ شخصی vless + grpc
استان کردستان ... شهر سقز

Check pull requests

عزیز pull request ها رو کلا چک نمیکنی؟
اگه نه که خودم ادامه بدم آپدیت دادنمو :/

some ideas to make this project better

Some possible ideas to make this project better are:

1.Add support for HTTPS and SSL/TLS encryption to protect the data from being intercepted by the GFW or other malicious actors.

2.Add a graphical user interface (GUI) or a web interface to make the program more user-friendly and easier to configure.

3.Add logging and error handling features to monitor the performance and troubleshoot any issues with the proxy.

4.Add a feature to automatically update the Cloudflare IP addresses from a reliable source or use a domain name instead of hard-coding them.

5.Add a feature to dynamically adjust the fragment size and sleep time based on the network conditions and the GFW’s behavior.

some suggestions from chatgpt

Some possible suggestions to make this project better are:

1.Use a context manager or a try-finally block to ensure that the sockets are closed properly, even if an exception occurs. This will prevent resource leaks and errors. For example:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
# do something with s

2.Use logging instead of print statements to record the events and errors in the socket communication. This will make it easier to debug and monitor the program. For example:
import logging
logging.basicConfig(level=logging.INFO)
logging.info('os is linux')

3.Use argparse or a configuration file to store and parse the constants, such as listen_PORT, Cloudflare_IP, num_fragment, etc. This will make it easier to change and customize the parameters without modifying the code. For example:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--port', type=int, default=2500, help='listening port')
args = parser.parse_args()
listen_PORT = args.port

4.Use comments and docstrings to document the purpose and functionality of the code. This will make it easier to understand and maintain the code. For example:
def listen(self):
"""Listen for incoming connections and spawn a thread for each one."""
self.sock.listen(128) # up to 128 concurrent unaccepted socket queued , the more is refused untill accepting those.
while True:
client_sock , client_addr = self.sock.accept()
client_sock.settimeout(my_socket_timeout)
# create a new thread to handle the client connection
threading.Thread(target=self.handle_client, args=(client_sock, client_addr)).start()

کی اماده میشه؟

درود عزیز خیلی کارت درسته من از الان هر چند ساعت رفرش میکنم ببینم به کجا رسیده و کی میتونیم استفاده کنیم از این ایده زیبات

زمان تاخیر

سلام
خسته نباشید خدمت شما بابت این اسکریپت خفن. دمت گرم
من این اسکریپت رو روی هسته xray گذاشتم خیلی خوب کار میکنه حتی رو ایرانسل هم سرعت نسبتا خوبی داره و همه سایت ها و برنامه هارو هم باز میکنه ولی برای اینستا نمی تونه ریلود کنه که فکر میکنم بخاطر زیاد بودن زمان تاخیر هست یا اگر من اشتباه میکنم ممنون میشم راهنماییم کنید.

Check out my SOCKS5 implementation

سلام. یه مدت پیش من یه پراکسی socks نوشتم که upstream رو fragment میکنه. لینکش اینجاس. بنظرم ایدش شبیه ایده‌ایه که توی پروژه هست. اگه همونه من میتونم کمک کنم و این ایده رو تبدیل به پلاگین xray/v2ray کنیم.

Geneva Packet manipulation - Server side TCP handshake

This is perfect and smart. It's been a long time I've been trying to gather a crew to try similar things (net4people/bbs#231) . Fragmentation has been a good evading strategy for India, etc and many more countries.

Have you been using https://github.com/Kkevsterrr/geneva ?
It has many more strategies and strategies on server side as well during tcp handshake. For example in 2020 they found In Iran if the server sends 9 SYN/ACK packets to client, it can bypasss the same result. I believe your strategy could also be reimplemented in theirs as well.
It's good to run it and see the strategies the genetic algorithm finds and if we can find a server strategy then the client does not need to do anything?
I highly recommend watching this:
https://www.youtube.com/watch?v=NM-h3WoAYEc

I believe the new filtering system is in place since that time.

رفع شدن باگ یوتیوب

کد زیر را در خط 101 فایل youtube_pyprox_randchunk.py قرار دهید و از یوتیوب لذت ببرید!

                    if remote_ip==googlevideo_IP:
                      datastr = str(data)
                      position=datastr.find(".googlevideo.com")
                      url=datastr[position-30:position+16]
                      position=url.find("rr")
                      url=url[position:]
                      g_ip=socket.gethostbyname(url)
                      if(g_ip!='0.0.0.0'):
                        remote_ip=g_ip

Suggestion for better performance

The code currently uses the random module from the Python standard library to generate random numbers. However, this module can be slow for generating large numbers of random values. Consider using a faster random number generator like the numpy.random module or the random module from the secrets library.

The code currently uses the pycryptodome library to encrypt and decrypt data. However, this library can be slow for large amounts of data. Consider using a faster encryption algorithm like AES-NI or ChaCha20.

The code currently uses threads to handle multiple connections concurrently. However, Python's Global Interpreter Lock (GIL) can limit the performance of threaded code. Consider using the asyncio module to handle concurrency more efficiently.

The code currently uses TCP to transfer data between the client and the server. However, TCP can be slow and inefficient for certain types of data transfers. Consider using a more efficient data transfer protocol like QUIC.

The code currently uses blocking I/O to read and write data to the network. However, non-blocking I/O can be more efficient for handling large numbers of connections. Consider using asynchronous network I/O with the asyncio module to improve performance.

اینترنت آزاد

سلام دمتون گرم ک تلاش میکنید برای اینترنت ازاد ❤️ انشالله هرچی زودتر کدش زده بشه و هر روز پخته ترش کنید🌹

How to help

سلام فکر می کنم سریع ترین راهی که میتونیم ایده شما رو تو مقیاس بزرگ پیاده سازی کنیم. اضافه کردنش به Xray-core هست. من پیشنهاد میکنم یه گروهی رو اسمبل کنیم از علاقه مندان برای این کار. من دانش تخصصی شبکه ندارم ولی مشتاق به کمک هستم

vpn mode

سلام تو حالت عادی خوب کار میکنه ولی وقتی مثلا روی nekoray میزارم به حالت vpn mode کار نمیکنه
احتمالا باید پراسسی رو توی تنظیمات وی پی ان بایپس کنم

توسعه کد برای گولنگ و پورت به v2ray-core

یك کد ساده و پروتوتایپ برای گولنگ و در اینده برای v2ray-core
https://github.com/Sina-Ghaderi/wayout

در کل مکانیزم کار ساده هست، یك سری تغییرات کوچیک دادم به جای یك فرگمنت ثابت کلاینت میتونه بازه اندازه تعریف کنه که بین x و y به صورت رندوم انتخاب بشه و سایز هر فرگمنت متغییر باشه..

اسلیپ تایم رو هم به همین شکل میتونه به صورت بازه زمانی در میلی ثانیه تعریف کنه که بصورت رندوم یك مقدار در این بازه برای هر فرگمنت انتخاب بشه..

کلاینت همچنین میتونه لیستی از ادرس های کلودفلر رو برای اتصال مشخص کنه که برای هر کانکشن به صورت رندوم انتخاب میشه.. میشه تو مراحل بعدی توسعه برای لیست ادرس های کلودفلر پریوریتی تعریف کنیم که بر اساس پینگ و سرعت سنجیده بشه..

در کل راهکار خوبیه اگرچه اتصال رو برقرار میکنه ولی latency رو به شدت افزایش میده، از اونجایی که ماهیت v2ray پروکسی هست و برای هر کانکشن نیاز به ارسال tls hello داره هر کانکشن دچار تاخیر ناشی از دور زدن DPI میشه، مگراینکه هسته v2ray رو تغییر بدیم، توی این حالت اگه از پایه یك vpn سرور با تکنیک های obfuscation شبیه به v2ray بنویسیم به نظرم ساده تر هست.. خصوصا چون کلاینت اندروید و ایفون هم باید کلا تغییر کنه و روی tun/tap سوار بشه.. اگر فرضا چنین سرویسی توسعه داده بشه هم مشکل تعداد کانکشن بالا و فیلتر شدن ایپی سرور حل میشه و هم مشکل لتنسی، چون عملا فقط یك کانکشن برای اتصال داریم و فقط یك tls hello برای استابلیش کردن تانل لایه ۳ لازم هست..

در اخر برای توسعه هسته v2ray میتونم مشارکت کنم، خوشحال میشم نظراتتون رو در مورد پروژه تانلینگ لایه ۳ بدونم، خودم استارتش کردم و با یك سری از دوستان در حال توسعه هستیم

https://github.com/Sina-Ghaderi/lib50cal

VPN Mode or Tun

تو برنامه های nekoray رو حالت vpn mode یا v2rayNG حالت Tun، کار نمیکنه؟

مشکل اتصال در ایرانسل

خیلی ممنون بابت کار بزرگی که کردی من روی ایرانسل تست کردم جواب نداد نمیدونم شاید تغییراتی باید داد

Idea: Randomizing the length of fragments

First of all thanks for sharing this brilliant idea
what if everyone use the default settings and say all the fragments being 77 by length all over the net.
the firewall will recognise and drop all the packets having size of 77. isnt it?
so isnt better to make it randomized length?

راه حل برای Youtube بدون فیلتر

سلام در رابطه با youtube و در کل این پروژتون یه ایده دارم. کاری که شما کردین خیلی مشابه DPI bypassing هست که کد های پابلیک زیادی ازش موجود هست که بهترینش goodbydpi هست که میشه به سایت های پشت کلودفلر و گوگل مثل یوتیوب که فیلترن بدون تغییر ایپی دسترسی پیدا کرد.
اینم لینک ریپازیتوریش
https://github.com/ValdikSS/GoodbyeDPI
دستوری که من زدم این هست که به dns الکترو وصل میشه و کل سیستم رو تونل میکنه و میشه به یوتیوب دسترسی پیدا کرد
goodbyedpi.exe -1 --dns-addr 78.157.42.100
توضیحات پروژه رو بخونید میفهمید که با دیتا رو به چندین قسمت تبدیل میکنه درست مثل کاری که شما کردین

اینم یه پروژه دیگ به اسم Green-Tunnel که اینم خیلی خوب جواب هست
https://github.com/SadeghHayeri/GreenTunnel

سرعت عالی به غیر از بعضیا

خیلی ایده هوشمندانه ای بود دمت گرم و سرعتم 5 برابر شد. روون یوتیوب میبینم اما
به نطر میاد بعضی سرویسا با این کار مشکل دارن. دقیقا نمیدونم چه ربطی به اونا داره و آیا با تنظیمات بیشتر درست میشه یا نه.
مثلا اینستاگرام رو امتحان کردم اصلا کار نمیکرد. توی سایتا بعضی عکسا رو لود نمیکرد.
فکر کنم اندازه بسته اصلی تاثیر داره اما کسایی که خبره ان باید بگن.
در کل دمت گرم

Handshake failed

Windows 11 22H2
Python 3.11.2
V2RayN: v6.21
ISP: MCI

Console:

----------finish------------
send  77  bytes
send  77  bytes
send  77  bytes
send  53  bytes
----------finish------------
send  77  bytes
send  77  bytes
send  77  bytes
send  53  bytes
----------finish------------

V2rayN:

2023/04/25 16:33:51 [Warning] [2850111061] app/proxyman/outbound: failed to process outbound traffic > proxy/vmess/outbound: failed to find an available destination > common/retry: [transport/internet/websocket: failed to dial WebSocket > transport/internet/websocket: failed to dial to (wss://127.0.0.1:2500/): 521 Origin Down > websocket: bad handshake] > common/retry: all retry attempts failed
2023/04/25 16:34:22 127.0.0.1:62420 accepted //www.google.com:443 [http -> proxy]
05/02/1402 16:34:32 The ping of current service: -1 ms

it connects to listened port. sent bytes visible in console.

repro:

  1. get a test config from @V_2Shopbot and ensure it works
  2. run python pyprox_tcp.py
  3. edit Address and Port in v2rayn client and set system proxy
  4. 🐛 handshake failed

تانل زدن

سلام توسعه دهنده عزیز
ایا امکانش هست با این روش روی سرور ایرانمون این تاخیرو ایجاد کنیم که بتونیم ترافیکو به ایپی های کلودفلر بفرستیم ؟

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.