2011-12-04 19 views
8

मुझे सॉकेट आधारित संचार के सॉफ़्टवेयर स्तर पोर्ट अग्रेषण/सुरंग की एक साधारण आवश्यकता है।पोर्ट फॉरवर्डिंग

  • मेरे पास सॉकेट का उपयोग कर एक स्रोत सर्वर और पोर्ट है। यह एक जावा प्रोग्राम है जो विंडोज़ और लिनक्स दोनों में काम करता है और यह अप्रासंगिक है।
  • मेरे पास ऐसे डिवाइस हैं जो इस पोर्ट को डेटा भेजते रहते हैं। एक द्वि-दिशात्मक संचार
  • हो सकता है कि मैं इस डेटा को किसी अन्य दूरस्थ सर्वर और पोर्ट पर रीडायरेक्ट करना चाहता हूं। तो जब भी मैं अपना ऐप सर्वर ले जाता हूं तो ग्राहकों के लिए उन्हें आईपी पते में बदलाव के बारे में चिंता करने की ज़रूरत नहीं होगी।

क्या कोई उपकरण/डेमॉन/सेवा प्रोग्राम है जिसका उपयोग मैं कॉन्फ़िगर करने और करने के लिए कर सकता हूं?

मैंने एसएसएच की कोशिश की, लेकिन मेरी समझ के लिए इसे एक एसएसएच प्रोटोकॉल सक्षम सर्वर की आवश्यकता है। मेरे मामले में यह लागू नहीं है। मैंने जेएसएच का उपयोग करने की भी कोशिश की लेकिन यह फिर जावा प्रारूप में एसएसएच का कार्यान्वयन है।

क्या कोई कुछ पॉइंटर्स फेंक सकता है? क्या लिनक्स में iptables NAT का उपयोग करना संभव है?

+0

क्या आप किसी मानक प्रोटोकॉल या अपने स्वयं के कस्टम प्रोटोकॉल का उपयोग कर रहे हैं? – Santosh

+0

यह सिर्फ एक टीसीपी/आईपी डेटा संचार है। – Muthu

उत्तर

4

आप कोशिश कर सकते हैं netcat या socat

एक उदाहरण (यह netcat तुलना में अधिक शक्तिशाली है) socat पोर्ट 80 अग्रेषित करने के लिए tcp4 प्रयोग करने के लिए:

socat tcp4-listen:80,fork tcp4:{another server}:{another port} 

और netcat

दोनों के लिए http://en.wikipedia.org/wiki/Netcat#Port_Forwarding_or_Port_Mapping को देखें जावा से संबंधित नहीं हैं।

+0

वाह! मैं इसे कैसे भूल गया !! हालांकि हमारे पास एक सवाल है! यदि कोई कनेक्शन टूटा हुआ है तो क्या सामाजिक या नेटकैट स्वचालित रूप से फिर से कनेक्ट हो सकता है? – Muthu

+0

मुझे नहीं पता कि पुन: कनेक्ट करने के लिए एक अंतर्निहित विकल्प है या नहीं, लेकिन अगर यह कुछ भी गलत है तो यह फिर से कनेक्ट करने के लिए ग्राहक का काम हो सकता है –

+0

यह कहता है "2011/12/04 15:52:25 सामाजिक [4328] ई कनेक्ट (3 , एएफ = 2 आईपैड्रेस: ​​5000, 16): पता पहले से ही उपयोग में है "। मैंने reuseaddr विकल्प के साथ कमांड की कोशिश की। – Muthu

2

नामक एक टीसीपी/आईपी पोर्ट अग्रेषण उपयोगिता code.google.com में उपलब्ध है। यह जावा में पूरी तरह से लिखा है।

+0

यह एक कोशिश करेगा और पुष्टि करेगा अगर यह सूट होगा। – Muthu

0

यदि आप पहले से ही अपने सिस्टम पर xinetd चला रहे हैं, तो यह एक आसान port forwarding mechanism प्रदान करता है जो उपयोगी हो सकता है यदि आप पहले से ही आईपीटीबल्स नहीं चला रहे हैं।

यदि आप आईपीटीबल्स चला रहे हैं, तो सर्वर फॉल्ट का उत्कृष्ट, short question with a very similar goal है। हालांकि मुझे लगता है कि यह थोड़ा सा more detailed documentation is available है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^