Packet-level tunnel for Linux VPS

PaqetPremium carries traffic inside crafted raw TCP packets (libpcap) and runs KCP or QUIC with smux multiplexing — built for an Iran entry node and a foreign exit node.

platform transport license

Why PaqetPremium

A self-hosted, open tunnel that stays resilient on lossy, filtered links.

📦

Packet-level

Crafted raw TCP over libpcap to slip past simple filtering, with KCP or QUIC as the carrier.

🔀

Multi-upstream

Several exit servers with failover, round-robin, weighted, or least-latency strategies + health checks.

🌐

All-ports range

Transparently tunnel any port to the server with one rule — no per-port config.

🧦

Forward & SOCKS5

TCP/UDP port-forward and a SOCKS5 entry (CONNECT + UDP ASSOCIATE).

🛡️

Self-healing

Dead tunnels rebuild automatically with backoff — no manual restarts.

📡

FEC tuning

Optional forward error correction trades a little bandwidth for far fewer retransmits.

📊

Live dashboard

Built-in web dashboard plus Prometheus metrics over the admin API.

⚙️

systemd-native

One-line installer, multi-instance tunnels, .deb/.rpm packages.

How it works

Users hit the Iran node; traffic is tunneled to the foreign node, which relays it to the open internet.

flowchart LR U["User / Apps"] --> C subgraph IR["Iran VPS — role: client"] C["Port-forward / SOCKS5 / All-ports"] end C -->|"pcap crafted TCP
KCP or QUIC + smux"| S subgraph KH["Foreign VPS — role: server"] S["Relay + iptables"] end S --> NET["Open Internet"]

Quick start

Two Linux VPSes (amd64/arm64). Run the guided installer on each. Both ends share the same secret key.

1 · Foreign server (exit)

curl -fsSL https://raw.githubusercontent.com/iPmartNetwork/paqetpremium/master/scripts/install-linux.sh | sudo bash -s -- server

Pick a port, transport (KCP/QUIC) and a secret key. The installer prints the public address to use on the client.

2 · Iran client (entry)

curl -fsSL https://raw.githubusercontent.com/iPmartNetwork/paqetpremium/master/scripts/install-linux.sh | sudo bash -s -- client

Enter the server's PUBLIC address + the same key, then choose port-forward, SOCKS5, or all-ports range mode.

Install from a package

sudo dpkg -i paqetpremium_*.deb     # Debian / Ubuntu
sudo rpm  -i paqetpremium-*.rpm     # RHEL / Fedora

Configuration examples

Both ends must agree on the same transport and secret key.

KCP (default) with FEC

transport:
  protocol: kcp
  conn: 6
  kcp:
    mode: fast
    block: aes-128-gcm
    key: SHARED_SECRET
    mtu: 1150
    data_shard: 10      # FEC (optional) — both ends must match
    parity_shard: 3

Multi-upstream (failover)

upstream:
  strategy: failover     # failover | round_robin | weighted | least_latency
  health_check: { interval: 10s, timeout: 3s, fail_threshold: 3, recover_threshold: 2 }
  servers:
    - { name: de-1, addr: 45.1.1.1:8888, key: SHARED_SECRET, priority: 1, weight: 3 }
    - { name: nl-1, addr: 45.2.2.2:8888, key: SHARED_SECRET, priority: 2 }

All-ports range mode (client)

range:
  enabled: true
  protocol: tcp
  redirect_port: 47999
  target_host: "127.0.0.1"   # services on the server
  ports: "1-65535"           # or "443,8443,2000-3000"
  exclude: "22"              # keep SSH reachable
Range mode exposes the server's local ports through the entry IP. Keep sensitive ports in exclude.

Load-balancing strategies

StrategyBehaviourUse when
failoverAlways the highest-priority healthy server; switches on failureOne primary + backups
round_robinEven rotation across healthy serversEqual servers
weightedShare proportional to weightDifferent capacities
least_latencyLowest measured RTTAlways fastest

Dashboard & management

A live dark dashboard ships in the admin API (bound to 127.0.0.1). View it over SSH:

PaqetPremium v0.15 · client · iran-entry
DOWN
4.2 GB 3.1 MB/s
UP
1.8 GB 0.9 MB/s
SESSIONS
6
ERRORS
0
UpstreamHealthRTT
● kharej-1healthy62.4 ms
kharej-2healthy88.1 ms
ssh -L 9090:127.0.0.1:9090 root@SERVER_IP
# then open http://localhost:9090  (add ?token=... if a token is set)

Manage individual tunnels from the installer:

sudo ./install-premium.sh tunnels        # list with details
sudo ./install-premium.sh edit   client  # edit one tunnel + restart
sudo ./install-premium.sh remove v2ray-1 # delete a single tunnel

FAQ

Does it work behind NAT?

Yes. The server crafts packets with its interface IP and the provider NAT rewrites it; configure the client with the server's PUBLIC IP.

Which panel protocols are supported?

Any TCP-based inbound (VLESS/Reality, VMess+WS, Trojan, gRPC, …) works transparently. UDP-based ones (QUIC/Hysteria2/TUIC) work over UDP forwarding with preserved datagram boundaries.

KCP or QUIC?

KCP is the default and tuned for lossy links; QUIC uses TLS 1.3 with a certificate pinned to your shared secret. Both ends must match.

تونل سطح‌پکت برای VPS لینوکسی

PaqetPremium ترافیک را داخل پکت‌های TCP خام ساختگی (libpcap) جابه‌جا می‌کند و از KCP یا QUIC به‌همراه multiplex با smux استفاده می‌کند — ساخته‌شده برای یک نودِ ورودی در ایران و یک نودِ خروجی در خارج.

platform transport license

چرا PaqetPremium

یک تونلِ سورس‌باز و self-hosted که روی لینک‌های پرافت و فیلترشده پایدار می‌ماند.

📦

سطح‌پکت

TCP خام ساختگی روی libpcap برای عبور از فیلترینگ ساده، با KCP یا QUIC به‌عنوان حامل.

🔀

چند سرور

چند سرور خروجی با استراتژی‌های failover، round-robin، weighted و least-latency به‌همراه health check.

🌐

تمام پورت‌ها

تونلِ شفافِ هر پورت به سرور تنها با یک قانون — بدون تنظیمِ پورت‌به‌پورت.

🧦

Forward و SOCKS5

port-forward برای TCP/UDP و ورودیِ SOCKS5 (CONNECT + UDP ASSOCIATE).

🛡️

خوددرمان

تونل‌های مرده به‌صورت خودکار و با backoff بازسازی می‌شوند — بدون ری‌استارت دستی.

📡

تنظیم FEC

تصحیح خطای رو‌به‌جلوِ اختیاری: کمی پهنای‌باند در ازای ارسالِ مجددِ بسیار کمتر.

📊

داشبورد زنده

داشبورد وب داخلی به‌همراه متریک Prometheus روی Admin API.

⚙️

یکپارچه با systemd

نصب‌کننده‌ی تک‌خطی، تونل‌های چنداینستنسی، بسته‌های deb/rpm.

چطور کار می‌کند

کاربران به نودِ ایران وصل می‌شوند؛ ترافیک به نودِ خارج تونل می‌شود و آنجا به اینترنت آزاد رله می‌گردد.

flowchart RL U["کاربر / اپ‌ها"] --> C subgraph IR["VPS ایران — client"] C["port-forward / SOCKS5 / همه‌پورت"] end C -->|"TCP ساختگیِ pcap
KCP یا QUIC + smux"| S subgraph KH["VPS خارج — server"] S["رله + iptables"] end S --> NET["اینترنت آزاد"]

شروع سریع

دو VPS لینوکسی (amd64/arm64). روی هر کدام نصب‌کننده را اجرا کنید. هر دو طرف یک secret key مشترک دارند.

۱ · سرور خارج (خروجی)

curl -fsSL https://raw.githubusercontent.com/iPmartNetwork/paqetpremium/master/scripts/install-linux.sh | sudo bash -s -- server

پورت، transport (KCP/QUIC) و یک کلید مخفی انتخاب کنید. نصب‌کننده آدرس عمومیِ موردِ استفاده روی کلاینت را نشان می‌دهد.

۲ · کلاینت ایران (ورودی)

curl -fsSL https://raw.githubusercontent.com/iPmartNetwork/paqetpremium/master/scripts/install-linux.sh | sudo bash -s -- client

آدرس عمومیِ سرور و همان کلید را وارد کنید، سپس port-forward، SOCKS5 یا حالتِ همه‌پورت را انتخاب کنید.

نصب از بسته

sudo dpkg -i paqetpremium_*.deb     # دبیان / اوبونتو
sudo rpm  -i paqetpremium-*.rpm     # RHEL / فدورا

نمونه‌های پیکربندی

هر دو طرف باید روی یک transport و یک کلید مشترک توافق داشته باشند.

KCP (پیش‌فرض) با FEC

transport:
  protocol: kcp
  conn: 6
  kcp:
    mode: fast
    block: aes-128-gcm
    key: SHARED_SECRET
    mtu: 1150
    data_shard: 10      # FEC (اختیاری) — باید در دو طرف یکی باشد
    parity_shard: 3

چند سرور (failover)

upstream:
  strategy: failover     # failover | round_robin | weighted | least_latency
  health_check: { interval: 10s, timeout: 3s, fail_threshold: 3, recover_threshold: 2 }
  servers:
    - { name: de-1, addr: 45.1.1.1:8888, key: SHARED_SECRET, priority: 1, weight: 3 }
    - { name: nl-1, addr: 45.2.2.2:8888, key: SHARED_SECRET, priority: 2 }

حالتِ همه‌پورت (کلاینت)

range:
  enabled: true
  protocol: tcp
  redirect_port: 47999
  target_host: "127.0.0.1"   # سرویس‌ها روی سرور
  ports: "1-65535"           # یا "443,8443,2000-3000"
  exclude: "22"              # SSH را باز نگه دارید
حالتِ همه‌پورت، پورت‌های لوکالِ سرور را از طریق IP ورودی در دسترس می‌کند. پورت‌های حساس را در exclude بگذارید.

استراتژی‌های توزیع بار

استراتژیرفتارمناسب وقتی
failoverهمیشه سالم‌ترین سرور با بالاترین اولویت؛ هنگام خرابی سوییچ می‌کندیک اصلی + پشتیبان
round_robinچرخش مساوی بین سرورهای سالمسرورهای هم‌سطح
weightedسهم متناسب با weightظرفیت‌های متفاوت
least_latencyکمترین RTT اندازه‌گیری‌شدههمیشه سریع‌ترین

داشبورد و مدیریت

یک داشبورد تیره‌ی زنده داخل Admin API هست (روی 127.0.0.1). با SSH ببینیدش:

PaqetPremium v0.15 · client · iran-entry
دانلود
4.2 GB 3.1 MB/s
آپلود
1.8 GB 0.9 MB/s
نشست‌ها
6
خطاها
0
سرورسلامتتأخیر
● kharej-1سالم62.4 ms
kharej-2سالم88.1 ms
ssh -L 9090:127.0.0.1:9090 root@SERVER_IP
# سپس باز کنید http://localhost:9090  (اگر توکن دارید ?token=... اضافه کنید)

مدیریتِ تک‌تونلی از نصب‌کننده:

sudo ./install-premium.sh tunnels        # فهرست با جزئیات
sudo ./install-premium.sh edit   client  # ویرایش یک تونل + ری‌استارت
sudo ./install-premium.sh remove v2ray-1 # حذف یک تونلِ خاص

سوالات متداول

پشت NAT کار می‌کند؟

بله. سرور بسته‌ها را با IP اینترفیسِ خود می‌سازد و NAT پرووایدر آن را بازنویسی می‌کند؛ روی کلاینت باید IP عمومیِ سرور را تنظیم کنید.

چه پروتکل‌های پنلی پشتیبانی می‌شوند؟

هر inbound مبتنی بر TCP (VLESS/Reality، VMess+WS، Trojan، gRPC و…) شفاف کار می‌کند. موارد مبتنی بر UDP (QUIC/Hysteria2/TUIC) روی forwardِ UDP با حفظِ مرز دیتاگرام کار می‌کنند.

KCP یا QUIC؟

KCP پیش‌فرض و برای لینک‌های پرافت تیون شده؛ QUIC از TLS 1.3 با گواهیِ pin‌شده به secret مشترک استفاده می‌کند. هر دو طرف باید یکی باشند.