सर्वर को प्रबंधित करते समय ट्रैफ़िक को पुनर्निर्देशित करने पर कुछ बहुत ही सामान्य है।
मान लीजिए हमारे पास कुछ सेवाओं के साथ एक सर्वर है, लेकिन जो भी कारण से हम उन सेवाओं में से एक को बदलते हैं (मुझे नहीं पता, उदाहरण के लिए pop3 जो कि पोर्ट 110 है) दूसरे सर्वर पर। सामान्य और सबसे लगातार बात यह है कि बस DNS रिकॉर्ड में आईपी को बदलना होगा, हालांकि अगर कोई उपडोमेन के बजाय आईपी का उपयोग कर रहा था तो यह प्रभावित होगा।
क्या करें? ... सरल, उस पोर्ट के माध्यम से प्राप्त होने वाले ट्रैफ़िक को उसी पोर्ट के साथ किसी अन्य सर्वर पर पुनर्निर्देशित करता है।
हम ट्रैफ़िक को पुनर्निर्देशित करना कैसे शुरू करते हैं?
पहली बात यह है कि हमें सक्षम होना चाहिए अग्रेषण सर्वर पर, इसके लिए हम निम्नलिखित काम करेंगे:
echo "1" > /proc/sys/net/ipv4/ip_forward
यदि आप पिछला काम नहीं करते हैं, तो आप इस अन्य कमांड का भी उपयोग कर सकते हैं (यह एक CentOS पर मेरे साथ ऐसा हुआ):
sysctl net.ipv4.ip_forward=1
तब हम नेटवर्क को पुनः आरंभ करेंगे:
service networking restart
CentOS और अन्य जैसे RPM डिस्ट्रोस में, यह होगा:
service nertwork restart
अब हम महत्वपूर्ण बात पर आगे बढ़ेंगे, सर्वर के माध्यम से बताएंगे iptables पुनर्निर्देशित करने के लिए क्या:
iptables -t nat -A PREROUTING -p tcp --dport <puerto receptor> -j DNAT --to-destination <ip final>:<puerto de ip final>
दूसरे शब्दों में, और मेरे द्वारा बताए गए उदाहरण का अनुसरण करते हुए, मान लीजिए कि हम अपने सर्वर को पोर्ट 110 के माध्यम से प्राप्त होने वाले सभी ट्रैफ़िक को पुनर्निर्देशित करना चाहते हैं (पूर्व: 10.10.0.2), जो अभी भी 110 के माध्यम से उस यातायात को प्राप्त करेगा (यह एक ही सेवा है):
iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to-destination 10.10.0.2:110
10.10.0.2 सर्वर यह देखेगा कि सभी पैकेट या अनुरोध क्लाइंट के आईपी से आते हैं, अगर वे अनुरोधों को तैरना चाहते हैं, अर्थात, दूसरा सर्वर यह देखता है कि अनुरोध 2 सर्वर के आईपी (जिसमें हम आते हैं) के साथ आते हैं पुनर्निर्देशन लागू करें), यह दूसरी पंक्ति भी होगी:
iptables -t nat -A POSTROUTING -j MASQUERADE
कुछ सवाल और जवाब
उदाहरण में मैंने दोनों बार (110) एक ही पोर्ट का उपयोग किया, हालांकि वे बिना किसी समस्या के एक पोर्ट से दूसरे पोर्ट पर ट्रैफ़िक पुनर्निर्देशित कर सकते हैं। उदाहरण के लिए, मान लें कि मैं किसी अन्य सर्वर पर पोर्ट 80 से 443 तक ट्रैफ़िक पुनर्निर्देशित करना चाहता हूं, इसके लिए यह होगा:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.10.0.2:443
यह है iptables, वे सभी अन्य मापदंडों का उपयोग कर सकते हैं जिन्हें हम जानते हैं, उदाहरण के लिए, यदि हम केवल एक विशिष्ट आईपी से यातायात को पुनर्निर्देशित करना चाहते हैं, तो यह जोड़ना होगा। ... उदाहरण के लिए मैं केवल 10.10.0.51 से आने वाले ट्रैफ़िक को पुनर्निर्देशित करूंगा:
iptables -t nat -A PREROUTING -p tcp -s 10.10.0.51 --dport 80 -j DNAT --to-destination 10.10.0.2:443
या संपूर्ण नेटवर्क (/ 24):
iptables -t nat -A PREROUTING -p tcp -s 10.10.0.0/24 --dport 80 -j DNAT --to-destination 10.10.0.2:443
हम -i के साथ नेटवर्क इंटरफ़ेस भी निर्दिष्ट कर सकते हैं :
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 80 -j DNAT --to-destination 10.10.0.2:443
समाप्त!
जैसा कि मैंने पहले ही कहा, iptables है, आप वही लागू कर सकते हैं जो पहले से ही ज्ञात है ताकि सर्वर ठीक वही करे जो आप इसे करना चाहते हैं,
नमस्ते!
हम इसे फ़ायरवॉल से भी कर सकते हैं जो पोर्ट फ़ॉरवर्डिंग की अनुमति देता है, है ना? (संबंधित नियमों को लागू करना)।
हां, अंत में Pfsense या दूसरों की तरह एक फ़ायरवॉल, पीछे से iptables का उपयोग करें।
सटीक होने के लिए, pfsense iptables का उपयोग नहीं करता है लेकिन pf, याद रखें कि यह एक bsd है।
अरे ठीक है, मेरा बुरा!
टिप the के लिए आपका बहुत-बहुत धन्यवाद
मुझे कुछ संदेह है:
1 - क्या परिवर्तन स्थायी है? या सर्वर को रिस्टार्ट करने पर खो जाता है?
2 - मेरे पास एक ही सबनेट पर कई उदाहरण (ए, बी और सी) हैं। उदाहरण ए में मैं एक बाहरी आईपी पर यातायात के लिए नियम लागू करता हूं, और उदाहरण बी और सी से कर्ल के साथ परीक्षण, सब कुछ अद्भुत काम करता है। समस्या यह है कि उदाहरण ए से यह काम नहीं करता है। मैंने आपके आईपी और लूपबैक इंटरफ़ेस का उपयोग करने की कोशिश की, और न ही काम करता है:
$ iptables -t nat -A PREROUTING -p tcp –dport 8080 -j DNAT –to-गंतव्य xxxx: 8080
$ iptables -t nat -A PREROUTING -p tcp -i lo –dport 8080 -j DNAT –to-गंतव्य xxxx: 8080
$ कर्ल ip-yyyy: 8080 / hello_world
कर्ल: (7) आईपी-वायय पोर्ट 8080 से कनेक्ट करने में विफल: कनेक्शन ने इनकार कर दिया
$ कर्ल लोकलहोस्ट: 8080 / हैलो_वर्ल्ड
कर्ल: (7) लोकलहोस्ट पोर्ट 8080 से कनेक्ट करने में विफल: कनेक्शन ने इनकार कर दिया
किसी भी विचार समस्या क्या हो सकती है?
हां, रिबूट पर परिवर्तन खो गया है, आपको इससे बचने के लिए iptables-save & iptables-Restore या ऐसा कुछ उपयोग करना होगा।
मुझे समझ में नहीं आया कि आप क्या करना चाहते हैं, उदाहरण ए?
मेरे पास एक सर्वर है जो केवल एक विशेष आईपी (सर्वर ए) से कनेक्शन का समर्थन करता है, मैं श्वेतसूची (स्केलेबिलिटी मुद्दों के लिए) के लिए और अधिक ips जोड़ना नहीं कर सकता, इसलिए मैं चाहता हूं कि बाहरी सर्वर के लिए सभी ट्रैफ़िक उक्त सर्वर से गुजरें (ए) ) है।
व्यावहारिकता की बात के लिए, मेरे पास वैश्विक कॉन्फ़िगरेशन हैं जो परिभाषित करते हैं कि प्रत्येक सेवा के लिए कौन सा आईपी का उपयोग करना है, इसलिए इस मामले में यह कुछ ऐसा है "हर कोई जो बाहरी सेवा का उपयोग करना चाहता है, उसे आईपी ए का उपयोग करना चाहिए"
मैंने इस आलेख में विधि का उपयोग करके इसे सफलतापूर्वक प्राप्त किया है, लेकिन मैं इस समस्या में भाग लेता हूं कि इसे लागू करते समय, सर्वर ए अपने स्वयं के आईपी का उपयोग करके सेवा तक नहीं पहुंच सकता (लेकिन अन्य सभी सर्वर करते हैं)।
अब तक सबसे अच्छा मुझे सर्वर ए / आदि / मेजबानों फ़ाइल में मैपिंग को जोड़ना था, बाहरी आईपी की ओर इशारा करते हुए, वैश्विक सेटिंग को ओवरराइड करना।
बहुत अच्छा, अगर मेरे पास एक और मेल सर्वर है, तो मैं सर्वर 143 से सर्वर 1 तक पोर्ट 2 से ट्रैफ़िक को आगे बढ़ा सकता हूं और ईमेल मुझे सर्वर 2 पर पहुंचेंगे, है ना?
सादर
सिद्धांत रूप में, यह इस तरह से काम करता है। निश्चित रूप से, आपके पास सर्वर 2 पर मेल सर्वर ठीक से स्थापित होना चाहिए 🙂
जिस तरह की पोस्ट हमे पढ़ना पसंद है, धन्यवाद!
उत्कृष्ट लेख, मेरे पास एक परियोजना है जिसमें मैं काम कर रहा हूं और मैं आपसे एक प्रश्न पूछना चाहता हूं, एनएटी फ़ंक्शन के साथ औद्योगिक स्विच हैं (मुझे लगता है कि वे नीचे IPTables का उपयोग करते हैं), उपकरण में बदलाव किए बिना एक आईपी पते का अनुवाद करने के लिए, एक उदाहरण के लिए, मेरे पास एक सर्वर 10.10.2.1 है जो 10.10.2.X कंप्यूटर के साथ संचार करता है और स्विच के माध्यम से प्रोग्राम किया जाता है ताकि एक कंप्यूटर जिसका पता 192.168.2.4 है, वास्तव में 10.10.2.5 के रूप में सर्वर से देखा जाता है, इसका आईपी अनुवाद किया गया है। यह पता होना चाहिए कि उस पते के साथ अन्य कंप्यूटरों से, मैं इसे उबंटू या किसी अन्य वितरण वाले सर्वर से करना चाहता हूं, क्या iptables नियम होंगे?
बहुत अच्छी जानकारी धन्यवाद ^ _ ^
गुड आफ़्टरनून।
मुझे एक रीडायरेक्ट करने की कोशिश करने में समस्या है। मै समझाता हूँ:
मेरे पास उबंटू में एक प्रॉक्सी सर्वर है, जिसमें 2 नेटवर्क कार्ड हैं:
eth0 = 192.168.1.1 बाकी स्थानीय नेटवर्क से जुड़ा है।
eth1 = 192.168.2.2 राउटर से जुड़ा है।
मुझे eth0 के माध्यम से जाने के लिए eth1 के माध्यम से आने वाली सभी चीजों की आवश्यकता है, और प्रॉक्सी के माध्यम से भी (मैं स्क्विड का उपयोग करता हूं, जिसका डिफ़ॉल्ट पोर्ट 3128 है), और मुझे IPTABLES कॉन्फ़िगरेशन में कुंजी नहीं मिल सकती है।
मुझे किसी भी प्रकार के प्रतिबंध की आवश्यकता नहीं है, केवल यह कि रिकॉर्ड किए गए वेब पते के लॉग में एक रिकॉर्ड रहता है।
मुझे उम्मीद है कि आप मेरी मदद कर सकते हैं क्योंकि यह काफी बोझिल काम है जो मुझे कुछ दिनों से परेशान कर रहा है।
शुक्रिया.
मित्र, मैं अन्य सर्वरों के लिए बहुत नया हूं, मेरे पास कोई विचार नहीं है, लेकिन मैं विषय को समझता हूं और मैं जल्दी से सीखता हूं, मेरा प्रश्न निम्नलिखित है मेरे पास 2 सर्वर serv_1 और serv_2 हैं जो मैंने उसी इंट्रानेट से कनेक्ट किए हैं, इन सर्वरों में मेरे पास है एक खुद का सेट मैं निम्नलिखित करना चाहूंगा:
उदाहरण के लिए ips की एक निश्चित सीमा रेंजपिल 1: जब एक एक्सेस आईपी को स्वयं के लिए एक आईपी डालते हुए ipclcloud (ipowncloud) को serv_1 की ओर निर्देशित किया जाता है और यदि यह एक और रेंजप 2 है, तो समान ipowncloud को serv_2 के लिए निर्देशित किया जाता है, यह क्रम में है कि 2 सर्वर स्थित हैं दो अलग-अलग शहरों में और आईपी रेंज अलग-अलग हैं, लेकिन वे सभी एक ही नेटवर्क पर हैं, जो कि पहला भाग होगा, दूसरा स्पष्ट होगा कि इन 2 सर्वरों को सिंक्रनाइज़ करना है ताकि वे दर्पण हों या वे मुझे इस क्रम में सलाह दें चौड़ाई बैंड का अनुकूलन करने के लिए, कृपया, अगर आप मुझे समझाने जा रहे हैं कि यह कैसे कदम से कदम सुपर प्रोग्रामर मोड = (
हैलो, मुझे क्षमा करें, मेरे पास मेरे नेटवर्क को बनाने वाले सभी उपकरणों के संचार का एक स्विच प्रभारी है, और इसके बाद एक फ़ायरवॉल और अंत में इंटरनेट से बाहर निकलने पर, क्या होता है कि मैं स्विच में दिए जाने वाले पुनर्निर्देशन को पसंद करूंगा और तब तक फ़ायरवॉल तक नहीं पहुँचना है जब तक कि अनुरोधित सेवा इंटरनेट न हो।
इस विधि का उपयोग करके आप HTTPS को HTTP पर पुनर्निर्देशित कर सकते हैं?
नमस्ते, शायद यह थोड़ी देर हो गई है, लेकिन मैं आपसे पूछना चाहता था, जब मैं उसी नेटवर्क पर वेब सर्वर से कनेक्ट करना चाहता हूं, तो मुझे क्लाइंट के आईपी को कैसे संशोधित नहीं करना चाहिए?
पूछने के लिए मेरे साथ बुरा व्यवहार मत करो। क्या यह विंडोज में किया जा सकता है?
यह जानकारी मेरे लिए उपयोगी रही है। हमेशा की तरह, आप लोगों पर भरोसा किया जा सकता है, जब मुझे अंग्रेजी में कुछ नहीं मिल रहा है तो मैं आमतौर पर स्पेनिश में देख रहा हूं, उन अवसरों पर मैं लगभग हमेशा इस साइट पर आता हूं। धन्यवाद।
मेरे पास एक 4G राउटर है जो एक नेटवर्क का क्लाइंट है जिसे मैं प्रबंधित नहीं करता (जाहिर है, मैं एक क्लाइंट हूं)… यह राउटर OpenVPN के माध्यम से उस दूरस्थ नेटवर्क का प्रवेश द्वार है। इसके अलावा, राउटर क्षेत्र में उन सबनेट्स में से एक के सर्वर के पोर्ट 80 तक पहुंचने के लिए पोर्टफॉरवर्डिंग के कार्य को पूरा करता है।
यह घोषणा थी कि मुझे राउटर में फ़ायरवॉल कस्टम नियम "-t nat -A POSTROUTING -j MASQUERADE" के रूप में रखना था।
मदद के लिए धन्यवाद!