सरल बंदरगाह अग्रेषण


21

मैं थोड़ी परेशानी में हूं क्योंकि मैं एक रिवर्स प्रॉक्सी को दूसरे सर्वर के साथ सेटअप करने की कोशिश कर रहा हूं। मेरा विचार था कि फ़ायरवॉल को अग्रेषित करने के लिए फ़ायरफ़ॉक्स को रिवर्स प्रॉक्सी और पोर्ट 29418 (gerrit ssh) को दूसरे सर्वर पर लाया जाए। अब मेरा सहयोग आईटी आदमी कहता है: नहीं कर सकता! या तो दोनों पोर्ट सर्वर 1 पर जाते हैं या दोनों पोर्ट सर्वर 2 पर जाते हैं।

ठीक है, एक काम के रूप में मैंने पोर्ट 29418 के रिवर्स प्रॉक्सी पर एक पोर्ट अग्रेषित करने की कोशिश की -> सर्वर 2: 29418

विवरण:

  • Server1 IP: 10.0.0.132 और Ubuntu 12.04.2 LTS पर 192.168.10.2
  • Server2 IP: 10.0.0.133 और Ubuntu 12.04.2 LTS पर 192.168.10.3

अब https और port 29418 दोनों फ़ायरवॉल से 10.0.0.132 तक जाते हैं, IT कहता है कि यह एकमात्र तरीका है। :(

तो कृपया मुझे बताएं कि 10.0.0.132:29418 से आगे कैसे जाएं -> 192.168.10.3:29418 या 10.0.0.133:29418

जब मैं 10.0.0.132 पर काम कर रहा हूं तो मैं 10.0.0.133:29418 और 192.168.10.3:29418 दोनों से जुड़ सकता हूं ताकि पोर्ट खुले रहें।

-- अपडेट करें --

मेरा iptables -t nat -L इस तरह दिखता है:

root @ dev: / root # iptables -t nat -L
चेन प्रीरविंग (पॉलिसी ACCEPT)
लक्ष्य विरोध ऑप्ट स्रोत गंतव्य
DNAT tcp - कहीं भी dev.example.com tcp dpt: 29418 से: 10.0.0.133

चेन INPUT (पॉलिसी ACCEPT)
लक्ष्य विरोध ऑप्ट स्रोत गंतव्य

चेन OUTPUT (पॉलिसी ACCEPT)
लक्ष्य विरोध ऑप्ट स्रोत गंतव्य

चेन पोस्टिंग (पॉलिसी ACCEPT)
लक्ष्य विरोध ऑप्ट स्रोत गंतव्य
root @ dev: / root # cat / proc / sys / net / ipv4 / ip_forward
1

जवाबों:


34

मामले में कोई और ऐसा तरीका खोज रहा है जो वास्तव में काम करे। हालांकि @HorsePunchKid अपने सुझाव में सही है, मुझे यह वाक़ई मिल गया है जो लापता चरणों में भर जाता है:

http://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/

संक्षेप में:

IP अग्रेषण सक्षम करें:

sysctl net.ipv4.ip_forward=1

अपना अग्रेषण नियम जोड़ें (nnnn: port का उपयोग करें):

iptables -t nat -A PREROUTING -p tcp -d 10.0.0.132 --dport 29418 -j DNAT --to-destination 10.0.0.133:29418

बहाना करने के लिए IPtables से पूछें:

iptables -t nat -A POSTROUTING -j MASQUERADE

और बस! इसने किसी भी मामले में मेरे लिए काम किया :)


1
यह इस विषय पर मुझे मिला सबसे अच्छा जवाब है।
विक्टर प्यूसिबॉक्स

इस समाधान का उपयोग करने के बाद मेरे डॉकर कंटेनर से कनेक्शन खो गया। नियम को हटाना पड़ा। नियम काम कर रहा था, लेकिन अन्य सभी यातायात खो दिया। मैं इसकी अनुशंसा नहीं करता।
डायविन

iptables -t nat -A POSTROUTING -j MASQUERADEओह वाह ... यह बात है, धन्यवाद! वेब पर खोज और पता लगाने में बिताया। यह बहुत सरल है और काम करता है।
१६:२२ पर झींगा मछली २६'१

यह पूरी तरह से काम करता है, अब, इन नियमों को स्थायी कैसे बनाया जाए?
प्रात:

एक समस्या मैंने देखा है कि जब पोर्ट अग्रेषण सक्रिय हो जाता है, तो राउटर उपयुक्त सर्वर तक नहीं पहुंच सकता है ... कोई सुराग?
प्रात:

7

यदि आपके पास 10.0.0.132 पर iptables स्थापित है, तो मुझे लगता है कि यह बहुत सीधा होगा:

iptables -t nat -A PREROUTING -j DNAT -d 10.0.0.132 -p tcp --dport 29418 --to 10.0.0.133

यह पोर्ट 29418 पर 10.0.0.132 से 10.0.0.133 के बजाय आने वाले ट्रैफ़िक को उसी पोर्ट पर भेजने के लिए कहता है, जो किसी अन्य रूटिंग से पहले 10.0.0.132 करने की कोशिश कर सकता है। यदि आप इस कमांड को चलाते हैं और इससे परेशान हैं, तो इसे हटाने के लिए -A-flag को -D से बदलें।

यदि आप 10.0.0.132 के प्रारंभ होने पर इस नियम को स्वचालित रूप से चलाना चाहते हैं, तो ऊपर दिए गए आदेश को "etc / network / interfaces" में "post-up" नियम के रूप में जोड़ने पर विचार करें।


ठीक यही मैंने किया लेकिन यह काम नहीं किया। मैंने net.ipv4.ip_forward = 1 /etc/sysctl.conf में असहज कर दिया है, लेकिन मुझे अभी भी 10.0.0.132:29418 से कनेक्ट करने में त्रुटियां मिलती हैं
2:15 पर

7

यदि कोई अस्थायी विधि खोज रहा है, तो नीचे दिए गए समाधान का प्रयास करें।

    ssh -L 192.168.0.10:8080:10.0.0.10:80 root@10.0.0.10

उपरोक्त कमांड आपके बेस मशीन पर मौजूद पोर्ट 8080 पर आपके वर्चुअल मशीन के 80 पोर्ट पर सभी रीडायरेक्ट करता है। आप वेब पेज http://192.168.0.10:8080 पर पहुंचकर कार्य का परीक्षण कर सकते हैं , और यह आपको अतिथि मशीन के लिए वेब पेज दिखाएगा।

यह सभी बंदरगाहों पर लागू होता है :)


0

अंत में मुझे अपने VMXi सर्वर के अंदर एक राउटर के रूप में pfSense को विभिन्न वीएम पर ट्रैफ़िक को रूट करने के लिए स्थापित करना पड़ा क्योंकि मैं इसे उबंटू में काम करने के लिए नहीं मिला।

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