https://github.com/azumi67/rtt-icmp-tunnel
Establish an ICMP tunnel between Server and Client and combine it with RTT [ Reverse Tunnel] - Supports both TCP & UDP
https://github.com/azumi67/rtt-icmp-tunnel
icmp icmp-tunnel reverse-tunnel rtt tcp tunnel udp v2ray wireguard
Last synced: 3 months ago
JSON representation
Establish an ICMP tunnel between Server and Client and combine it with RTT [ Reverse Tunnel] - Supports both TCP & UDP
- Host: GitHub
- URL: https://github.com/azumi67/rtt-icmp-tunnel
- Owner: Azumi67
- License: gpl-3.0
- Created: 2023-11-22T20:10:07.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-08T11:31:47.000Z (almost 2 years ago)
- Last Synced: 2025-06-13T10:48:24.782Z (4 months ago)
- Topics: icmp, icmp-tunnel, reverse-tunnel, rtt, tcp, tunnel, udp, v2ray, wireguard
- Language: Python
- Homepage:
- Size: 176 KB
- Stars: 36
- Watchers: 0
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

نام پروژه : ریورس تانل و تانل ICMP بین سرور و کلاینت
---------------------------------------------------------------
----------------------------------**توضیح کوتاه در مورد این پروژه :**
- بوسیله دو مدل تانل ICMP اقای james و hans بین کلاینت و سرور تانل را برقرار کنید و سپس با ایپی پرایوت 4 ساخته شده ، ریورس تانل اقای رادکسوت را برقرار میکنید.
- من این روش را قبلا با FRP و پورت فوروارد انجام میدادم و سرعت خوبی هم داشت.
- لطفا اگر فیدبکی داشتید بگید.
- اگر اختلالی در تانل داشتید همیشه وارد مسیر روبرو شوید cd /etc/systemd/system و با دستور ls ، سرویس های خارج و ایران را بیابید و با دستور systemctl status servicename و یا journalctl -u servicename.service ، دلیل اختلال تانل را بیابید
- در نصب تانل های icmp، دقت کنید که به اشتباه کانفیگ نسازید که به اختلال خواهید خورد.
- خودم داخل سرور های مختلف تست کردم و جواب داده . بر روی دبیان 12 و اوبونتو 20 تست شده است.
- اگر از پنل v2ray استفاده میکنید، لطفا ایپی پرایوت ها را باز کنید.
- به زودی تانل های ICMP دیگر که با پورت فوروارد انجام میشود هم در Repo دیگر قرار میدهم.
------------------------
**چند نکته**- برای تانل ICMP ، حتما اگر اشتباهی در کانفیگ انجام دادید باید حتما هم در سرور ایران و خارج حذفش کنید و هر دو سرور ریبوت شود در غیر این صورت خطای SERVER IS FULL را میگیرید.
- قبل از کانفیگ دوباره، همیشه با دستور ip a مشاهده کنید که tun0 یا tun1 که مربوط به icmp است ، موجود نباشد. حتما پس از Uninstall ICMP سرور خود را ریست نمایید.
- مورد دیگر اینکه، در سرور های ایران اگر DNS مشکل داشته باشد، ممکن است دانلود انجام نشود. حتما از طریق nano /etc/resolv.conf اقدام به تغییر موقتی dns خود بکنید .
- ممکن است در سرور ایران شما، سرعت دانلود پایین باشد و برای همین، ممکنه که دانلود پیش نیاز ها کمی طول بکشد.
- پورت ها در آموزش برای مثال استفاده شده اند، شما میتوانید از پورت های دلخواه خودتان استفاده نمایید.------------------------

**دسترسی سریع به اسکریپت**- [کلیک - click](https://github.com/Azumi67/RTT-ICMP-Tunnel#%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D9%85%D9%86)
------------------------

**امکانات**- تانل ICMP با دو روش متفاوت و استفاده از ایپی های آن تانل در ریورس تانل RTT
- پشتیبانی از TCP و UDP
- قابلیت تانل تک پورت و چندین پورت برای TCP
- قابلیت تانل تک پورت برای UDP
- مناسب برای V2ray و Openvpn و Wireguard
- امکان حذف و استارت و استاپ سرویس------------------------------------------------------

**پیش نیازها**- لطفا سرور اپدیت شده باشه.
- میتوانید از اسکریپت اقای [Hwashemi](https://github.com/hawshemi/Linux-Optimizer) و یا [OPIRAN](https://github.com/opiran-club/VPS-Optimizer) هم برای بهینه سازی سرور در صورت تمایل استفاده نمایید. (پیش نیاز نیست)----------------------------

**آموزش**
-

**تانل Hans با ریورس تانل RTT - تک پورت - TCP**
----------------------------------
 **سرور خارج****مسیر : hans RTT > single port > kharej**
![]()
- نخست RTT را نصب کنید و سپس سرور خارج را کانفیگ میکنیم .
- کانفیگ را از سرور خارج شروع میکنیم.
- پس از نصب پیش نیاز ها، تانل ICMP شما در سرور خارج فعال میشود و حالا نوبت کانفیگ RTT در سرور خارج است.
- من پورت ایران 443 گذاشتم و این پورت جدید کانفیگ های من خواهد بود.
- من یک کانفیگ vmess با پورت 8080 دارم پس پورت خارج را 8080 قرار میدم.
- در قسمت SNI، گیت هاب را قرار میدهم. شما میتوانید SNI دیگری قرار دهید.
- در قسمت Restart Service مقدار 24 را قرار میدم. شما زمان مورد نیاز را بر اساس نیاز خودتان تغییر دهید.
---------------------- **سرور ایران**
**مسیر : hans RTT > single port > iran**
![]()
- مانند سرور خارج، نخست RTT را نصب کنید و سپس کانفیگ سرور ایران را انجام دهید.
- پس ار نصب پیش نیاز ها، از شما ایپی 4 سرور خارج را میخواهد که وارد میکنید و تانل ICMP بر روی سرور ایران فعال میشود. سپس کانفیگ RTT را بر روی سرور ایران را انجام میدهیم.
- پورت ایران را من 443 قرار داده بودم
- قسمت SNI هم که گیت هاب گذاشته بودم.
- ریستارت سرویس هم که مانند قبل بر اساس نیازتان، مقدارش را مشخص کنید.------------------
**نکات**
- در صورت ریبوت شدن سرور ایران ، یک ایپی جدید برای تانل ICMP انتخاب میشود و این باعث میشود که در تانل شما اختلال پیش بیاید.
- دقت نمایید این مشکل در تانل HANS است و تنها در صورتی اتفاق میوفتد که سرور ایران ریبوت شود و خارج ریبوت نشود.
- از طریق دو راه میشه این مشکل را حل کرد . با ادیت سرویس تانل رادکسوت در سرور خارج و تغییر ایپی قدیمی به ایپی جدید در سرور ایران.
- برای روش اول، این مسیر سرویس تانل RTT میباشد. etc/systemd/system/radkesvattunnel-kharej.service/
- با nano ویرایش کنید و ایپی جدید ایران هم در سرور ایران با دستور ip a بدست اورید.
- راه دوم هم ریبوت کردن سرور خارج و ایران میباشد که درست میشود.(این روش ساده تر است)
--------------------------------------

**تانل Hans با ریورس تانل RTT - چندین پورت - TCP**
--------------------------------**سرور خارج**
**مسیر : hans RTT > multi port > kharej**
![]()
- نخست RTT را نصب کنید و سپس سرور خارج را کانفیگ میکنیم .
- کانفیگ را از سرور خارج شروع میکنیم.
- پس از نصب پیش نیاز ها، تانل ICMP شما در سرور خارج فعال میشود و حالا نوبت کانفیگ RTT در سرور خارج است.
- من پورت ایران 443 گذاشتم.
- در قسمت SNI، گیت هاب را قرار میدهم. شما میتوانید SNI دیگری قرار دهید.
- در قسمت Restart Service مقدار 24 را قرار میدم. شما زمان مورد نیاز را بر اساس نیاز خودتان تغییر دهید.
- کانفیگ شبیه تک پورت میباشد ولی من برای مولتی پورت تمام پورت ها را باز گذاشتم.
- در مالتی پورت، پورت کانفیگ شما تغییری نخواهد کرد و همان پورت قبلی خواهد بود. تنها ایپی ادرس شما به ایپی ادرس ایران تغییر خواهد کرد.
- به طور مثال من دو کانفیگ VMESS با پورت های 8080 و 8081 دارم و پس از تانل، تنها نیاز است که ایپی ادرس را به ایپی ادرس ایران تغییر بدم.
---------------------------------------
**سرور ایران****مسیر : hans RTT > multi port > IRAN**
![]()
- مانند سرور خارج، نخست RTT را نصب کنید و سپس کانفیگ سرور ایران را انجام دهید.
- پس ار نصب پیش نیاز ها، از شما ایپی 4 سرور خارج را میخواهد که وارد میکنید و تانل ICMP بر روی سرور ایران فعال میشود. سپس کانفیگ RTT را بر روی سرور ایران را انجام میدهیم.
- پورت ایران را من 443 قرار داده بودم
- قسمت SNI هم که گیت هاب گذاشته بودم.
- ریستارت سرویس هم که مانند قبل بر اساس نیازتان، مقدارش را مشخص کنید.
- کانفیگ شبیه تک پورت میباشد ولی من برای مولتی پورت تمام پورت ها را باز گذاشتم.
- در مالتی پورت، پورت کانفیگ شما تغییری نخواهد کرد و همان پورت قبلی خواهد بود. تنها ایپی ادرس شما به ایپی ادرس ایران تغییر خواهد کرد.------------------
**نکات**
- در صورت ریبوت شدن سرور ایران ، یک ایپی جدید برای تانل ICMP انتخاب میشود و این باعث میشود که در تانل شما اختلال پیش بیاید.
- از طریق دو راه میشه این مشکل را حل کرد . با ادیت سرویس تانل رادکسوت در سرور خارج و تغییر ایپی قدیمی به ایپی جدید در سرور ایران.
- برای روش اول، این مسیر سرویس تانل RTT میباشد. etc/systemd/system/radkesvattunnel-kharej.service/
- با nano ویرایش کنید و ایپی جدید ایران هم در سرور ایران با دستور ip a بدست اورید.
- راه دوم هم ریبوت کردن سرور خارج و ایران میباشد که درست میشود.(این روش ساده تر است)
- دقت نمایید این مشکل در تانل HANS است و تنها در صورتی اتفاق میوفتد که سرور ایران ریبوت شود و خارج ریبوت نشود.
--------------------------------------

**تانل ICMPTUNNEL با ریورس تانل RTT - تک پورت - TCP**
--------------------------------**سرور خارج**
**مسیر : icmptunnel RTT > single port > kharej**
![]()
- نخست RTT را نصب کنید و سپس سرور خارج را کانفیگ میکنیم .
- کانفیگ را از سرور خارج شروع میکنیم.
- پس از نصب پیش نیاز ها، تانل ICMPTUNNEL شما در سرور خارج فعال میشود و حالا نوبت کانفیگ RTT در سرور خارج است.
- من پورت ایران 443 گذاشتم.این پورت جدید کانفیگ شما میباشد.
- من یک کانفیگ vmess با پورت 8080 دارم پس پورت خارج را 8080 قرار میدم.
- در قسمت SNI، گیت هاب را قرار میدهم. شما میتوانید SNI دیگری قرار دهید.
- در قسمت Restart Service مقدار 24 را قرار میدم. شما زمان مورد نیاز را بر اساس نیاز خودتان تغییر دهید.
- در اینجا مشکل عوض شدن ایپی در صورت ریبوت شدن سرور ایران، مانند تانل HANS وجود ندارد
- از IFCONFIG برای اضافه شدن ایپی استفاده شده است.
---------------------------------------
**سرور ایران****مسیر : icmptunnel RTT > single port > iran**
![]()
- مانند سرور خارج، نخست RTT را نصب کنید و سپس کانفیگ سرور ایران را انجام دهید.
- پس ار نصب پیش نیاز ها، از شما ایپی 4 سرور خارج را میخواهد که وارد میکنید و تانل ICMP بر روی سرور ایران فعال میشود. سپس کانفیگ RTT را بر روی سرور ایران را انجام میدهیم.
- پورت ایران را من 443 قرار داده بودم
- قسمت SNI هم که گیت هاب گذاشته بودم.
- ریستارت سرویس هم که مانند قبل بر اساس نیازتان، مقدارش را مشخص کنید.
- در اینجا مشکل عوض شدن ایپی در صورت ریبوت شدن سرور ایران، مانند تانل HANS وجود ندارد
- از IFCONFIG برای اضافه شدن ایپی استفاده شده است.--------------------------------------

**تانل ICMPTUNNEL با ریورس تانل RTT - چند پورت - TCP**
--------------------------------**سرور خارج**
**مسیر : icmptunnel RTT > multi port > kharej**
![]()
- نخست RTT را نصب کنید و سپس سرور خارج را کانفیگ میکنیم .
- کانفیگ را از سرور خارج شروع میکنیم.
- پس از نصب پیش نیاز ها، تانل ICMPTUNNEL شما در سرور خارج فعال میشود و حالا نوبت کانفیگ RTT در سرور خارج است.
- من پورت ایران 443 گذاشتم.
- در قسمت SNI، گیت هاب را قرار میدهم. شما میتوانید SNI دیگری قرار دهید.
- در قسمت Restart Service مقدار 24 را قرار میدم. شما زمان مورد نیاز را بر اساس نیاز خودتان تغییر دهید.
- در اینجا مشکل عوض شدن ایپی در صورت ریبوت شدن سرور ایران، مانند تانل HANS وجود ندارد
- از IFCONFIG برای اضافه شدن ایپی استفاده شده است.
- کانفیگ شبیه تک پورت میباشد ولی من برای مولتی پورت تمام پورت ها را باز گذاشتم.
- در مالتی پورت، پورت کانفیگ شما تغییری نخواهد کرد و همان پورت قبلی خواهد بود. تنها ایپی ادرس شما به ایپی ادرس ایران تغییر خواهد کرد.
---------------------------------------
**سرور ایران****مسیر : icmptunnel RTT > multi port > iran**
![]()
- مانند سرور خارج، نخست RTT را نصب کنید و سپس کانفیگ سرور ایران را انجام دهید.
- پس ار نصب پیش نیاز ها، از شما ایپی 4 سرور خارج را میخواهد که وارد میکنید و تانل ICMP بر روی سرور ایران فعال میشود. سپس کانفیگ RTT را بر روی سرور ایران را انجام میدهیم.
- پورت ایران را من 443 قرار داده بودم
- قسمت SNI هم که گیت هاب گذاشته بودم.
- ریستارت سرویس هم که مانند قبل بر اساس نیازتان، مقدارش را مشخص کنید.
- در اینجا مشکل عوض شدن ایپی در صورت ریبوت شدن سرور ایران، مانند تانل HANS وجود ندارد
- از IFCONFIG برای اضافه شدن ایپی استفاده شده است.
- کانفیگ شبیه تک پورت میباشد ولی من برای مولتی پورت تمام پورت ها را باز گذاشتم.
- در مالتی پورت، پورت کانفیگ شما تغییری نخواهد کرد و همان پورت قبلی خواهد بود. تنها ایپی ادرس شما به ایپی ادرس ایران تغییر خواهد کرد.--------------------------------------

**تانل Hans با ریورس تانل RTT - تک پورت - UDP**
--------------------------------**سرور خارج**
**مسیر : Hans RTT > single port > kharej**
![]()
- نخست RTT را نصب کنید و سپس سرور خارج را کانفیگ میکنیم .
- کانفیگ را از سرور خارج شروع میکنیم.
- پس از نصب پیش نیاز ها، تانل ICMP شما در سرور خارج فعال میشود و حالا نوبت کانفیگ RTT در سرور خارج است.
- پورت وایرگارد من 50824 میباشد.
- من پورت ایران 443 گذاشتم و این پورت جدید وایرگارد من خواهد شد.
- در قسمت SNI، گیت هاب را قرار میدهم. شما میتوانید SNI دیگری قرار دهید.
- در قسمت Restart Service مقدار 24 را قرار میدم. شما زمان مورد نیاز را بر اساس نیاز خودتان تغییر دهید.
------------------**نکات**
- در صورت ریبوت شدن سرور ایران ، یک ایپی جدید برای تانل ICMP انتخاب میشود و این باعث میشود که در تانل شما اختلال پیش بیاید.
- از طریق دو راه میشه این مشکل را حل کرد . با ادیت سرویس تانل رادکسوت در سرور خارج و تغییر ایپی قدیمی به ایپی جدید در سرور ایران.
- برای روش اول، این مسیر سرویس تانل RTT میباشد. etc/systemd/system/radkesvattunnel-kharej.service/
- با nano ویرایش کنید و ایپی جدید ایران هم در سرور ایران با دستور ip a بدست اورید.
- راه دوم هم ریبوت کردن سرور خارج و ایران میباشد که درست میشود.(این روش ساده تر است)
- دقت نمایید این مشکل در تانل HANS است و تنها در صورتی اتفاق میوفتد که سرور ایران ریبوت شود و خارج ریبوت نشود.
---------------------------------------
**سرور ایران****مسیر : Hans RTT > single port > iran**
![]()
- مانند سرور خارج، نخست RTT را نصب کنید و سپس کانفیگ سرور ایران را انجام دهید.
- پس ار نصب پیش نیاز ها، از شما ایپی 4 سرور خارج را میخواهد که وارد میکنید و تانل ICMP بر روی سرور ایران فعال میشود. سپس کانفیگ RTT را بر روی سرور ایران را انجام میدهیم.
- پورت ایران را من 443 قرار داده بودم
- قسمت SNI هم که گیت هاب گذاشته بودم.
- ریستارت سرویس هم که مانند قبل بر اساس نیازتان، مقدارش را مشخص کنید.--------------------------------------

**تانل Icmptunnel با ریورس تانل RTT - تک پورت - UDP**
--------------------------------**سرور خارج**
**مسیر : ICMPTunnel RTT > single port > kharej**
![]()
- نخست RTT را نصب کنید و سپس سرور خارج را کانفیگ میکنیم .
- کانفیگ را از سرور خارج شروع میکنیم.
- پس از نصب پیش نیاز ها، تانل ICMP شما در سرور خارج فعال میشود و حالا نوبت کانفیگ RTT در سرور خارج است.
- پورت وایرگارد من 50824 میباشد.
- من پورت ایران 443 گذاشتم و این پورت جدید وایرگارد من خواهد شد.
- در قسمت SNI، گیت هاب را قرار میدهم. شما میتوانید SNI دیگری قرار دهید.
- در قسمت Restart Service مقدار 24 را قرار میدم. شما زمان مورد نیاز را بر اساس نیاز خودتان تغییر دهید.
- در اینجا مشکل عوض شدن ایپی در صورت ریبوت شدن سرور ایران، مانند تانل HANS وجود ندارد
- از IFCONFIG برای اضافه شدن ایپی استفاده شده است.
---------------------------------------
**سرور ایران****مسیر : Hans RTT > single port > iran**
![]()
- مانند سرور خارج، نخست RTT را نصب کنید و سپس کانفیگ سرور ایران را انجام دهید.
- پس ار نصب پیش نیاز ها، از شما ایپی 4 سرور خارج را میخواهد که وارد میکنید و تانل ICMP بر روی سرور ایران فعال میشود. سپس کانفیگ RTT را بر روی سرور ایران را انجام میدهیم.
- پورت ایران را من 443 قرار داده بودم
- قسمت SNI هم که گیت هاب گذاشته بودم.
- ریستارت سرویس هم که مانند قبل بر اساس نیازتان، مقدارش را مشخص کنید.
- در اینجا مشکل عوض شدن ایپی در صورت ریبوت شدن سرور ایران، مانند تانل HANS وجود ندارد
- از IFCONFIG برای اضافه شدن ایپی استفاده شده است.--------------------------------------
**اسکرین شات**Click to reveal image
![]()
------------------------------------------

**اسکریپت های کارآمد :**
- این اسکریپت ها optional میباشد.
Opiran Script
```
apt install curl -y && bash <(curl -s https://raw.githubusercontent.com/opiran-club/VPS-Optimizer/main/optimizer.sh --ipv4)
```Hawshemi script
```
wget "https://raw.githubusercontent.com/hawshemi/Linux-Optimizer/main/linux-optimizer.sh" -O linux-optimizer.sh && chmod +x linux-optimizer.sh && bash linux-optimizer.sh
```-----------------------------------------------------

**اسکریپت من**
----------------
```
sudo apt-get install python3 -y && apt-get install wget -y && apt-get install python3-pip -y && pip3 install colorama && pip3 install netifaces && apt-get install curl -y && python3 <(curl -Ls https://raw.githubusercontent.com/Azumi67/RTT-ICMP-Tunnel/main/rtt-icmp.py --ipv4)
```- اگر با دستور بالا نتوانستید اسکریپت را اجرا کنید، نخست دستور زیر را اجرا نمایید و سپس دستور اول را دوباره اجرا کنید.
```
sudo apt-get install python-pip -y && apt-get install python3 -y && alias python=python3 && python -m pip install colorama && python -m pip install netifaces
```--------------------------------------
• دستور زیر برای کسانی هست که پیش نیاز ها را در سرور، نصب شده دارند
```
python3 <(curl -Ls https://raw.githubusercontent.com/Azumi67/RTT-ICMP-Tunnel/main/rtt-icmp.py --ipv4)
```
--------------------------------------
• اگر سرور شما خطای externally-managed-environment داد از دستور زیر اقدام به اجرای اسکریپت نمایید.
```
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Azumi67/RTT-ICMP-Tunnel/main/managed2.sh)"
```---------------------------------------------

**تلگرام**
 [اپیران- OPIRAN](https://t.me/OPIranClubb)---------------------------------

**سورس ها**[سورس های RTT](https://github.com/radkesvat)
 [سورس های icmptunnel](https://github.com/jamesbarlow/icmptunnel)
 [سورس های hans](https://github.com/friedrich/hans)
 [سورس های OPIRAN](https://github.com/opiran-club)
[سورس های Hwashemi](https://github.com/hawshemi/Linux-Optimizer)
-----------------------------------------------------

**ویدیوی آموزش**-----------------------------------------