How to Transfer Traffic between two Servers with iSegaro
iSegaro - 1402-02-30سلام خوبید , سگارو هستم با یه آموزش دیگه , بریم ببینیم چیکار باید کرد , بازم مثل همیشه در توییتر با من در ارتباط باشید و سوالی دارید اونجا مطرح کنید خودم یا بقیه دوستان حتما به سوال و مشکل شما پاسخ میدن , ادرس توییترم :
https://twitter.com/iSegaro

راه برای انتقال ترافیک بین سرور ایران و خارج بسیار هست چیزی که من بلدم حدود یازده مدل میتونم ترافیک رو انتقال بدم , از ساده ساده هست تا پیشرفته , از بدون کدگزاری هست تا با کد گزاری و ... توی آموزش SSH یخورده اموزش طولانی شد صدای خیلیا درومد و بعضیام نتونستن انجام بدن برای همین توی همین مدل پایه و ساده میخایم کار کنیم که قابل اجرا برای هر کس و فقط با یه خط دستور باشه و نیازی به روش پیچیده نباشه , توی این آموزش به مرور روش هارو آپدیت میکنم بریم ببینیم تا کجا میرسیم یاد بدم
فرض چیه دوستان ؟ من فرض میگیرم همه بچها یک سرور پولی یا مجانی یا یک کانفیگ پولی یا مجانی در اختیار دارن , توی این روش نیاز نیست شما سرور خارجی حتما داشته باشید یه کانفیگی که مجانی از اینترنت گرفتید مثل ریلیتی فرینود یا هر کانفیگ دیگه هم کافیه , حتما هم محدود به پروتکل های xray , sing-box , openvpn , wireguard و ... نیست باهرچی که وصلید میتونید با این روش ترافیکش رو منتقل کنید , توی این روش فقط ما یک سرور ایرانی نیاز داریم
چرا سرور ایرانی؟ ببینید دیتا سنترهای بزرگ ایرانی که خدمات میدن به شرکت ها و زیر ساخت ها نمیتونن ارتباطشون رو با اینترنت جهانی قطع کنن , امکان نداره !! البته برای اقایون امکان نداره وجود ندارها اینقدر یابو هستند که لازم باشه کلا دیتاسنترهارو خاموش میکنن اون که قطع ! خلاصه تو روزایی که اینترنت مارو به صورت محلی از مخابرات و شبکهای تلفن همراه قطع میکنن , دیتا سنترها اینترنت دارن مثل همیشه فقط ما دسترسیمون قطع شده , البته ممکنه در اینده این قسمتم توش برینن !! بگذریم ما یه سرور توی یکی ازین دیتا سنترها داشته باشیم میتونیم ارتباط بگیریم با اینترنت ازاد
دیتاسنترهای ایرانی خیلیاشون لاشی تشریف دارن و تعرفه و قیمت رو با علم به گرفتاری هموطنهاشون افزایش دادن , مثلا آروان یه VPS ساده رو از ماهی 152 هزارتومن به 650هزارتومن افزایش داده , نون تو خون میزنن دیگه !! بقیه هم به همینصورت کمتر و بیشتر , تجربه قبلی میگه اینترنت رو ساعتی قطع میکنن مثلا یک روز یا چند ساعت , شما نیاز نیست برید سرور ایرانی ماهانه بخرید !! برید از هر دیتا سنتری که ساعتی سرور ایرانی میفروشه برای اون روز سیاه که در پیشه ساعتی بخرید , ممکنه به دلیل حجوم کاربرا اون روز پلنهای ارزون زود تموم بشن یا دیتا سنترها باز لاشی بازیشون گل کنه اونارو غیرفعال کنن و پلن های گرونتر بفروشن, خلاصه تصمیم گیر شمایید , من باشم اگه نیاز باشه اینترنت ازاد داشته باشم حتی شده ساعتی یه سرور میخرم وصل میشم خبرا رو میخونم و ... بعدشم سرور رو دوباره حذف میکنم که شخص دیگه ای استفاده کنه!!!!
کافیه در گوگل سرچ کنید "سرور ایرانی ساعتی" سایت مورد نظر خودتونو پیدا کنید و ثبتنام بکنید برای روز مبادا !!
هموطن من توی اون روزها لطفا فکر اینستاگرام گردی و یوتوب گردی و فیلم و سریال دیدن نباش !! شرایط رو درک کن و به بقیه هم کمک کن
توی این آموزش سرور ایران رو من با ای پی 1.1.1.1 نشون میدم و سرور خارج رو با ای پی 2.2.2.2 , این ای پی سرور خارج همون ای پی کانفیگ یا سرور پولی یا مجانی شما هست روی هر سرویس یا پروتکلی که هست فرق نمیکنه , پس من یه کانفیگ اماده بکار خارج از ایران از قبل داشتم و ای پی اون کانفیگ یا سرور هم 2.2.2.2 هست .
1.روش اول با SSH
توی این روش استثنا نیاز به سرور خارج هست یعنی با کانفیگ های مجانی کار نمیکنه , برای کساییه که سرور خارجی دارن و میتونن بهش ssh بزنن.
کافیه به سرور ایرانیتون ssh بزنید و در محیط کامند اون دستور زیر رو بزنید فقط با اطلاعات خودتون پرش کنید
ssh -p 22 root@2.2.2.2 -f -N -L 0.0.0.0:443:2.2.2.2:443
من این دستور بالا رو با عکس زیر توضیح بدم درک کنید

هرچی که قرمز رنگه مربوط به سرور خارج هست و هرچی که سبز رنگه مربوط به سرور ایران هست , این دستور رو روی سرور ایران میزنید یعنی چی ؟ میگم که سرور ایران ssh بزن به سرور خارج من به ادرس ای پی 2.2.2.2 با پورت 22 و یوزر root و یک پورت با شماره 443 روی سرور ایران باز کن و هر درخواستی که به ای پی سرور ایران اومد با پورت 443 رو به ای پی سرور خارج و پورت 443 سرور خارج ارسال بکن !!! اوکی ؟ 0.0.0.0 چیه ؟ این ادرس لوکال سرور ایران هست یعنی اجازه بده از هر دیوایسی به من درخواست اومد و پورتش 443 بود رو قبول بکنم
برای بار اول این دستور رو بزنید مثل عکس زیر از شما اجازه فینگرپرینت میخواد که باید yes رو تایپ کنید و بعد پسورد یوزر روت سرور خارجتون رو میخواد که وارد میکنید و تمام الان وصل هست به سرور خارج , هر درخواستی که پورت 443 سرور ایران بیاد رو میفرسته به پورت 443 سرور خارج من
حالا اگر شما پورت 22 سرور خارج رو تغییر دادید یا کانفیگ خارجتون روی پورتی بجز 443 هست یا میخواید روی سرور ایران با پورت دیگه ای جز 443 کار کنید باید توی دستور بالا اطلاعات رو تغییر بدید

چطوری چک کنیم ارتباط برقراره و بعدش چی کنیم؟ این خط دستور زیر رو بزنید روی سرور ایرانتون و ببینید پورت 443 روی سرور ایران توسط ssh اشغال شده یا نع , اگه اشغال شده مثل عکس زیر یعنی درست داره کار میکنه
apt install net-tools -y & netstat -tulnp

تمام به درستی داره کار میکنه کافیه فقط الان توی کانفیگی که دارم جای ای پی سرور خارجم , ای پی سرور ایرانم رو وارد کنم همین !! اینجا کانفیگتون ریلیتی هست یا tls هست یا کلا پروتکل فرق داره مهم نیست همچیو به کار میندازه و ری تمامی اوپراتورهای اینترنتی ایرانیم کار میکنه , سرعت اپلود و دانلودتون اگه انگول نکنن هم خیلی بهتر میشه
توصیه : ازین روش فقط موقتی استفاده کنید یعنی کارتون تموم شد ببندیدش یا سرور رو ریست کنید خودش بسته میشه , چرا میگم ببندید ؟ چون دیتاسنتر ببینه ترافیک بالایی داره به خارج فوروارد میشه ای پی سرور خارجی شمارو بلاک میکنه و دیگه روی اون دیتا سنتر نمیتونید خدمات بگیرید برای اون ای پی سرور خارجتون دیگه !!
برای بستنش شماره PID رو همراه Kill وارد کنید مثلا تو عکس بالا ببینید شماره 680 برای پروسس ای دی تانل و من با دستور
kill 680
میبندمش بعدش که کارم تموم شد یا اگه نبستید الکی ازش استفاده نکنید یعنی ترافیک هرز برای اینستاگرام گردی و ... روش نفرستید
2.روش دوم با iptables
این روش رو اگه سرور خارجی نداشته باشید میتونید استفاده کنید , کافیه یه کانفیگ حالا مجانی یا پولی داشته باشید یا بازم سرور خارجی داشته باشید. روی سرور ایرانتون ابتدا دوتا دستور زیر رو بزنید تا سرور برای انتقال ترافیک اماده بشه
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -j MASQUERADE
خوب حالا دستور اصلی برای انتقال ترافیک رو وارد کنید فقط دقت کنید اطلاعات خودتون رو جایگذاری کنید
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 2.2.2.2:443
توی دستور بالا داریم میگیم هر درخواستی که پورت 443 سرور ایران ارسال شد رو به پورت و ای پی سرور خارجم 2.2.2.2:443 انتقال بده , با این روش میتونید هر ترافیکی از سرور ایران رو به خارج منتقل کنید , یعنی یه کانفیگ مجانی داشته باشه هم جوابه به راحتی , کافیه ای پی سرور ایران رو جای سرور خارجتون وارد کنید.
در هر دو روش بالا بعد از ریست سرورایرانتون دستورات و ارتباطات پاک و قطع میشن , بعد اینکه استفادهتون رو کردید ترجیح اینه برای اینکه ای پی سرور خارجتون تو اون دیتا سنتر فلگ(بلاک)نشه ریست کنید سرور رو
این روش ها بچها موقتی هست فقط در حد استفاده چندساعته و ضرورت , الکی پول بیزبون به دیتا سنترهای ایرانی ندید وقتی با شما همکاری و همیاری نمیکنن !!
خوب دوتا روش بالا خیلی ساده و کاربردی بود اما یه روش پیچیده تر هم با ریلیتی و هسته سینگ باکس بگم برای کسایی که روی سرور شخصیشون ریلیتی و هسته سینگ باکس رو بالا اوردن , یعنی شما یه کانفیگ سینگ باکس دارید روی سرور خارجتون و داره کار میکنه , حالا یه سینگ باکسم روی سرور ایرانتون نصب میکنید و این دوتارو بهم وصل میکنید , مزیتش چیه ؟ بر اساس تجربه احتمال فیلتر شدن یا فلگ شدن یا همون بلاک شدن ای پی سرور خارجتون کمتر میشه , ازین روشم فقط برای ضرورت استفاده کنید
3.روش سوم با Sing-Box
خوب اگه طبق آموزش من با سینگ باکس پیش رفته باشید الان کار خیلی براتون راحتره , کسایی که روی سرور خارجشون سینگ باکس ندارن یا با هسته xray ریلیتی بالا اوردن یا با پنل های چینی و ایرانی مثل هایدیفای و علیرضا و ... بالا اوردن هم میتونن ازین روش استفاده کنند فرقی نداره
توی این روش ما با ریلیتی وصل میشیم سرور ایرانمون , خود سرور ایرانمونم در لحظه با ریلیتی وصل میشه به سرور خارجمون که روش ریلیتی با هسته سینگ باکس بالا اوردیم , اینطوری احتمال فلگ شدن ای پی سرور خارجمون خیلی کم میشه
اموزش ریلیتی با سینگ باکس در لینک زیر میتونید بخونید اگه نیازه
https://telegra.ph/How-run-Reality-protocol-with-Xray-or-Sing-box-Core-with-iSegaro-04-18
خوب روی سرور ایرانتون دستورات زیر رو به ترتیب وارد کنید , اول هسته سینگ باکس رو دانلود و اماده اجرا کنیم
curl -Lo /root/sb https://github.com/SagerNet/sing-box/releases/download/v1.4.2/sing-box-1.4.2-linux-amd64.tar.gz && tar -xzf /root/sb && cp -f /root/sing-box-*/sing-box /root && rm -r /root/sb /root/sing-box-* && chown root:root /root/sing-box && chmod +x /root/sing-box
خوب با دستور زیر کانفیگ مخصوص تانل رو دانلود و کنار هسته سینگ باکس قرار بدید , بچها این کانفیگ تانل با سینگ باکس هست فرق داره با اون کانفیگ قبلیها
curl -Lo /root/sing-box_config.json https://raw.githubusercontent.com/iSegaro/Sing-Box/main/sing-box_tunnel.json
با دستور زیر یه سرویس میسازیم روی سرور ایرانمون که اگه سیستم ریست شد سینگ باکس بعدش دوباره اجرا بشه
curl -Lo /etc/systemd/system/sing-box.service https://raw.githubusercontent.com/iSegaro/Sing-Box/main/sing-box.service && systemctl daemon-reload
خوب من توی آموزش قبلی سینگ باکس گفته بودم چطوری uuid و Private & Public Key و ShortID رو بگیریم با سه تا دستور زیر اول اینارو بگیرید مخصوص سرور ایران و یجا ذخیره کنید چون نیازه
./sing-box generate uuid
./sing-box generate reality-keypair
./sing-box generate rand --hex 8

خوب حالا باید کانفیگ تانل رو ادیت بزنیم با دستور زیر و اطلاعات رو جای گذاری کنیم
nano sing-box_config.json
بچها دقت کنید قسمت inbounds هرچی هست مربوط به سرور ایران و قسمت outbounds هرچی هست مربوط به سرور خارجمون هست که از قبل روش سینگ باکس داشتیم , پس در قسمت outbounds باید اطلاعات کانفیگ سرور خارجتون که الان دارید باهاش کار میکنید رو وارد کنید
مثل عکس زیر من در قسمت inbounds اطلاعات سرور ایرانم رو پر میکنم و نیازه که شمام با اطلاعات خودتون پر کنید , پورت 443 رو برای سرور ایرانم انتخاب میکنم uuid و private key , shortid رو که با سه تا دستور بالا گرفتم رو وارد میکنم , public key رو هم نگه داریدا نیازه ,خوب حالا که سرور ما ایرانیه !! ای پی ما ایرانیه پس SNI هم ایرانی بزارید من براتون تلوبیون گذاشتم شما هرچیز دیگه ای میتونید بزارید که شرایط رو داشته باشه , تو آموزش سینگ باکس گفتم چطوری باید انتخاب کنید ها , الکی هرچیزی نزارید

خوب حالا بریم قسمت outbounds رو پر کنیم , تو این قسمت دقیقا اطلاعاتی که روی کلاینتتون هست(موبایل یا کامپیوتر) رو باید وارد کنید , یعنی اطلاعات کانفیگ سینگباکس روی سرور خارجمون که شامل ای پی سرور خارجمون + پورت + uuid خارجمون + public key خارجمون و shortid خارجمون , بچها اینجا رو دقت کنید public key سرور ارجمون که از قبل داشتیم که روی کلاینتاتون ست کردید رو وارد کنید ها اشتباه چیزی نزنید

هرچیزی که با زرد رنگ مشخص کردم رو باید پر کنید دقیقا عین کانفیگ سرور خارجتون , در قسمت SNI هم اینجا دقت کنید که باید همون SNIی باشه که روی سرور خارجتون هست باشه (من yahoo برای نمونه گذاشتم شما زارید , شما یکارم میتونید بکنید اگه میخواید تانل بزنید SNI روی سرور خارجتون و ایرانتون رو همه رو ایرانی بزارید چرا ؟ احتمال فلگ شدن ای پی سرورتون خیلی کمتر میشه چون انگار داریم یه سایت ایرانی رو باز میکنیم) , اینجا ما باید حتما public key سرور خارج رو بنویسیم ها اشتباه نزنیدها بیاید بگید کار نمیکنه , حالا ذخیره کنید دستورات رو با Ctrl+X و بعد Y و بعد Enter حالا بریم چک کنیم ببینیم کانفیگ درسته , دستور زیر رو بزنید
/root/sing-box check -c sing-box_config.json
اگه خطا نداد که درست پیش رفتید , خطا داد باید درستش کنید و بعد اجرا کنید , پس بریم حالا نوبت اجرا با دستور زیر
systemctl enable --now sing-box && sleep 0.2 && systemctl status sing-box
اگه هچی رو درست پیش برده باشید باید مثل عکس زیر ببینید

بچها این 4تا دستور زیر هم برای مدیریت هسته سینگ باکس هست اگه نیازه توی کانفیگتون تغییری بدید اول باید هسته رو استاپ کنید تغییرات رو اعمال کنید و بعد استارت یا ری استارت بکنید و برای دیدن وضعیت هسته هم میتونید از استاتوس استفاده کنید
systemctl stop sing-box
systemctl restart sing-box
systemctl start sing-box
systemctl status sing-box
خوب تمام , هسته سینگ باکس ما امادست بریم ازش استفاده بکنیم روی گوشی یا ویندوز یا هر کلاینتی که دوست دارید , نکته ی خیلی مهم , روی گوشی های آندروید برای سینگباکس حتما از آخرین ورژن برنامه NekoBox استفاده کنید
حالا کافیه یه کانفیگ بسازید مثل عکس زیر و آی پی سرور ایرانتون + اون publik key که با اون سه تا دستور گرفتیم رو اینجا با بقیه اطلاعات وارد کنید و تمام لذتشو ببرید

امیدوارم لذت برده باشید از تانل با سینگ باکس و ریلیتی
4.روش چهارم با ReverseTLS Tunnel
خوب روش های اول و دوم در این مطلب یه ایراد دارن و اون چیه , دیتاسنترهای ایرانی سریع میتونن متوجه بشن شما دارید تانل میزنید یعنی ترافیک رو دارید به یک آی پی خاص فوروارد(انتقال) میدید , میان سریع ای پی سرور خارج شمارو میبندن و دیگه روی اون سرور تانل جواب نمیده , پس چرا اینکارو بکنیم ؟ برعکسش رو انجام بدیم و بهتر هم هست , یعنی جای اینکه از ایران به خارج وصل بشیم , بیایم از خارج به ایران وصل بشیم و ترافیک رو منتقل کنیم , حالا اگه یک شبیه ساز هم روش بزنیم به صورتی که انگار روی سرور ایران ما داریم یک سایت ایرانی رو باز میکنیم , یعنی سرور ما انگار دارم فرضا سایت ورزش 3 رو چک میکنه ولی در اصل داره ترافیک رو منتقل میکنه خیلی عالی میشه نع ؟ پس بریم باهم آموزش زیر رو بخونیم
دوست عزیزم RadKesvat نخواسته اسمی ازش اورده بشه و این روش رو برای شما نوشته به زبان فارسی از خود منم بهتر پس این آموزش رو بخونید در لینک زیر فقط دقت کنید , تو روزهایی که اینترنت قطع میشه دیگه دسترسی به خیلی چیزام مثل گیتهاب و ... هم ممکنه قطع بشه پس این آموزش و آموزش زیر رو یک جایی همراه فایل ها ذخیره کنید یا جلوتر کاراشو انجام بدید و سرور تانلتون رو اماده کنید که بعدا مشکل نخورد
https://github.com/radkesvat/ReverseTlsTunnel
در روش بالا هر کانفیگی که دارید رو حالا کافیه ای پی سرور ایرانتون رو بدید به سرعت ترافیک منتثل میشه چک کردم و فوق العاده هست
به امید پیروزی
خیلی مخلصیم