https://github.com/ipmartnetwork/frp-tunnel
https://github.com/ipmartnetwork/frp-tunnel
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ipmartnetwork/frp-tunnel
- Owner: iPmartNetwork
- License: mit
- Created: 2025-05-24T18:49:49.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-05-27T20:14:43.000Z (about 1 year ago)
- Last Synced: 2026-03-29T01:25:03.231Z (4 months ago)
- Language: Shell
- Size: 15.6 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README-FA.md
- License: LICENSE
Awesome Lists containing this project
README
# FRP-Tunnel
یک اسکریپت نصب ساده، تعاملی و امن برای راهاندازی تونل FRP بین سرورهای داخل NAT و سرورهای خارج با نصب خودکار آخرین نسخه رسمی FRP و راهاندازی دائمی سرویس.
---
## ویژگیها
- 🟢 **یک اسکریپت برای هر دو نقش سرور (frps) و کلاینت (frpc)**
- ⚡ **پیکربندی تعاملی با مقادیر واقعی**
- 🚀 **دانلود و نصب خودکار آخرین نسخه رسمی FRP**
- 🔒 **احراز هویت توکنی برای امنیت بیشتر**
- 🔄 **راهاندازی سرویس دائمی با systemd**
- 📜 **نمایش زنده وضعیت و لاگ پس از نصب**
- 👨💻 **سازگار با تمام توزیعهای مدرن لینوکس**
- 🪶 **ساده، قابل اطمینان و سریع**
---
## ⚡ راهاندازی سریع
### ۱. دانلود و اجرا روی هر دو سرور
روی **سرور خارج (فرپس/Server) و سرور داخل (فرپسی/Client)**، فقط کافیست اجرا کنید:
```bash
bash <(curl -fsSL https://raw.githubusercontent.com/iPmartNetwork/FRP-Tunnel/main/frp-tunnel.sh)
```
> حتماً `curl` نصب باشد.
> همچنین میتوانید مخزن را کلون کنید:
> ```bash
> git clone https://github.com/iPmartNetwork/FRP-Tunnel.git
> cd FRP-Tunnel
> chmod +x frp-tunnel.sh
> sudo ./frp-tunnel.sh
> ```
### ۲. مقادیر را مطابق نقش انتخاب و وارد کنید
- **نقش را انتخاب کنید:**
- `1` برای سرور (frps) — اجرا روی سرور خارجی با IP عمومی
- `2` برای کلاینت (frpc) — اجرا روی سرور داخلی یا پشت NAT
- **پورتها، IP، توکن و ... را طبق نیاز وارد کنید.**
- **در پایان نصب، لاگ زنده و وضعیت سرویس را مشاهده میکنید.**
---
## 🧩 مثال کاربردی
**مثال:** انتقال SSH (پورت ۲۲ سرور داخل) به پورت ۲۲۲۲ روی سرور خارج
- **روی سرور خارج:**
- نقش: `1` (سرور)
- پورت لیسن: `7000` (یا دلخواه)
- توکن: (یک رمز قوی دلخواه)
- **روی سرور داخل:**
- نقش: `2` (کلاینت)
- IP سرور: (IP عمومی سرور خارج)
- پورت سرور: `7000`
- توکن: (مطابق سرور)
- پورت لوکال: `22`
- پورت ریموت: `2222`
- نام تونل: `myssh`
- پروتکل: `tcp`
حالا میتوانید با دستور زیر وصل شوید:
```bash
ssh user@ -p 2222
```
---
## 🔍 چگونه کار میکند؟
- **سرور (frps):**
در سرور خارجی اجرا شده و منتظر اتصال کلاینتها است.
- **کلاینت (frpc):**
روی سرور داخل اجرا شده و سرویس داخلی را از طریق تونل به سرور خارج منتقل میکند.
---
## 🛠️ نیازمندیها
- لینوکس x86_64/amd64، arm64 یا armv7l
- دسترسی root/sudo
- curl، wget، tar، systemd
---
## 📃 ساختار اسکریپت
- تشخیص معماری سیستم
- دانلود آخرین نسخه frp
- ساخت کانفیگ مینیمال frps.ini/frpc.ini
- راهاندازی سرویس دائمی systemd
- نمایش وضعیت سرویس و لاگ زنده
---
## 🧑💻 مدیریت دستی سرویس
بررسی وضعیت سرویس:
```bash
sudo systemctl status frps # روی سرور خارج
sudo systemctl status frpc # روی سرور داخل
```
مشاهده لاگ زنده:
```bash
sudo journalctl -u frps -f # روی سرور خارج
sudo journalctl -u frpc -f # روی سرور داخل
```
ریستارت سرویس:
```bash
sudo systemctl restart frps # روی سرور خارج
sudo systemctl restart frpc # روی سرور داخل
```
---
## ❓ سوالات متداول
- **چطور تونلهای بیشتر اضافه کنم؟**
فایل `/usr/local/frp/frpc.ini` را روی کلاینت ویرایش و بخشهای `[proxy_name]` جدید اضافه کنید و سرویس را ریستارت کنید.
- **آیا این روش امن است؟**
بله، احراز هویت بر اساس توکن قوی است و تونلها فقط با توکن ساخته میشوند.
- **چطور حذف کنم؟**
سرویس را غیرفعال و حذف کنید، سپس `/usr/local/frp` و `/etc/systemd/system/frp*.service` را پاک کنید.
---
## 📜 مجوز
[MIT](LICENSE)
---
## 🙌 تقدیر و منابع
- [fatedier/frp](https://github.com/fatedier/frp)
- [iPmartNetwork](https://github.com/iPmartNetwork)
---
> توسعه داده شده توسط تیم iPmartNetwork
> هرگونه سوال، مشکل یا پیشنهاد: [Issue ثبت کنید](https://github.com/iPmartNetwork/FRP-Tunnel/issues)