Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
pingap — nginx जैसा रिवर्स प्रॉक्सी, pingora पर निर्मित, सरल और कुशल। | Kitploit
उपकरण/GitHubGitHub/vicanso/pingap
प्रमाणीकरण और प्राधिकरणरिवर्स इंजीनियरिंगवेब सुरक्षाक्लाउड सुरक्षाDevSecOpsप्रमाणीकरणAPI सुरक्षा
GitHubvicanso/pingap

pingap

nginx जैसा रिवर्स प्रॉक्सी, pingora पर निर्मित, सरल और कुशल।

रिपॉजिटरी देखें
1.3k9712 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट

pingap

पिंगप संस्करण स्थिर होने से पहले, कोई भी पुल रिक्वेस्ट स्वीकार नहीं की जाएगी। यदि आपके कोई प्रश्न हैं, तो कृपया पहले एक नई issue बनाएँ।

Pingap Logo

सारांश

Pingap Cloudflare Pingora द्वारा संचालित एक उच्च-प्रदर्शन रिवर्स प्रॉक्सी है। यह संक्षिप्त TOML फ़ाइलों और एक सहज वेब एडमिन इंटरफ़ेस के माध्यम से गतिशील, शून्य-डाउनटाइम कॉन्फ़िगरेशन हॉट-रिलोडिंग सक्षम करके परिचालन प्रबंधन को सरल बनाता है।

इसकी मुख्य ताकत एक शक्तिशाली प्लगइन प्रणाली में निहित है, जो प्रमाणीकरण (JWT, Key Auth), सुरक्षा (CSRF, IP/Referer/UA प्रतिबंध), ट्रैफ़िक नियंत्रण (रेट लिमिटिंग, कैशिंग), सामग्री संशोधन (रिडायरेक्ट, सामग्री प्रतिस्थापन) और अवलोकन क्षमता (Request ID) के लिए बीस से अधिक रेडी-टू-यूज़ सुविधाएँ प्रदान करती है। यह Pingap को केवल एक प्रॉक्सी नहीं, बल्कि एक लचीला और विस्तार योग्य एप्लिकेशन गेटवे बनाता है, जो API सुरक्षा से लेकर आधुनिक वेब एप्लिकेशन परिनियोजन तक जटिल परिदृश्यों को आसानी से संभालने के लिए इंजीनियर किया गया है।

中文说明 | दस्तावेज़ · 中文文档 | उदाहरण | प्लगइन्स | Crates

root@kitploit:~
flowchart LR
  internet("Internet") -- request --> pingap["Pingap"]
  pingap -- proxy:pingap.io/api/* --> apiUpstream["10.1.1.1,10.1.1.2"]
  pingap -- proxy:cdn.pingap.io --> cdnUpstream["10.1.2.1,10.1.2.2"]
  pingap -- proxy:/* --> upstream["10.1.3.1,10.1.3.2"]

मुख्य विशेषताएँ

  • 🚀 उच्च प्रदर्शन और विश्वसनीयता

    • मेमोरी सुरक्षा और शीर्ष-स्तरीय प्रदर्शन के लिए Rust में निर्मित।
    • Cloudflare Pingora द्वारा संचालित, एक युद्ध-परीक्षित एसिंक्रोनस नेटवर्किंग लाइब्रेरी।
    • HTTP/1.1, HTTP/2 और gRPC-web प्रॉक्सिंग का समर्थन करता है।
  • 🔧 गतिशील और उपयोग में आसान

    • हॉट-रिलोडिंग के साथ शून्य-डाउनटाइम कॉन्फ़िगरेशन परिवर्तन।
    • सरल, मानव-पठनीय TOML कॉन्फ़िगरेशन फ़ाइलें।
    • सहज, वास्तविक समय प्रबंधन के लिए पूर्ण-विशेषताओं वाला वेब UI।
    • कॉन्फ़िगरेशन बैकएंड के रूप में फ़ाइल और etcd दोनों का समर्थन करता है।
    • कॉन्फ़िगरेशन इतिहास रिकॉर्ड का समर्थन करता है, एक क्लिक में ऐतिहासिक संस्करण को पुनर्स्थापित कर सकता है।
  • 🧩 शक्तिशाली विस्तार क्षमता

    • सामान्य गेटवे कार्यों को संभालने के लिए एक समृद्ध प्लगइन प्रणाली।
    • होस्ट, पथ और regex मिलान के साथ उन्नत रूटिंग।
    • स्थिर सूचियों, DNS या Docker लेबल के माध्यम से अंतर्निहित सेवा खोज।
    • Let's Encrypt के साथ स्वचालित HTTPS (HTTP-01 और DNS-01 चुनौतियों दोनों का समर्थन करता है)।
  • 📊 आधुनिक अवलोकन क्षमता

    • निगरानी के लिए मूल Prometheus मेट्रिक्स (पुल और पुश मोड)।
    • वितरित ट्रेसिंग के लिए एकीकृत OpenTelemetry समर्थन।
    • 30 से अधिक चरों के साथ अत्यधिक अनुकूलन योग्य एक्सेस लॉग।
    • विस्तृत प्रदर्शन मेट्रिक्स, जिसमें अपस्ट्रीम कनेक्ट समय, प्रोसेसिंग समय और बहुत कुछ शामिल है।

🚀 आरंभ करना

Pingap के साथ शुरुआत करने का सबसे आसान तरीका Docker Compose का उपयोग करना है।

  1. एक docker-compose.yml फ़ाइल बनाएँ:
root@kitploit:~
# docker-compose.yml
version: '3.8'

services:
  pingap:
    image: vicanso/pingap:latest # For production, use a specific version like vicanso/pingap:0.12.1-full
    container_name: pingap-instance
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      # Mount a local directory to persist all configurations and data
      - ./pingap_data:/opt/pingap
    environment:
      # Configure using environment variables
      - PINGAP_CONF=/opt/pingap/conf
      - PINGAP_ADMIN_ADDR=0.0.0.0:80/pingap
      - PINGAP_ADMIN_USER=pingap
      - PINGAP_ADMIN_PASSWORD=<YourSecurePassword> # Change this!
    command:
      # Start pingap and enable hot-reloading
      - pingap
      - --autoreload
  1. एक डेटा निर्देशिका बनाएँ और चलाएँ:
root@kitploit:~
mkdir pingap_data
docker-compose up -d
  1. एडमिन UI तक पहुँचें:

आपका Pingap इंस्टेंस अब चल रहा है! आप अपने द्वारा निर्धारित क्रेडेंशियल्स के साथ http://localhost/pingap पर वेब एडमिन इंटरफ़ेस तक पहुँच सकते हैं।

curl के माध्यम से बाइनरी इंस्टॉल करें

Linux और macOS के लिए, आप एक कमांड से नवीनतम प्री-बिल्ट बाइनरी को /usr/local/bin/pingap में इंस्टॉल कर सकते हैं:

root@kitploit:~
curl -sSL https://raw.githubusercontent.com/vicanso/pingap/main/install.sh | sh

वैकल्पिक पर्यावरण चर:

  • PINGAP_FULL=1 — -full बिल्ड इंस्टॉल करें (सभी वैकल्पिक सुविधाएँ सक्षम)
  • PINGAP_LIBC=gnu — Linux पर, डिफ़ॉल्ट musl स्थैतिक बिल्ड के बजाय glibc बिल्ड का उपयोग करें
root@kitploit:~
# Full-featured build
curl -sSL https://raw.githubusercontent.com/vicanso/pingap/main/install.sh | PINGAP_FULL=1 sh

समर्थित टारगेट: Linux x86_64/arm64, Darwin x86_64/arm64. सभी उपलब्ध एसेट्स के लिए रिलीज़ पेज देखें।

बाइनरी से चलाने सहित अधिक विस्तृत निर्देशों के लिए, हमारा दस्तावेज़ देखें।

कॉन्फ़िगरेशन फ़ाइल के बिना एक प्रॉक्सी शुरू करें

किसी डोमेन को https पर सर्व करने और उसे बैकएंड पर अग्रेषित करने के लिए एक ही कमांड पर्याप्त है:

root@kitploit:~
# certificate requested from let's encrypt
pingap --domain=pingap.io --upstream=192.168.1.1:3000

# or bring your own certificate
pingap --domain=pingap.io --upstream=192.168.1.1:3000 --cert=/etc/ssl/pingap.io

--cert के बिना, Pingap HTTP-01 चुनौती के माध्यम से Let's Encrypt से प्रमाणपत्र माँगता है, इसलिए pingap.io को इस होस्ट पर रिज़ॉल्व होना चाहिए और पोर्ट 80 इंटरनेट से पहुँच योग्य होना चाहिए। जारी किया गया प्रमाणपत्र ~/.pingap/acme/<domains>.toml में रखा जाता है और पुनः आरंभ पर पुनः उपयोग किया जाता है — जारी करना दर-सीमित है, इसलिए इसे हटाएँ नहीं। बाकी सब कुछ अभी भी कमांड लाइन से आता है: --upstream बदलने से अगले आरंभ पर प्रमाणपत्र को छुए बिना प्रभाव लागू होता है।

--cert प्रमाणपत्र या उसे रखने वाली निर्देशिका स्वीकार करता है — सामान्य fullchain.pem / privkey.pem, cert.pem / key.pem और tls.crt / tls.key लेआउट स्वचालित रूप से पहचाने जाते हैं, किसी और चीज़ के लिए --key का उपयोग करें। लिसनर डिफ़ॉल्ट रूप से प्रमाणपत्र होने पर 0.0.0.0:443 और जब न तो प्रमाणपत्र और न ही डोमेन हो तो 0.0.0.0:80 होता है, और --addr इसे ओवरराइड करता है। --upstream बैकएंड की अल्पविराम-पृथक सूची लेता है, --domain होस्ट की अल्पविराम-पृथक सूची लेता है (प्रत्येक होस्ट को सादे http पर सर्व करने के लिए इसे छोड़ दें)।

कॉन्फ़िगरेशन प्रत्येक आरंभ पर उत्पन्न होता है, इसलिए इसे एडमिन UI के माध्यम से संपादित नहीं किया जा सकता: एकल सर्वर से परे किसी भी चीज़ के लिए --conf का उपयोग करें, जिसे इन फ़्लैग्स के साथ जोड़ा नहीं जा सकता।

गतिशील कॉन्फ़िगरेशन

Pingap बिना डाउनटाइम के कॉन्फ़िगरेशन परिवर्तनों के अनुकूल होने के लिए डिज़ाइन किया गया है।

हॉट रीलोड (--autoreload): अधिकांश परिवर्तनों के लिए—जैसे अपस्ट्रीम, लोकेशन या प्लगइन्स को अपडेट करना—Pingap बिना पुनः आरंभ के 10 सेकंड के भीतर नया कॉन्फ़िगरेशन लागू करता है। यह कंटेनरीकृत वातावरण के लिए अनुशंसित मोड है।

ग्रेसफुल रीस्टार्ट (-a या --autorestart): मौलिक परिवर्तनों (जैसे सर्वर लिसन पोर्ट संशोधित करना) के लिए, यह मोड पूर्ण, शून्य-डाउनटाइम पुनः आरंभ करता है, यह सुनिश्चित करता है कि कोई भी अनुरोध न छूटे।

🔧 विकास

root@kitploit:~
make dev

यदि आपको वेब एडमिन चाहिए, तो आपको nodejs इंस्टॉल करना चाहिए और वेब एसेट्स बनानी चाहिए।

root@kitploit:~
# generate admin web asset
cd web
npm i 
cd ..
make build-web

📝 कॉन्फ़िगरेशन

root@kitploit:~
server "test" {
  addr = "127.0.0.1:6118"

  location "github-api" {
    path = "/api"
    proxy_set_headers = ["Host:api.github.com"]
    rewrite = "^/api/(?<path>.+)$ /$1"

    upstream "api" {
      addrs     = ["api.github.com:443"]
      discovery = "dns"
      sni       = "api.github.com"
    }
  }

  location "static" {
    plugin "staticServe" {
      category = "directory"
      path     = "~/Downloads"
      step     = "request"
    }
  }
}
root@kitploit:~
[upstreams.api]
addrs = ["api.github.com:443"]
discovery = "dns"
sni = "api.github.com"

[plugins.staticServe]
category = "directory"
path = "~/Downloads"
step = "request"

[locations.github-api]
upstream = "api"
path = "/api"
proxy_set_headers = ["Host:api.github.com"]
rewrite = "^/api/(?<path>.+)$ /$1"

[locations.static]
plugins = ["staticServe"]

[servers.test]
addr = "127.0.0.1:6118"
locations = ["github-api", "static"]

आप यहाँ प्रासंगिक निर्देश पा सकते हैं: https://pingap.io/crates/config.

🔄 प्रॉक्सी चरण

root@kitploit:~
graph TD;
  server["HTTP Server"];
  locationA["Location A"];
  locationB["Location B"];
  locationPluginListA["Proxy Plugin List A"];
  locationPluginListB["Proxy Plugin List B"];
  upstreamA1["Upstream A1"];
  upstreamA2["Upstream A2"];
  upstreamB1["Upstream B1"];
  upstreamB2["Upstream B2"];
  locationResponsePluginListA["Response Plugin List A"];
  locationResponsePluginListB["Response Plugin List B"];

  start("New Request") --> server

  server -- "host:HostA, Path:/api/*" --> locationA

  server -- "Path:/rest/*"--> locationB

  locationA -- "Exec Proxy Plugins" --> locationPluginListA

  locationB -- "Exec Proxy Plugins" --> locationPluginListB

  locationPluginListA -- "proxy pass: 10.0.0.1:8001" --> upstreamA1

  locationPluginListA -- "proxy pass: 10.0.0.2:8001" --> upstreamA2

  locationPluginListA -- "done" --> response

  locationPluginListB -- "proxy pass: 10.0.0.1:8002" --> upstreamB1

  locationPluginListB -- "proxy pass: 10.0.0.2:8002" --> upstreamB2

  locationPluginListB -- "done" --> response

  upstreamA1 -- "Exec Response Plugins" --> locationResponsePluginListA
  upstreamA2 -- "Exec Response Plugins" --> locationResponsePluginListA

  upstreamB1 -- "Exec Response Plugins" --> locationResponsePluginListB
  upstreamB2 -- "Exec Response Plugins" --> locationResponsePluginListB

  locationResponsePluginListA --> response
  locationResponsePluginListB --> response

  response["HTTP Response"] --> stop("Logging");

📊 प्रदर्शन

CPU: M4 Pro, थ्रेड: 1

पिंग बिना एक्सेस लॉग

root@kitploit:~
wrk 'http://127.0.0.1:6118/ping' --latency

Running 10s test @ http://127.0.0.1:6118/ping
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    66.41us   23.67us   1.11ms   76.54%
    Req/Sec    73.99k     2.88k   79.77k    68.81%
  Latency Distribution
     50%   67.00us
     75%   80.00us
     90%   91.00us
     99%  116.00us
  1487330 requests in 10.10s, 194.32MB read
Requests/sec: 147260.15
Transfer/sec:     19.24MB
Pingap qrcode

📦 Rust संस्करण

हमारा वर्तमान MSRV 1.88 है

📄 लाइसेंस

यह प्रोजेक्ट Apache License, Version 2.0 के अंतर्गत लाइसेंस प्राप्त है।

टूल डाउनलोड करें