🌍 زبان: فارسی | English
اسکریپت کامل و سادهسازیشده برای نصب، پیکربندی و مدیریت تانل ریورس FRP یک ابزار پروکسی معکوس قدرتمند و سریع برای عبور از NAT.
این اسکریپت همه مراحل نصب و راهاندازی FRP رو بهصورت خودکار انجام میده و یه منوی کاربرپسند برای مدیریت سرور و کلاینتهای FRP داره.
📚 مستندات رسمی FRP: GoFRP Official Docs
✨ نصب با یک کلیک – آخرین نسخه FRP رو بهصورت خودکار دانلود و نصب میکنه
🖥️ راهاندازی تعاملی – منوی راهنما برای تنظیم راحت سرور و کلاینت
⚙️ پیکربندی پیشرفته – امکان مرور، دیدن و ویرایش فایلهای پیکربندی
📊 مانیتور وضعیت – مشاهده سرویسهای در حال اجرا و فایلهای پیکربندی
🔧 مدیریت سرویسها – شروع، توقف و کنترل سرویسها از طریق systemd
📦 کاهش حجم پیلود پکتها – با استفاده از آپشن TCP Compression، حجم پکت ها کاهش یافته و ترافیک مصرفی کمتر میشود
🔹توجه: این قابلیت بهصورت پیشفرض توسط اسکریپت فعال شده است
نکته ای درباره کانکشن هندلینگ و مصرف رم
ممکنه توی سروری با سرعت ۱۵۰ مگابیت بر ثانیه، مصرف رم بین ۱ تا ۲ گیگ رو ببینین. این کاملاً طبیعی و عمدی طراحی شده.
برخلاف پروژههایی که فقط دنبال مصرف کمتر رم هستن، FRP تمرکزش روی مدیریت درست اتصالها، بافرها و وضعیت ارتباطهاست. این طراحی باعث میشه حتی در زمان فشار زیاد یا قطعیهای لحظهای، جدول اتصالها پر نشه. ما مواردی از پروژه های دیگه دیدیم که سیستمهایی با مدیریت ضعیف کانکشن طراحی کردند، فقط با یه قطعی کوتاه، بیش از ۱۵۰۰۰ اتصال یتیم رها کردن.
در مقابل، FRP طوری طراحی شده که افت اتصالها رو خیلی سریع هندل کنه — توی تستهای ما کمتر از ۱ ثانیه طول کشیده تا به حالت پایدار برگرده. توی این سیستم، پایداری و عملکرد بالا خیلی مهمتر از صرفهجویی چند صد مگابایتی در رم در نظر گرفته شده.
نکته ای درباره مولتی پلکسینگ TCPMux
در صورت نیاز به پشتیبانی از تعداد زیاد کاربران یا حجم بالای ترافیک، توصیه میشود از مولتی پلکسینگ ( TCPMux ) استفاده نکنید. طبق تستهای ما، در شرایط ترافیک بالا، غیرفعال بودن مولتی پلکسینگ باعث بهبود محسوس کیفیت میشود.
bash <(curl -Ls https://raw.githubusercontent.com/mikeesierrah/frp-script/main/frp-setup.sh)
فایلهای سرور در مسیر /root/frp/server/
با این الگو ذخیره میشن:
server-<port>.toml
فایلهای کلاینت در مسیر /root/frp/client/
با الگوی زیر:
client-<server-port>.toml
سرویسها با systemd و با الگوی زیر ساخته میشن:
- سرور:
frps@server-port
- کلاینت:
frpc@client-port
- اسکریپت رو اجرا کن و گزینه ۱ (نصب FRP) رو بزن
- گزینه ۲ (راهاندازی سرور) رو انتخاب کن
- پورت و توکن احراز هویت رو وارد کن
- سرور بهصورت خودکار اجرا میشه
- مطمئن شو FRP نصب شده (گزینه ۱)
- گزینه ۳ (راهاندازی کلاینت) رو بزن
- مشخصات سرور و پورتهای لوکال رو وارد کن
- اتصال خودکار برقرار میشه
- گزینه ۴ (پیکربندی پیشرفته) رو بزن
- انتخاب کن کلاینت یا سرور
- فایل تنظیمات رو انتخاب و ویرایش کن
- بعد از ویرایش، سرویس خودکار ریاستارت میشه
# نمایش همه سرویسهای FRP
systemctl list-units | grep frp
# وضعیت یه سرویس خاص
systemctl status frps@server-7000
systemctl status frpc@client-7000
# لاگ سرور
journalctl -u frps@server-7000 -f
# لاگ کلاینت
journalctl -u frpc@client-7000 -f
فایلهای پیکربندی در مسیر زیر ذخیره میشن:
سرور: root/frp/server/*.toml
کلاینت: root/frp/client/*.toml
این اسکریپت فقط امکانات پایه FRP رو برای سادگی فراهم میکنه.
FRP قابلیتهای خیلی پیشرفتهتری داره مثل:
🔄 لودبالانسینگ برای پخش ترافیک
🔀 پورت مالتی پلکسینگ برای استفاده چند سرویس از یه پورت
🌐ارسال IP واقعی کاربر به سرور مناسب آیپی لیمیت
📊 محدودسازی پهنای باند هر پورت و پراکسی
🎯 مسیریابی با دامنه، مسیر و هدر
⚡ اتصال دائم و بهینه شده
🛡️ روش های احراز هویت متنوع
📈 داشبورد مانیتورینگ داخلی
🔧 سیستم افزونه ها برای گسترش قابلیت ها
پس این اسکریپت چی رو پوشش میده؟
برای راه اندازی سریع و ساده، این اسکریپت فقط تنظیمات پایه و معقول FRP رو ایجاد می کنه و هدفش ستاپ سریع این هسته برای تست و بررسیه و این که راحت تر بتونید کانفیگ خودتون رو انجام بدید
اگه نیازهای خاصی دارین مثل:
- لود بالانس پیشرفته
- احراز هویت سفارشی
- دستکاری هدرها
- کنترل ترافیک دقیق
- چند کاربره بودن
- اتصال افزونهها
حتماً به مستندات رسمی مراجعه کنین: اینجا کلیک کنید
و از طریق گزینه "پیکربندی پیشرفته" در همین اسکریپت فایلها رو دستی ویرایش کنین.
اگه این اسکریپت به کارت اومد، و خواستی حمایتی کنی :
💝 ۵ دلار به یه نیازمند کمک کن
☕ از توسعهدهنده FRP تو گیتهاب حمایت کن: fatedier/frp