मैं कैसे सेट करूँ इनपुट इंटरफ़ेस आउटपुट इंटरफ़ेस है


0

मेरे पास IP XXXX के साथ eth0 और IP YYYY के साथ eth0: 0 है

मेरा लक्ष्य है अगर मैं eth0 से जुड़ता हूँ तो आउटपुट ip shoud XXXX हो सकता है और अगर मैं eth0 से जुड़ता हूँ: 0 आउटपुट ip YYYY होना चाहिए

उदाहरण:

VPN क्लाइंट eth0 (IP XXXX) -> IP XXXX से कनेक्ट होता है

VPN क्लाइंट eth0: 0 (YYYY) -> IP YYYY से कनेक्ट होता है

VPN क्लाइंट eth0: 1 (ZX.ZX.ZX.ZX) -> IP ZX.ZX.ZX.ZX से कनेक्ट करें

VPN क्लाइंट eth0: 2 (ZY.ZY.ZY.ZY) से कनेक्ट करें -> IP ZY.ZY.ZY.ZY

VPN ग्राहक eth0: 3 (ZA.ZA.ZA.ZA) से कनेक्ट करें -> IP ZA.ZA.ZA.ZA

अभी इसकी हमेशा XXXX है

मैं iptables की कोशिश की, लेकिन इसके काम नहीं ..

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

ip_forward 1 है

इसके अलावा आईपी मार्ग की कोशिश की

मुझे लगता है कि मार्ग के साथ इसे स्थापित करने का सही तरीका है?


क्या आप इसे अधिक स्पष्ट रूप से फिर से शब्द दे पा रहे हैं? यह इस समय पूरी तरह से समझ में नहीं आता है। क्या आपका मतलब है कि आप एक इंटरफ़ेस को दूसरे से पिंग करने की कोशिश कर रहे हैं?
सेरेक्स

बेहतर। मुझे लगता है कि भ्रम 'मुझे देखना चाहिए' - जो कि बहुत अस्पष्ट है। देखिये कहाँ? ग्राहक को दिए गए आईपी पते के रूप में? इससे कोई मतलब नहीं होगा क्योंकि आप vpn सर्वर के समान आईपी के साथ एक क्लाइंट नहीं रख सकते।
सेरेक्स

ओह, मैं देख रहा हूँ, तुम सही हो! मैंने इसे बदल दिया। लक्ष्य यह है कि अगर मैं वेबसाइट A को कॉल करता हूं तो उसे मुझे सही आउटपुट IP देना चाहिए।
जॉर्ज

जवाबों:


0

आपको vpn क्लाइंट के लिए मस्कारिंग (NAT) की आवश्यकता है। कुछ इस तरह:

iptables -A POSTROUTING -s (subnet of vpn clients) -j MASQUERADE

यदि आपका vpn सर्वर क्लाइंट को 192.168.1.0/24 को उदाहरण के लिए असाइन करता है, तो उसे -s तर्क के रूप में रखें।


> iptables -t nat -A POSTROUTING -s -j MASQUERADE खराब तर्क `MASQUERADE '
जॉर्ज

क्षमा करें, सुपरसुसर ने मेरे कोण कोष्ठक को खा लिया।
20

काश, यह काम करता लेकिन मैं अभी भी eth0 से आईपी देखता हूं। 'Iptables -t nat -A POSTROUTING -s 1.2.3.4 -j MASQUERADE' आईपी 1.2.3.4 के साथ बाधित है
जॉर्ज

यहां तक ​​कि किया: आईपी रूट 1.2.3.4 को 1.2.3.4 देव एथ 1 के माध्यम से जोड़ते हैं
जॉर्ज

मुझे नहीं लगता कि मैं आपको सटीक कमांड देने के लिए आपके सेटअप को पर्याप्त समझता हूं। लेकिन मान लें कि आप vpn लिंक पर क्लाइंट से ट्रैफ़िक रूटिंग कर रहे हैं (जो आप क्लाइंट की राउटिंग टेबल के आधार पर वर्तमान में हो सकता है या नहीं भी हो सकता है), और आपको इस पर मास्किंग करना है, यह काम करेगा।
सेरेक्स

0

यह डिफ़ॉल्ट मार्ग के साथ करना है, iptables के साथ कुछ भी नहीं करना है। यदि आप अपना डिफ़ॉल्ट गेटवे स्विच करना चाहते हैं तो इन कमांड को चलाएं:

ip -4 route del default
ip -4 route add default via <gateway ip> dev <interface>

गेटवे आईपी उस इंटरफ़ेस के सबनेट के लिए गेटवे या राउटर है। तो, अगर eth1 YYYY पर है और netmask 255.255.255.0 है, तो गेटवे को एक ही सबनेट (उदाहरण के लिए YYY *) पर होना चाहिए। जब तक आप किसी विशेष सेटअप का उपयोग नहीं कर रहे हैं तब तक आपके पास केवल एक समय में एक डिफ़ॉल्ट गेटवे हो सकता है।


धन्यवाद! यह समझ में आता है, लेकिन क्या होगा अगर मेरे पास 10 ips हैं? eth1, eth2, आदि?
जॉर्ज

मेरे पास वास्तव में eth0, eth0: 0, eth0: 1 आदि हैं। '' ip -4 मार्ग XX.XX.XX.XX.XX देव eth0: 0 'के माध्यम से डिफॉल्ट को हमेशा eth0
जॉर्ज

यहां तक ​​कि अगर आपके पास 10 अलग-अलग आईपी पते के साथ 10 इंटरफेस हैं, तो उत्तर एक ही है: आप अभी भी एक समय में एक इंटरफ़ेस के माध्यम से एक डिफ़ॉल्ट गेटवे का उपयोग कर पाएंगे। जहाँ तक मुझे पता है, एक वर्चुअल इंटरफ़ेस (eth0: 0, eth0: 1, आदि) ipकमांड के साथ ठीक काम करता है , लेकिन शायद यह eth0: 0 को eth0 के बराबर मानता है। मैं बहुत पक्का नहीं हूँ।
होलीलेप

0

समाधान है:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to BB.BB.BB.BB

BB.BB.BB.BB = स्रोत आईपी

बस!

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