मैंने हाल ही में कुछ दोस्तों के साथ लैन गेम खेलने के लिए एक वीपीएन स्थापित किया है। मेरे पास एक लिनक्स सर्वर चल रहा है pptpd
और सफलतापूर्वक ऑपरेटिंग सिस्टम में निर्मित वीपीएन क्लाइंट का उपयोग करके विंडोज पर कनेक्ट करने में सक्षम है। मैंने परीक्षण किया है कि वीपीएन ग्राहकों के बीच सूचनाओं को सही तरीके से प्रसारित करता है (प्रसारण संदेशों सहित)। यह प्रत्येक क्लाइंट पर एक वर्चुअल नेटवर्क एडेप्टर बनाता है जिसे सिस्टम पर सर्वोच्च प्राथमिकता दी जाती है। इसका अर्थ है कि सभी नेटवर्क कनेक्शन डिफ़ॉल्ट रूप से इसका उपयोग करते हैं (उदाहरण के लिए एक वेब ब्राउज़र) और यह नाम क्वेरी करते समय सबसे पहले लौटाया जाता है (जैसे सॉकेट एपीआई से लौटे परिणाम जैसे getaddrinfo()
औरgethostbyname()
)। मेरे पास जो समस्या है, वह यह है कि हम जिस विशेष गेम को खेलना चाहते हैं, वह अपने यूडीपी सॉकेट्स को सही नेटवर्क इंटरफेस के लिए बाध्य नहीं कर रहा है। इसके बजाय खेल प्रक्रिया स्पष्ट रूप से मूल नेटवर्क कनेक्शन ( eth0
या इसके समतुल्य विंडोज के इंटरफ़ेस) को बांधती है wlan0
। मैं चाहता हूं कि यह वीपीएन एडॉप्टर (विंडोज के बराबर ppp0
) से जुड़ जाए ।
ईए गेम्स द्वारा इस विशेष गेम को बैटल फॉर मिडल-अर्थ कहा जाता है। जब LAN मल्टीप्लेयर लॉबी के अंदर, खेल यूडीपी पोर्ट 8086 के लिए एक सॉकेट बांधता है। यह इस पोर्ट का उपयोग प्रसारण डेटाग्राम को अन्य साथियों को सचेत करने और अन्य साथियों से अलर्ट प्राप्त करने के लिए भेजता है। यदि 8086 अनुपलब्ध है, तो यह अगले अनुक्रमिक पोर्ट से जुड़ जाता है। इस कारण यह समान प्रसारण संदेश की प्रतियां बंदरगाहों की एक सीमा (यानी 8086..8095) को भेजता है। एक बार खेल शुरू हो जाने के बाद, साथियों ने प्रसारण के विपरीत एक दूसरे को निर्देशित डेटाग्राम भेजना शुरू कर दिया। जैसा कि यह अभी खड़ा है, गेम ट्रैफिक में से कोई भी वीपीएन को हिट नहीं कर रहा है। यहां कुछ netstat
आउटपुट है जो 10.0.1.0/24
नेटवर्क के विपरीत गेम (नेटवर्क को होम राउटर द्वारा आवंटित) के लिए बाध्य करता है ( 192.168.0.0/24
वीपीएन सर्वर द्वारा आवंटित):
UDP 10.0.1.18:137 *:*
UDP 10.0.1.18:138 *:*
UDP 10.0.1.18:1900 *:*
UDP 10.0.1.18:8086 *:* this is BFME
UDP 10.0.1.18:51955 *:*
UDP 127.0.0.1:1900 *:*
UDP 127.0.0.1:51956 *:*
UDP 192.168.0.100:137 *:*
UDP 192.168.0.100:138 *:*
UDP 192.168.0.100:1900 *:*
UDP 192.168.0.100:51954 *:*
यह स्पष्ट है कि यह गेम चयनात्मक है कि यह किस इंटरफ़ेस का उपयोग करता है, जो समझ में आता है कि यह अन्य साथियों के पते निर्धारित करने के लिए खोज संदेशों के साथ उपयोगकर्ता के लैन को बाढ़ने की आवश्यकता है। लेकिन क्या वीपीएन को इंटरनेट कनेक्शन के माध्यम से लैन प्रदान नहीं किया जाता है? क्यों गेम पुराने इंटरफ़ेस को चुन रहा है और उच्च-प्राथमिकता वाले वीपीएन इंटरफ़ेस को नहीं? मुझे लगता है कि कुछ अस्पष्ट सेटिंग होनी चाहिए जो विंडोज को लैन के रूप में वीपीएन नेटवर्क को कॉन्फ़िगर करने देती है; हालाँकि मुझे इसे ढूंढने में सबसे कठिन समय आ रहा है।
सही दिशा में कोई मदद की सराहना की है!
एक विचार के रूप में: मुझे पता है कि गेम NetBIOS कार्यक्षमता का उपयोग कर रहा है (मैंने फ़ंक्शन आयात की इसकी सूची को डंप कर दिया है)। मुझे यह भी पता है (ऐतिहासिक रूप से) कि यदि कोई भी साथी एक ही कार्यसमूह का सदस्य नहीं है तो उसे नजरअंदाज कर दिया जाता है। समस्या का सामना कर रहा हूँ मैं नेटवर्क के NetBIOS विन्यास के साथ कुछ करने के लिए शामिल कर रहा हूँ?