نام پروژه : لوکال تانل به صورت دایرکت یا ریورس - Tun interface و بر روی پورت TCP
این تانل برای استفاده شخصی و گیم انلاین است. اموزش استفاده از اسکریپت قرار داده شد.
گزینه retry به سرور و کلاینت اضافه شد که در صورت قطعی تانل، به صورت اتوماتیک ریست شود
برای گیم انلاین، من از این پروژه همراه به udp port forward استفاده میکنم : (https://github.com/Azumi67/PortforwardSec/tree/main) ( به زودی یک اسکریپت برای راحتی کار port forward هم مینویسم)
برای تانل دوم با dokodemo و frp و rathole و Backhaul هم خیلی خوب جواب میده. اما با همون dokodemo door داخل گیم سرعت خوبی تجربه میکنید
لطفا اگر استفاده شخصی ندارید و گیمر نیستید، از پروژه های دیگری استفاده نمایید
اگر مشکل قطعی تانل با ipsec داشتید، یا ریست تایمر ان را به دو دقیقه تغییر دهید یا ipsec را استقاده نکنید
امکانات
- امکان لوکال تانل بین سرور و کلاینت به صورت دایرکت یا ریورس ( برای سرور های محدود)
- استفاده از ایپی پرایوت های ساخته شده در Tun interface برای تانل اصلی یا پورت فوروارد
- امکان اتصال بین سرور و کلاینت بر روی پورت TCP
- امکان اتصال سرور و کلاینت با پابلیک ایپی 4 یا native
- امکان انتخاب ایپی پرایوت انتخابی خودتان هم به صورت پرایوت ایپی 4 یا پرایوت ایپی 6
- دارای worker بر اساس cpu cores یا انتخابی
- داری retry reconnection
- امکان انتخاب subnet mask برای پرایوت ایپی های ساخته
- امکان وارد کردن mtu به صورت manual
- دارای ping interval و استفاده از Bin bash برای ریست سرویس ها
- دارای encryption های IPSEC (در اسکریپت)
- دارای tcp nodelay و tcp keepalive
- دارای پرایوت و پابلیک key برای ارتباط بین سرور و کلاینت
- دارای verbose برای نمایش لاگ (خطا)
- بعدا codereedsolomon و tcp window هم اضافه میشود
آپدیت
------------------------------------
- ریست تایمر اجباری به دلیل مشکل ساز بودن در گیم از اسکریپت حذف شد
- تغییراتی در authentication method انجام شد و از pub key & priv key استفاده خواهد شد
- لاگ های تانل در مسیر etc/server.log/ یا etc/client.log/ ذخیره میشود
- گزینه worker اضافه شد. دیفالت بر اساس cpu cores و انتخابی
- مورد Challenge n Response Authentication به همراه unique nonce و Sha 256 به همراه expiry time حذف شد
- این مورد xtaci/smux دوباره با retry logic حذف شد
- این مورد tcpnodelay و tcp keepalive اضافه شد
توضیحات
------------------------------------
- هدف نوشتن این برنامه یادگیری و استفاده شخصی در گیم های خودم بوده است
- شما به صورت ریورس یا دایرکت، یک لوکال ایپی دریافت میکنید و سپس از آن پرایوت ایپی ها برای دایرکت تانل، پورت فوروارد یا ریورس استفاده مینمایید.
- پس از انجام تانل لوکال به صورت دایرکت یا ریورس، به طور مثال میتوانید از پورت فوروارد استفاده نمایید یا مثلا دایرکت تانل چیزل استفاده نمایید یا ریورس.
- در روش ریورس، سرور اصلی میتواند ایران باشد و کلاینت خارج و در روش دایرکت، سرور اصلی میتواند خارج باشد و کلاینت ایران. بدین صورت میتوان تانل لوکالی بر روی سرور های خارج محدود در ان سرور ایران(به صورت ریورس) هم ایجاد کرد.
- با ایپی 4 سرور و هم با ایپی 6 سرور و کلاینت میشود که وصل شد .
- پورت تنها برای ارتباط بین سرور و کلاینت میباشد و شما تنها باید از پرایوت ایپی ها برای تانل اصلی استفاده نمایید.
- اول دستورات سرور را اجرا کنید و سپس دستورات کلاینت . میتوانید هم به صورت دایرکت یا ریورس انجام دهید. یعنی سرور اصلی خارج و کلاینت ایران و یا سرور اصلی ایران و کلاینت خارج باشد
- این پروژه دارای اسکریپت و اموزش برای کسانی که مانند من مصرف شخصی دارند و گیم انلاین انجام میدهند، است.
---------------------
![6348248](https://github.com/Azumi67/PrivateIP-Tunnel/assets/119934376/398f8b07-65be-472e-9821-631f7b70f783)
**آموزش استفاده از اسکریپت**
روش دایرکت یا ریورس با پابلیک ایپی 4 یا 6
![green-dot-clipart-3](https://github.com/Azumi67/6TO4-PrivateIP/assets/119934376/902a2efa-f48f-4048-bc2a-5be12143bef3) **سرور خارج**
- نخست یک پرایوت کی generate میشود که در کلاینت استفاده میشود.
- اگر کانفیگ دایرکت بود سرور خارج و کلاینت ایران است و اگر کانفیگ ریورس بود، سرور ایران و کلاینت خارج است
- پورت سرور را وارد میکنم
- برای پرایوت ایپی تانل از ایپی ورژن 4 استفاده میکنم و برای سرور و کلاینت ایپی پرایوت مورد نظر را انتخاب میکنم
- برای ایپی پرایوت ورژن 4 از ساب نت 24 و برای ایپی پرایوت ورژن 6 از ساب نت 64 استفاده میکنم
- نام tun را ازومی قرار میدهم و مقدار mtu را 1380 وارد میکنم
- نمیخواهم لاگ ها در مسیر etc ذخیره شود و برای همین N را وارد میکنم
- چون میخواهم برای گیم استفاده کنم، گزینه tcpnodelay را فعال میکنم
- گزینه tcp keepalive را فعال میکنم و مقدار 1m به این معنی که هر 1 دقیقه Keepalive انجام میشود را فعال میکنم
- گزینه worker را ویرایش میکنم و گزینه default بر اساس cpu cores را انتخاب میکنم
- همچنین socket را فعال میکنم و مقدار socket buff را همان مقدار پیش فرض میذارم
- سپس Ipsec را فعال میکنم و secret key را وارد میکنم
- ریست تایمر را برای ipsec فعال میکنم و مقدار انتخابی را وارد میکنم
- ریست تایمر tun را فعال میکنم و عدد انتخابی را وارد میکنم . مثلا من هر 12 ساعت یا 24 ساعت ریست میکنم
- پس از فعال کردن ریست تایمر هم در سرور خارج و هم کلاینت برای sync شدن تایم ها بهتر است یک بار هر در سرویس مربوطه هم زمان در سرور و کلاینت ریست شوند
- اول سرور و سپس کلاینت ریست شود
- سرور خارج : systemctl restart kazumi-local , systemctl restart reset-timer
- کلاینت ایران : systemctl restart iazumi-local , systemctl restart reset-timer
----------------------
![green-dot-clipart-3](https://github.com/Azumi67/6TO4-PrivateIP/assets/119934376/49000de2-53b6-4c5c-888d-f1f397d77b92)**کلاینت ایران**
- پورت سرور و ایپی پابلیک 4 سرور را وارد میکنم. اگر ایپی پابلیک 6 را انتخاب کرده بودید ایپی پابلیک 6 سرور را وارد میکنید
- پرایوت کی که در سرور خارج generate شده بود را اینجا وارد میکنم و سپس enter را وارد میکنم. دقت نمایید تمام محتوا کپی شود
- مانند سرور خارج پرایوت ایپی های مربوطه را انتخاب میکنم
- چون پرایوت ایپی 4 است پس ساب نت 24 را انتخاب میکنم
- ذخیره لاگ را غیرفعال میکنم
- گزینه tcp keepalive را فعال و بر روی 1m میذارم
- گزینه tcpnodelay هم فعال میکنم
- گزینه worker را ویرایش میکنم و default را انتخاب میکنم
- سوکت هم مانند سرورفعال میکنم و مقدار پیش فرض را enter میکنم
- گزینه ipsec را فعال میکنم و secret key که در سرور وارد کردم را در کلاینت هم وارد میکنم
- ریست تایمر ipsec و tun هم فعال میکنم و مقادیر مشابه سرور را وارد میکنم
- اگر پینگ بین دو پرایوت ایپی برقرار نشد خود تانل پس از چند ثانیه connection را فعال میکند
- پس از انجام کانفیگ برای sync کردن ریست تایمر ها یک بار در سرور و کلاینت، سرویس ها را ریست کنید
- اول سرور و سپس کلاینت ریست شود
- سرور خارج : systemctl restart kazumi-local , systemctl restart reset-timer
- کلاینت ایران : systemctl restart iazumi-local , systemctl restart reset-timer
**ویرایش کانفیگ**
- در اینجا میتوانم هر مقداری را تغییر دهم.
- پابلیک ایپی گزینه دوم تنها برای نشان دادن انلاین بودن key میباشد و نیازی به تغییر ندارد
- گزینه 3 نشان دادن پرایوت کی است و برای زمانی استفاده میشود که میخواهیم از این کلید در کلاینت دیگری استفاده نماییم. به این صورت که کلید نمایشی را در کلاینت مربوطه paste میکنیم.
- هر مقدار اعم از پرایوت ایپی یا پورت را عوض کردید در کلاینت هم عوض کنید و گزینه save را بزنید
------------------
روش دایرکت با vxlan پابلیک ایپی 4 یا 6
![green-dot-clipart-3](https://github.com/Azumi67/6TO4-PrivateIP/assets/119934376/902a2efa-f48f-4048-bc2a-5be12143bef3) **سرور خارج**
- نخست یک پرایوت کی generate میشود که در کلاینت استفاده میشود.
- اگر کانفیگ دایرکت بود سرور خارج و کلاینت ایران است و اگر کانفیگ ریورس بود، سرور ایران و کلاینت خارج است
- پورت سرور را وارد میکنم
- برای پرایوت ایپی تانل از ایپی ورژن 4 استفاده میکنم و برای سرور و کلاینت ایپی پرایوت مورد نظر را انتخاب میکنم
- برای ایپی پرایوت ورژن 4 از ساب نت 24 و برای ایپی پرایوت ورژن 6 از ساب نت 64 استفاده میکنم
- نام tun را ازومی قرار میدهم و مقدار mtu را 1380 وارد میکنم
- نمیخواهم لاگ ها در مسیر etc ذخیره شود و برای همین N را وارد میکنم
- چون میخواهم برای گیم استفاده کنم، گزینه tcpnodelay را فعال میکنم
- گزینه tcp keepalive را فعال میکنم و مقدار 1m به این معنی که هر 1 دقیقه Keepalive انجام میشود را فعال میکنم
- گزینه worker را ویرایش میکنم و گزینه default بر اساس cpu cores را انتخاب میکنم
- همچنین socket را فعال میکنم و مقدار socket buff را همان مقدار پیش فرض میذارم
- سپس Ipsec را فعال میکنم و secret key را وارد میکنم
- ریست تایمر را برای ipsec و tun فعال میکنم و مقدار انتخابی را وارد میکنم . مثلا من برای ریست تایمر مقدار 12 یا بیشتر را قرار میدهم
- سپس از من سوال میشود که کانفیگ vxlan یا geneve را میخواهم که من vxlan را انتخاب میکنم
- سپس از من سوال میشود که ایا میخواهم که خود اسکریپت نام اینترفیس را پیدا کند که گزینه y را وارد میکنم
- مقدار mtu هم اتوماتیک حساب میشود
- پس از فعال کردن ریست تایمر هم در سرور خارج و هم کلاینت برای sync شدن تایم ها بهتر است یک بار هر در سرویس مربوطه هم زمان در سرور و کلاینت ریست شوند
- اول سرور و سپس کلاینت ریست شود
- سرور خارج : systemctl restart kazumi-local , systemctl restart reset-timer
- کلاینت ایران : systemctl restart iazumi-local , systemctl restart reset-timer
----------------------
![green-dot-clipart-3](https://github.com/Azumi67/6TO4-PrivateIP/assets/119934376/49000de2-53b6-4c5c-888d-f1f397d77b92)**کلاینت ایران**
- پورت سرور و ایپی پابلیک 4 سرور را وارد میکنم. اگر ایپی پابلیک 6 را انتخاب کرده بودید ایپی پابلیک 6 سرور را وارد میکنید
- پرایوت کی که در سرور خارج generate شده بود را اینجا وارد میکنم و سپس enter را وارد میکنم. دقت نمایید تمام محتوا کپی شود
- مانند سرور خارج پرایوت ایپی های مربوطه را انتخاب میکنم
- چون پرایوت ایپی 4 است پس ساب نت 24 را انتخاب میکنم
- ذخیره لاگ را غیرفعال میکنم
- گزینه tcp keepalive را فعال و بر روی 1m میذارم
- گزینه tcpnodelay هم فعال میکنم
- گزینه worker را ویرایش میکنم و default را انتخاب میکنم
- سوکت هم مانند سرورفعال میکنم و مقدار پیش فرض را enter میکنم
- گزینه ipsec را فعال میکنم و secret key که در سرور وارد کردم را در کلاینت هم وارد میکنم
- ریست تایمر ipsec و tun هم فعال میکنم و مقادیر مشابه سرور را وارد میکنم
- اگر پینگ بین دو پرایوت ایپی برقرار نشد خود تانل پس از چند ثانیه connection را فعال میکند
- کانفیگ vxlan را انتخاب میکنم
- سپس از من سوال میشود که ایا میخواهم که خود اسکریپت نام اینترفیس را پیدا کند که گزینه y را وارد میکنم
- مقدار mtu هم اتوماتیک حساب میشود
- پس از انجام کانفیگ برای sync کردن ریست تایمر ها یک بار در سرور و کلاینت، سرویس ها را ریست کنید
- اول سرور و سپس کلاینت ریست شود
- سرور خارج : systemctl restart kazumi-local , systemctl restart reset-timer
- کلاینت ایران : systemctl restart iazumi-local , systemctl restart reset-timer
**ویرایش کانفیگ**
- در اینجا میتوانم هر مقداری را تغییر دهم.
- پابلیک ایپی گزینه دوم تنها برای نشان دادن انلاین بودن key میباشد و نیازی به تغییر ندارد
- گزینه 3 نشان دادن پرایوت کی است و برای زمانی استفاده میشود که میخواهیم از این کلید در کلاینت دیگری استفاده نماییم. به این صورت که کلید نمایشی را در کلاینت مربوطه paste میکنیم.
- هر مقدار اعم از پرایوت ایپی یا پورت را عوض کردید در کلاینت هم عوض کنید و گزینه save را بزنید
- به طور مثال من پرایوت ایپی tun را عوض کردم. چون کانفیگ vxlan است باید ایپی پرایوت نخست با ایپی ورژن 4 شروع شود اما پرایوت ایپی خود vxlan میتواند ایپی ورژن 4 یا 6 باشد
- برای تغییر ایپی پرایوت vxlan هم مانند اسکرین شات عمل کنید و اگر ایپی پرایوت 6 میخواهید گزینه دوم را انتخاب و ایپی را بدون ساب نت وارد نمایید.
- در کلاینت هم تغییرات را انجام دهید. دقت نمایید اگر به طور مثال ایپی پرایوت در سرور db3::1 است باید در کلاینت db3::2 باشد
------------------
روش ریورس با geneve پابلیک ایپی 4 یا 6
![green-dot-clipart-3](https://github.com/Azumi67/6TO4-PrivateIP/assets/119934376/902a2efa-f48f-4048-bc2a-5be12143bef3) **سرور ایران**
- نخست یک پرایوت کی generate میشود که در کلاینت استفاده میشود.
- اگر کانفیگ دایرکت بود سرور خارج و کلاینت ایران است و اگر کانفیگ ریورس بود، سرور ایران و کلاینت خارج است
- پورت سرور را وارد میکنم
- برای پرایوت ایپی تانل از ایپی ورژن 4 استفاده میکنم و برای سرور و کلاینت ایپی پرایوت مورد نظر را انتخاب میکنم
- برای ایپی پرایوت ورژن 4 از ساب نت 24 و برای ایپی پرایوت ورژن 6 از ساب نت 64 استفاده میکنم
- نام tun را ازومی قرار میدهم و مقدار mtu را 1380 وارد میکنم
- نمیخواهم لاگ ها در مسیر etc ذخیره شود و برای همین N را وارد میکنم
- چون میخواهم برای گیم استفاده کنم، گزینه tcpnodelay را فعال میکنم
- گزینه tcp keepalive را فعال میکنم و مقدار 1m به این معنی که هر 1 دقیقه Keepalive انجام میشود را فعال میکنم
- گزینه worker را ویرایش میکنم و گزینه default بر اساس cpu cores را انتخاب میکنم
- همچنین socket را فعال میکنم و مقدار socket buff را همان مقدار پیش فرض میذارم
- ریست تایمر را برای ipsec و tun فعال میکنم و مقدار انتخابی را وارد میکنم . مثلا من برای ریست تایمر مقدار 12 یا بیشتر را قرار میدهم
- سپس از من سوال میشود که کانفیگ vxlan یا geneve را میخواهم که من geneve را انتخاب میکنم
- مقدار mtu هم اتوماتیک حساب میشود
- سپس Ipsec را فعال میکنم و secret key را وارد میکنم
- پس از فعال کردن ریست تایمر هم در سرور خارج و هم کلاینت برای sync شدن تایم ها بهتر است یک بار هر در سرویس مربوطه هم زمان در سرور و کلاینت ریست شوند
- اول سرور و سپس کلاینت ریست شود
- کلاینت خارج : systemctl restart krazumi-local , systemctl restart reset-timer
- سرور ایران : systemctl restart irazumi-local , systemctl restart reset-timer
----------------------
![green-dot-clipart-3](https://github.com/Azumi67/6TO4-PrivateIP/assets/119934376/49000de2-53b6-4c5c-888d-f1f397d77b92)**کلاینت خارج**
- پورت سرور و ایپی پابلیک 4 سرور را وارد میکنم. اگر ایپی پابلیک 6 را انتخاب کرده بودید ایپی پابلیک 6 سرور را وارد میکنید
- پرایوت کی که در سرور ایران generate شده بود را اینجا وارد میکنم و سپس enter را وارد میکنم. دقت نمایید تمام محتوا کپی شود
- مانند سرور ایران پرایوت ایپی های مربوطه را انتخاب میکنم
- چون پرایوت ایپی 4 است پس ساب نت 24 را انتخاب میکنم
- ذخیره لاگ را غیرفعال میکنم
- گزینه tcp keepalive را فعال و بر روی 1m میذارم
- گزینه tcpnodelay هم فعال میکنم
- گزینه worker را ویرایش میکنم و default را انتخاب میکنم
- سوکت هم مانند سرورفعال میکنم و مقدار پیش فرض را enter میکنم
- ریست تایمر ipsec و tun هم فعال میکنم و مقادیر مشابه سرور را وارد میکنم
- اگر پینگ بین دو پرایوت ایپی برقرار نشد خود تانل پس از چند ثانیه connection را فعال میکند
- کانفیگ geneve را انتخاب میکنم
- مقدار mtu هم اتوماتیک حساب میشود
- گزینه ipsec را فعال میکنم و secret key که در سرور وارد کردم را در کلاینت هم وارد میکنم
- پس از انجام کانفیگ برای sync کردن ریست تایمر ها یک بار در سرور و کلاینت، سرویس ها را ریست کنید
- اول سرور و سپس کلاینت ریست شود
- کلاینت خارج : systemctl restart krazumi-local , systemctl restart reset-timer
- سرور ایران : systemctl restart irazumi-local , systemctl restart reset-timer
**ویرایش کانفیگ**
- در اینجا میتوانم هر مقداری را تغییر دهم.
- پابلیک ایپی گزینه دوم تنها برای نشان دادن انلاین بودن key میباشد و نیازی به تغییر ندارد
- گزینه 3 نشان دادن پرایوت کی است و برای زمانی استفاده میشود که میخواهیم از این کلید در کلاینت دیگری استفاده نماییم. به این صورت که کلید نمایشی را در کلاینت مربوطه paste میکنیم.
- هر مقدار اعم از پرایوت ایپی یا پورت را عوض کردید در کلاینت هم عوض کنید و گزینه save را بزنید
- به طور مثال من پرایوت ایپی tun را عوض کردم. چون کانفیگ geneve است باید ایپی پرایوت نخست با ایپی ورژن 4 شروع شود اما پرایوت ایپی خود geneve میتواند ایپی ورژن 4 یا 6 باشد
- برای تغییر ایپی پرایوت geneve هم مانند اسکرین شات عمل کنید و اگر ایپی پرایوت 6 میخواهید گزینه دوم را انتخاب و ایپی را بدون ساب نت وارد نمایید.
- در کلاینت هم تغییرات را انجام دهید. دقت نمایید اگر به طور مثال ایپی پرایوت در سرور db3::1 است باید در کلاینت db3::2 باشد
------------------
روش دایراکت یا ریورس با وایرگارد پابلیک ایپی 4 یا 6
![green-dot-clipart-3](https://github.com/Azumi67/6TO4-PrivateIP/assets/119934376/902a2efa-f48f-4048-bc2a-5be12143bef3) **سرور خارج**
- نخست یک پرایوت کی generate میشود که در کلاینت استفاده میشود.
- اگر کانفیگ دایرکت بود سرور خارج و کلاینت ایران است و اگر کانفیگ ریورس بود، سرور ایران و کلاینت خارج است
- پورت سرور را وارد میکنم
- برای پرایوت ایپی تانل از ایپی ورژن 6 استفاده میکنم و برای سرور و کلاینت ایپی پرایوت مورد نظر را انتخاب میکنم
- برای ایپی پرایوت ورژن 4 از ساب نت 24 و برای ایپی پرایوت ورژن 6 از ساب نت 64 استفاده میکنم
- نام tun را ازو قرار میدهم و مقدار mtu را 1380 وارد میکنم
- نمیخواهم لاگ ها در مسیر etc ذخیره شود و برای همین N را وارد میکنم
- چون میخواهم برای گیم استفاده کنم، گزینه tcpnodelay را فعال میکنم
- گزینه tcp keepalive را فعال میکنم و مقدار 1m به این معنی که هر 1 دقیقه Keepalive انجام میشود را فعال میکنم
- گزینه worker را ویرایش میکنم و گزینه default بر اساس cpu cores را انتخاب میکنم
- همچنین socket را فعال میکنم و مقدار socket buff را همان مقدار پیش فرض میذارم
- حالا کلید های مورد نیاز برای وایرگارد generate میشود. از اینها در کلاینت استفاده میشود.
- پرایوت ایپی را 6 انتخاب میکنم و برای سرور و کلاینت، ایپی مورد نظر از لیست را انتخاب میکنم
- پورت وایرگارد را وارد میکنم
- پس از اینکه پرایوت ایپی ها را انتخاب کردیم سپس از من سوال میشود که ایا میخواهم که خود اسکریپت نام اینترفیس را پیدا کند که گزینه y را وارد میکنم
- مقدار mtu هم اتوماتیک حساب میشود
- سپس Ipsec را فعال میکنم و secret key را وارد میکنم
- ریست تایمر را برای ipsec و tun فعال میکنم و مقدار انتخابی را وارد میکنم . مثلا من برای ریست تایمر مقدار 12 یا بیشتر را قرار میدهم
- پس از فعال کردن ریست تایمر هم در سرور خارج و هم کلاینت برای sync شدن تایم ها بهتر است یک بار هر در سرویس مربوطه هم زمان در سرور و کلاینت ریست شوند
- اول سرور و سپس کلاینت ریست شود
- سرور خارج : systemctl restart kazumi-local , systemctl restart reset-timer
- کلاینت ایران : systemctl restart iazumi-local , systemctl restart reset-timer
----------------------
![green-dot-clipart-3](https://github.com/Azumi67/6TO4-PrivateIP/assets/119934376/49000de2-53b6-4c5c-888d-f1f397d77b92)**کلاینت ایران**
- پورت سرور و ایپی پابلیک 4 سرور را وارد میکنم. اگر ایپی پابلیک 6 را انتخاب کرده بودید ایپی پابلیک 6 سرور را وارد میکنید
- پرایوت کی که در سرور خارج generate شده بود را اینجا وارد میکنم و سپس enter را وارد میکنم. دقت نمایید تمام محتوا کپی شود
- مانند سرور خارج پرایوت ایپی های مربوطه را انتخاب میکنم
- چون پرایوت ایپی 6 است پس ساب نت 64 را انتخاب میکنم
- ذخیره لاگ را غیرفعال میکنم
- گزینه tcp keepalive را فعال و بر روی 1m میذارم
- گزینه tcpnodelay هم فعال میکنم
- گزینه worker را ویرایش میکنم و default را انتخاب میکنم
- سوکت هم مانند سرورفعال میکنم و مقدار پیش فرض را enter میکنم
- سپس پابلیک کی سرور و پرایوت کی کلاینت را که قبلا generate شده است را وارد میکنم
- پورت وایرگاردی که در سرور خارج دادم را وارد میکنم
- پرایوت ایپی 6 در سرور خارج برای کانفیگ وایرگارد داده بودم. همان ایپی ها را در کلاینت انتخاب میکنم
- سپس از من سوال میشود که ایا میخواهم که خود اسکریپت نام اینترفیس را پیدا کند که گزینه y را وارد میکنم
- مقدار mtu هم اتوماتیک حساب میشود
- گزینه ipsec را فعال میکنم و secret key که در سرور وارد کردم را در کلاینت هم وارد میکنم
- ریست تایمر ipsec و tun هم فعال میکنم و مقادیر مشابه سرور را وارد میکنم
- اگر پینگ بین دو پرایوت ایپی برقرار نشد خود تانل پس از چند ثانیه connection را فعال میکند
- پس از انجام کانفیگ برای sync کردن ریست تایمر ها یک بار در سرور و کلاینت، سرویس ها را ریست کنید
- اول سرور و سپس کلاینت ریست شود
- سرور خارج : systemctl restart kazumi-local , systemctl restart reset-timer
- کلاینت ایران : systemctl restart iazumi-local ,systemctl restart reset-timer
**ویرایش کانفیگ**
- در اینجا میتوانم هر مقداری را تغییر دهم.
- پابلیک ایپی گزینه دوم تنها برای نشان دادن انلاین بودن key میباشد و نیازی به تغییر ندارد
- گزینه 3 نشان دادن پرایوت کی است و برای زمانی استفاده میشود که میخواهیم از این کلید در کلاینت دیگری استفاده نماییم. به این صورت که کلید نمایشی را در کلاینت مربوطه paste میکنیم.
- هر مقدار اعم از پرایوت ایپی یا پورت را عوض کردید در کلاینت هم عوض کنید و گزینه save را بزنید
- میتوان ورژن پرایوت ایپی تانل را از 4 به 6 یا از ورژن 6 به 4 تغییر داد. به طور مثال من در این اموزش از پرایوت ایپی 6 برای وایرگارد و tun آستفاده کردم و ان ها را توسط ویرایش به ورژن 4 تغییر میدهم
- پرایوت ایپی وایرگارد همان wg address میباشد.
- در کلاینت هم تغییرات را انجام دهید. دقت نمایید اگر به طور مثال ایپی پرایوت در سرور db3::1 است باید در کلاینت db3::2 باشد
------------------
------------------
![R (a2)](https://github.com/Azumi67/PrivateIP-Tunnel/assets/119934376/716fd45e-635c-4796-b8cf-856024e5b2b2)
**اسکریپت من**
----------------
```
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Azumi67/LocalTun_TCP/main/tun.sh)"
```
---------------------------------------------
![6348248](https://github.com/Azumi67/PrivateIP-Tunnel/assets/119934376/398f8b07-65be-472e-9821-631f7b70f783)
**روش اجرا**
-
- حتما در صورت استفاده از فایراول، پورت و پرایوت ایپی ها را در فایروال اضافه نمایید.
نصب
```
apt update -y
apt install wget -y
apt install unzip -y
## amd64
rm amd64.zip
wget https://github.com/Azumi67/LocalTun_TCP/releases/download/v1.7/amd64.zip
unzip amd64.zip -d /root/localTUN
cd localTUN
chmod +x tun-server
chmod +x tun-client
Key creation :
openssl genrsa -out private_key.pem 2048
openssl rsa -pubout -in private_key.pem -out public_key.pem
```
دایرکت لوکال تانل پرایوت ایپی 4 - public ipv4
- کامند های سرور (خارج)
```
./tun-server -server-port 800 -pub-key=/root/keys/public_key.pem -server-private 30.0.0.1 -client-private 30.0.0.2 -subnet 24 -device tun2 -mtu 1380 -tcpnodelay -keepalive 1m -worker default
```
- کامند های کلاینت (ایران)
```
./tun-client -server-addr KHAREJ_IPV4 -server-port 800 -priv-key=/root/private_key.pem -client-private 30.0.0.2 -server-private 30.0.0.1 -subnet 24 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
```
- نحوه ساختن سرویس
```
nano /etc/systemd/system/azumilocal.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/localTUN/tun-server -server-port 800 -pub-key=/root/keys/public_key.pem -server-private 30.0.0.1 -client-private 30.0.0.2 -subnet 24 -device tun2 -mtu 1480 -tcpnodelay -keepalive 1m -worker default
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumilocal.service
systemctl enable /etc/systemd/system/azumilocal.service
systemctl start azumilocal.service
```
- نحوه ساختن سرویس ریست
```
nano /root/reset.sh
# copy this inside #
#!/bin/bash
while true; do
ping -c 2 30.0.0.1 >/dev/null 2>&1 ##30.0.0.1 is your remote private ip address
if [ $? -ne 0 ]; then
systemctl restart azumilocal ## this is localtun service
systemctl restart strong-azumi1 ## this is for ipsec
fi
sleep 5 #time for ping interval check
done
## do not copy this##
nano /etc/systemd/system/azumireset.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service reset
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/reset.sh
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumireset.service
systemctl enable /etc/systemd/system/azumireset.service
systemctl start azumireset.service
systemctl status azumireset.service
```
دایرکت لوکال تانل پرایوت ایپی 6 - public ipv4
```
- کامند های سرور (خارج)
```
./tun-server -server-port 800 -pub-key=/root/keys/public_key.pem -server-private 2001:db8::1 -client-private 2001:db8::2 -subnet 64 -device tun2 -mtu 1380 -tcpnodelay -keepalive 1m -worker default
```
- کامند های کلاینت (ایران)
```
./tun-client -server-addr KHAREJ_IPV4 -server-port 800 -priv-key=/root/private_key.pem -client-private 2001:db8::2 -server-private 2001:db8::1 -subnet 64 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
```
- نحوه ساختن سرویس
```
nano /etc/systemd/system/azumilocal.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/localTUN/tun-client -server-addr KHAREJ_IPV4 -server-port 800 -priv-key=/root/private_key.pem -client-private 2001:db8::2 -server-private 2001:db8::1 -subnet 64 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumilocal.service
systemctl enable /etc/systemd/system/azumilocal.service
systemctl start azumilocal.service
```
- نحوه ساختن سرویس ریست
```
nano /root/reset.sh
# copy this inside #
#!/bin/bash
while true; do
ping -c 2 2001:db8::1 >/dev/null 2>&1 ##2001:db8::1 is your remote private ip address
if [ $? -ne 0 ]; then
systemctl restart azumilocal ## this is localtun service
systemctl restart strong-azumi1 ## this is for ipsec
fi
sleep 5 #time for ping interval check
done
## do not copy this##
nano /etc/systemd/system/azumireset.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service reset
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/reset.sh
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumireset.service
systemctl enable /etc/systemd/system/azumireset.service
systemctl start azumireset.service
systemctl status azumireset.service
```
دایرکت لوکال تانل پرایوت ایپی 6 - public ipv4
```
دایرکت لوکال تانل پرایوت ایپی 4 - public ipv6
- کامند های سرور (خارج)
```
./tun-server_amd64 -server-port 800 -pub-key=/root/keys/public_key.pem -server-private 30.0.0.1 -client-private 30.0.0.2 -subnet 24 -device tun2 -mtu 1480 -tcpnodelay -keepalive 1m -worker default
```
- کامند های کلاینت (ایران)
```
./tun-client -server-addr KHAREJ_IPV6 -server-port 800 -priv-key=/root/private_key.pem -client-private 30.0.0.2 -server-private 30.0.0.1 -subnet 24 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
```
- نحوه ساختن سرویس
```
nano /etc/systemd/system/azumilocal.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/localTUN/tun-client -server-addr KHAREJ_IPV6 -server-port 800 -priv-key=/root/private_key.pem -client-private 30.0.0.2 -server-private 30.0.0.1 -subnet 24 -device tun2 -mtu 1380 -tcpnodelay -keepalive 1m -worker default
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumilocal.service
systemctl enable /etc/systemd/system/azumilocal.service
systemctl start azumilocal.service
```
- نحوه ساختن سرویس ریست
```
nano /root/reset.sh
# copy this inside #
#!/bin/bash
while true; do
ping -c 2 30.0.0.1 >/dev/null 2>&1 ##30.0.0.1 is your remote private ip address
if [ $? -ne 0 ]; then
systemctl restart azumilocal ## this is localtun service
systemctl restart strong-azumi1 ## this is for ipsec
fi
sleep 5 #time for ping interval check
done
## do not copy this##
nano /etc/systemd/system/azumireset.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service reset
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/reset.sh
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumireset.service
systemctl enable /etc/systemd/system/azumireset.service
systemctl start azumireset.service
systemctl status azumireset.service
```
دایرکت لوکال تانل پرایوت ایپی 6 - public ipv6
- کامند های سرور (خارج)
```
./tun-server -server-port 800 -pub-key=/root/keys/public_key.pem -server-private 2001:db8::1 -client-private 2001:db8::2 -subnet 64 -device tun2 -mtu 1380 -tcpnodelay -keepalive 1m -worker default
```
- کامند های کلاینت (ایران)
```
./tun-client -server-addr [KHAREJ_IPV6] -server-port 800 -priv-key=/root/private_key.pem -client-private 2001:db8::2 -server-private 2001:db8::1 -subnet 64 -device tun2 -mtu 1380 -tcpnodelay -keepalive 1m -worker default
```
- نحوه ساختن سرویس
```
nano /etc/systemd/system/azumilocal.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/localTUN/tun-client -server-addr [KHAREJ_IPV6] -server-port 800 -priv-key=/root/private_key.pem -client-private 2001:db8::2 -server-private 2001:db8::1 -subnet 64 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumilocal.service
systemctl enable /etc/systemd/system/azumilocal.service
systemctl start azumilocal.service
```
- نحوه ساختن سرویس ریست
```
nano /root/reset.sh
# copy this inside #
#!/bin/bash
while true; do
ping -c 2 2001:db8::1 >/dev/null 2>&1 ##2001:db8::1 is your remote private ip address
if [ $? -ne 0 ]; then
systemctl restart azumilocal ## this is localtun service
systemctl restart strong-azumi1 ## this is for ipsec
fi
sleep 5 #time for ping interval check
done
## do not copy this##
nano /etc/systemd/system/azumireset.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service reset
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/reset.sh
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumireset.service
systemctl enable /etc/systemd/system/azumireset.service
systemctl start azumireset.service
systemctl status azumireset.service
```
ریورس لوکال تانل پرایوت ایپی 4 - public ipv4
- کامند های سرور ( ایران)
```
./tun-server -server-port 800 -pub-key=/root/keys/public_key.pem -server-private 30.0.0.1 -client-private 30.0.0.2 -subnet 24 -device tun2 -mtu 1380 -tcpnodelay -keepalive 1m -worker default
```
- کامند های کلاینت (خارج)
```
./tun-client -server-addr IRAN_IPV4 -server-port 800 -priv-key=/root/private_key.pem -client-private 30.0.0.2 -server-private 30.0.0.1 -subnet 24 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
```
- نحوه ساختن سرویس
```
nano /etc/systemd/system/azumilocal.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/localTUN/tun-server -server-port 800 -pub-key=/root/keys/public_key.pem -server-private 30.0.0.1 -client-private 30.0.0.2 -subnet 24 -device tun2 -mtu 1380 -tcpnodelay -keepalive 1m -worker default
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumilocal.service
systemctl enable /etc/systemd/system/azumilocal.service
systemctl start azumilocal.service
```
- نحوه ساختن سرویس ریست
```
nano /root/reset.sh
# copy this inside #
#!/bin/bash
while true; do
ping -c 2 30.0.0.2 >/dev/null 2>&1 ##30.0.0.2 is your remote private ip address
if [ $? -ne 0 ]; then
systemctl restart azumilocal ## this is localtun service
systemctl restart strong-azumi1 ## this is for ipsec
fi
sleep 5 #time for ping interval check
done
## do not copy this##
nano /etc/systemd/system/azumireset.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service reset
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/reset.sh
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumireset.service
systemctl enable /etc/systemd/system/azumireset.service
systemctl start azumireset.service
systemctl status azumireset.service
```
ریورس لوکال تانل پرایوت ایپی 6 - public ipv4
- کامند های سرور (ایران)
```
./tun-server -server-port 800 -pub-key=/root/keys/public_key.pem -server-private 2001:db8::1 -client-private 2001:db8::2 -subnet 64 -device tun2 -mtu 1380 -tcpnodelay -keepalive 1m -worker default
```
- کامند های کلاینت (خارج)
```
./tun-client -server-addr IRAN_IPV4 -server-port 800 -priv-key=/root/private_key.pem -client-private 2001:db8::2 -server-private 2001:db8::1 -subnet 64 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
```
- نحوه ساختن سرویس
```
nano /etc/systemd/system/azumilocal.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/localTUN/tun-client -server-addr IRAN_IPV4 -server-port 800 -priv-key=/root/private_key.pem -client-private 2001:db8::2 -server-private 2001:db8::1 -subnet 64 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumilocal.service
systemctl enable /etc/systemd/system/azumilocal.service
systemctl start azumilocal.service
```
- نحوه ساختن سرویس ریست
```
nano /root/reset.sh
# copy this inside #
#!/bin/bash
while true; do
ping -c 2 2001:db8::1 >/dev/null 2>&1 ##2001:db8::1 is your remote private ip address
if [ $? -ne 0 ]; then
systemctl restart azumilocal ## this is localtun service
systemctl restart strong-azumi1 ## this is for ipsec
fi
sleep 5 #time for ping interval check
done
## do not copy this##
nano /etc/systemd/system/azumireset.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service reset
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/reset.sh
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumireset.service
systemctl enable /etc/systemd/system/azumireset.service
systemctl start azumireset.service
systemctl status azumireset.service
```
ریورس لوکال تانل پرایوت ایپی 4 - public ipv6
- کامند های سرور (ایران)
```
./tun-server -server-port 800 -pub-key=/root/keys/public_key.pem -server-private 30.0.0.1 -client-private 30.0.0.2 -pub-key=/root/keys/public_key.pem -subnet 24 -device tun2 -mtu 1380 -tcpnodelay -keepalive 1m -worker default
```
- کامند های کلاینت (خارج)
```
./tun-client -server-addr [IRAN_IPV6] -server-port 800 -priv-key=/root/private_key.pem -client-private 30.0.0.2 -server-private 30.0.0.1 -subnet 24 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
```
- نحوه ساختن سرویس
```
nano /etc/systemd/system/azumilocal.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/localTUN/tun-client -server-addr [IRAN_IPV6] -server-port 800 -priv-key=/root/private_key.pem -client-private 30.0.0.2 -server-private 30.0.0.1 -subnet 24 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumilocal.service
systemctl enable /etc/systemd/system/azumilocal.service
systemctl start azumilocal.service
```
- نحوه ساختن سرویس ریست
```
nano /root/reset.sh
# copy this inside #
#!/bin/bash
while true; do
ping -c 2 30.0.0.1 >/dev/null 2>&1 ##30.0.0.1 is your remote private ip address
if [ $? -ne 0 ]; then
systemctl restart azumilocal ## this is localtun service
systemctl restart strong-azumi1 ## this is for ipsec
fi
sleep 5 #time for ping interval check
done
## do not copy this##
nano /etc/systemd/system/azumireset.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service reset
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/reset.sh
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumireset.service
systemctl enable /etc/systemd/system/azumireset.service
systemctl start azumireset.service
systemctl status azumireset.service
```
ریورس لوکال تانل پرایوت ایپی 6 - public ipv6
- کامند های سرور (ایران)
- برای verbose لاگ از کامند -v استفاده نمایید
```
./tun-server -server-port 800 -pub-key=/root/keys/public_key.pem -server-private 2001:db8::1 -client-private 2001:db8::2 -subnet 64 -device tun2 -mtu 1480 -tcpnodelay -keepalive 1m -worker default
```
- کامند های کلاینت (خارج)
```
./tun-client -server-addr [IRAN_IPV6] -server-port 800 -priv-key=/root/private_key.pem -client-private 2001:db8::2 -server-private 2001:db8::1 -subnet 64 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
```
- نحوه ساختن سرویس
```
nano /etc/systemd/system/azumilocal.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/localTUN/tun-client -server-addr [IRAN_IPV6] -server-port 800 -priv-key=/root/private_key.pem -client-private 2001:db8::2 -server-private 2001:db8::1 -subnet 64 -device tun2 -mtu 1280 -tcpnodelay -keepalive 1m -worker default
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumilocal.service
systemctl enable /etc/systemd/system/azumilocal.service
systemctl start azumilocal.service
```
- نحوه ساختن سرویس ریست
```
nano /root/reset.sh
# copy this inside #
#!/bin/bash
while true; do
ping -c 2 2001:db8::1 >/dev/null 2>&1 ##2001:db8::1 is your remote private ip address
if [ $? -ne 0 ]; then
systemctl restart azumilocal ## this is localtun service
systemctl restart strong-azumi1 ## this is for ipsec
fi
sleep 5 #time for ping interval check
done
## do not copy this##
nano /etc/systemd/system/azumireset.service
## put this config inside [ This is a sample]##
[Unit]
Description=Azumi local Service reset
After=network.target
[Service]
Type=simple
Restart=always
LimitNOFILE=1048576
ExecStart=/root/reset.sh
[Install]
WantedBy=multi-user.target
##### do not copy this ###
chmod u+x /etc/systemd/system/azumireset.service
systemctl enable /etc/systemd/system/azumireset.service
systemctl start azumireset.service
systemctl status azumireset.service
```