این تانل برای استفاده شخصی و گیم انلاین است. اموزش استفاده از اسکریپت قرار داده شد.
گزینه 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 سرور و کلاینت میشود که وصل شد .
- پورت تنها برای ارتباط بین سرور و کلاینت میباشد و شما تنها باید از پرایوت ایپی ها برای تانل اصلی استفاده نمایید.
- اول دستورات سرور را اجرا کنید و سپس دستورات کلاینت . میتوانید هم به صورت دایرکت یا ریورس انجام دهید. یعنی سرور اصلی خارج و کلاینت ایران و یا سرور اصلی ایران و کلاینت خارج باشد
- این پروژه دارای اسکریپت و اموزش برای کسانی که مانند من مصرف شخصی دارند و گیم انلاین انجام میدهند، است.
روش دایرکت یا ریورس با پابلیک ایپی 4 یا 6
- نخست یک پرایوت کی 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
- پورت سرور و ایپی پابلیک 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
- نخست یک پرایوت کی 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
- پورت سرور و ایپی پابلیک 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
- نخست یک پرایوت کی 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
- پورت سرور و ایپی پابلیک 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
- نخست یک پرایوت کی 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
- پورت سرور و ایپی پابلیک 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 باشد
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Azumi67/LocalTun_TCP/main/tun.sh)"
- حتما در صورت استفاده از فایراول، پورت و پرایوت ایپی ها را در فایروال اضافه نمایید.
نصب
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
دایرکت لوکال تانل پرایوت ایپی 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