nginx पोर्ट फॉरवर्डिंग / ssh टनलिंग


1
  • मेरे पास एक स्थानीय नेटवर्क पर एक कंप्यूटर (चलो इसे ए) कहते हैं जिसमें बाहर से कोई स्थिर आईपी पता नहीं पहुंच सकता है। (एसएसएच पोर्ट AAAAA)
  • एक के पास एक वेबसर्वर है जिसे मैं बाहर से एक्सेस करने में सक्षम होना चाहता हूं
  • मेरे पास इंटरनेट से सुलभ एक सर्वर (B) है, जो एक वेबसर्वर (ssh पोर्ट BBBBB) भी चलाता है:
  • मैं वेब ब्राउज़र के साथ किसी भी कंप्यूटर से बी के माध्यम से ए पर वेबसर्वर का उपयोग करने में सक्षम होना चाहता हूं।

मैं निम्नलिखित सेटअप के साथ सफलतापूर्वक SSH रिमोट टनलिंग का उपयोग कर रहा हूं:

  • मशीन A पर:

    $> ssh -f -N -p BBBBB -R 0.0.0.0:9000:localhost:AAAAA userB@B.B.B.B

  • मशीन C पर:

    $> ssh -f -p 9000 -D 9001 -N userA@B.B.B.B

  • मशीन C के वेब ब्राउज़र पर, manual proxy configuration SOCKS host: localhost, port 9001, SOCKS v5

यह वास्तव में अच्छी तरह से काम करता है, लेकिन एसएसएच कमांड को सी पर लॉन्च करना और वेब ब्राउज़र में सेटिंग्स को हर बार बदलना बहुत ही कठिन है।

इसलिए मैंने किसी से इस बारे में बात की, जिसने मुझे बताया कि मैं शायद मशीन B पर किए गए भाग को सीधे सर्वर B पर किया जा सकता है, B के वेबसर्वर पर nginx में कुछ वेब कॉन्फिग के साथ सेटअप को सरल बना सकता हूं। तो अब, मैंने यह कोशिश की:

  • A पर, पहले जैसा
  • बी पर:

    $> ssh -f -p 9000 -D 9001 -N userA@127.0.0.1

  • बी के नगीनक्स कॉन्फिग पर:

    $> cat /etc/nginx/sites-available/default:

upstream tunnel {
    server 127.0.0.1:9000;
}

server {
        listen 80;
        [...]
      location /A {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        proxy_pass http://tunnel;
  }
    [...]
}
server {
        listen 443 ssl;
        [...]
      location /A {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://tunnel;
  }
    [...]    
}

मेरी समझ से, इंटरनेट से जुड़ी एक मशीन पर एक वेब ब्राउज़र से, http://B.B.B.B/Aसुरंग के लिए अनुरोध करना चाहिए 127.0.0.1:9000जो मेरी मशीन A के लिए अग्रेषित पोर्ट है, इस प्रकार मुझे वेबसर्वर का उपयोग ए पर करने की अनुमति देता है।

इस सेटअप में कुछ गलत है, हालांकि जब मैं कनेक्ट करने की कोशिश करता हूं तो मुझे http://B.B.B.B/Aएक खाली पृष्ठ के बाद एक लोडिंग समय (लगभग एक मिनट) मिलता है, जिस पर निम्न त्रुटि संदेश लिखा होता है:

SSH-2.0-OpenSSH_6.7p1 Raspbian-5+deb8u3
Protocol mismatch.

मुझे उस त्रुटि का थोड़ा सा पता था, और कुछ इसी तरह के मुद्दों के साथ कुछ पोस्ट मिलीं, लेकिन ईमानदारी से, इस तरह के सामान में मेरे (बहुत) सीमित कौशल के साथ, मैं अपने उपयोग के मामले को ठीक करने की कोशिश कर रहा हूं। ... क्या कोई मेरी मदद कर सकता है?


आप अपने वेब सर्वर के लिए nginx
Md Shahed Hossain
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.